Commit graph

369 commits

Author SHA1 Message Date
Aaron Franke
d36a34edb7
Misc changes to the GLTF module before audio PR 2024-01-11 20:33:51 -06:00
Rémi Verschelde
78fadf45ca
Merge pull request #85335 from zinefer/bugfix-blend-importer-on-windows-network-share
Replace `//` with `\\` before sending path to Blender
2024-01-09 15:30:50 +01:00
Silc Lizard (Tokage) Renew
a51958a2a0 Remove Object pointer/solve types conflict in AnimationTrackCache
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2024-01-08 21:48:19 +09:00
Rémi Verschelde
60f557c0c5
Merge pull request #86016 from demolke/master
Import step interpolation for loc/rot/scale from GLTF as nearest
2024-01-08 11:52:16 +01:00
demolke
3749cbb3ca Import step interpolation for loc/rot/scale from GLTF as nearest
Currently all object transform animation tracks get imported and baked
as linear. For step interpolation mark the resulting animation track
with Nearest interpolation to make sure there are no in-betweens
generated. This is useful for camera cuts or similar.
2024-01-05 22:03:57 +01:00
Muller-Castro
96a95cb974 Add const lvalue ref to container parameters 2024-01-05 14:49:57 -03:00
Aaron Franke
9753a35c76
Move 3D scene import classes to their own folder 2024-01-04 11:02:49 -06:00
Rémi Verschelde
6c390b620d
Merge pull request #84445 from Rubonnek/add-const-references-clang-tidy
Add const references detected by clang-tidy
2024-01-04 14:25:33 +01:00
Rémi Verschelde
a1d45858e0
Merge pull request #86504 from lyuma/gltf_reimport_textures_merry_xmas
gltf: Fix three bugs which prevented extracted textures from being refreshed
2024-01-02 18:05:19 +01:00
Aaron Franke
8acef03cb5
Add export settings to the export dialog for GLTF 2023-12-30 19:57:39 -06:00
Lyuma
fea4165ca8 gltf: fix three bugs which prevented extracted textures from being refreshed.
1. Extracted texture paths in `GLTFDocument::_parse_image_save_image` at the project root started with res:/// which broke cache invalidation
2. md5 hashes were not being written to generator_parameters for new imports, which led Godot to think the file was manually created.
3. `EditorFileSystem::reimport_append` must emit the `resources_reimported` signal in order for the resource cache to be updated.
2023-12-25 01:03:40 -08:00
Wilson E. Alvarez
a3cb1b096f
Add const references detected by clang-tidy 2023-12-16 13:36:44 -05:00
Aaron Franke
52f1b86ebc
Fix referring to ResourceImporterScene static importers via instances 2023-12-11 20:01:39 -06:00
zinefer
72d18d50a4 Bugfix: Replace // with \\ before sending path to Blender
On Windows, Blender treats //fileshare/assets/model.blend as a relative
path which will not be found. Instead, replace the first two chars with
`\\` which when escaped becomes `\\\\`.
2023-12-07 15:23:11 -07:00
Pedro J. Estébanez
fe4850c0d0 Use mingw-std-threads in MinGW builds 2023-11-18 11:56:05 +01:00
Hugo Locurcio
e5270c0db2
Link to runtime loading/saving tutorial and improve Image documentation 2023-11-14 12:05:54 +01:00
Aaron Franke
6d8f029df4
Use the Blender file name instead of the generated GLTF file name 2023-11-09 12:11:39 -06:00
Aaron Franke
58076b9ccb
Implement glTF compat version system for files from older Godot versions 2023-11-03 12:07:25 -05:00
clayjohn
d1043a5f93 Enhance checks and user experience around tangents.
Ensure `ensure_tangents` option actually creates tangent array. Even if it is just a dummy array.

Allow mesh to generate its own tangents when using compression. This allows users to compress meshes without tangents.

Warn users if they are trying to read from tangents without providing tangents.
2023-11-01 22:40:42 +01:00
Saracen
4b671eec0e Reimport bone attachment fixes:
Assign bone_idx to GLTF importer to fix serialization.
Notifies Skeletons and BoneAttachments when reimporting.
Removes usage of NOTIFICATION_NODE_RECACHE_REQUESTED
2023-10-27 20:34:01 +01:00
Haoyu Qiu
2413952a4c Fix "as" capitalization in editor strings 2023-10-23 16:10:05 +08:00
jsjtxietian
1c70a7ae6a Prevent godot crash from importing a certain kind of invalid gltf
invalid type: mistach interpolation CUBICSPLINE and value size
2023-10-20 16:58:11 +08:00
A Thousand Ships
034c0f1624 Replace sanity with safety for checks 2023-10-08 16:22:24 +02:00
clayjohn
51ed3aef63 Vertex and attribute compression to reduce the size of the vertex format.
This allows Godot to automatically compress meshes to save a lot of bandwidth.

In general, this requires no interaction from the user and should result in
no noticable quality loss.

This scheme is not backwards compatible, so we have provided an upgrade
mechanism, and a mesh versioning mechanism.

Existing meshes can still be used as a result, but users can get a
performance boost by reimporting assets.
2023-10-05 12:02:23 -06:00
Rémi Verschelde
3cf17679ca
Merge pull request #81194 from rcorre/blend-import-76338
Update blender export flags for 3.6.
2023-10-02 13:16:11 +02:00
Ryan Roden-Corrent
7e64c6c399
Update blender export flags for 3.6.
Fixes #76338.

Blender 3.6 imports fail with:

```
TypeError: Converting py args to operator properties: : keyword "export_nla_strips" unrecognized
```

The `export_nla_strips` flag was removed and replaced with `export_animation_mode`.
In 3.6.0-3.6.21, this option does not exist at all and causes the failure above.
In 3.6.22, this option was re-added, but does nothing.
See 96a73cb664.

We now need to check the blender version to determine what flags to use.
This adds an additional shell command before every import.
We might consider caching the version, but we'd have to invalidate the cache if the blender version or path changes.

As an aside, the "group animations" setting in Godot does the opposite of what I'd expect.
When `group_tracks=true`, each animation is exported individually.
When `group_tracks=false`, all animations are exported as a single track.
This seems backwards, but I've kept the 3.6 behavior consistent with 3.5.

From https://docs.blender.org/api/3.6/bpy.ops.export_scene.html:

> ACTIONS Actions – Export actions (actives and on NLA tracks) as separate animations.
> ACTIVE_ACTIONS Active actions merged – All the currently assigned actions become one glTF animation.

Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2023-09-30 11:32:21 -04:00
Aaron Franke
7bd894ba7a
Fix skeletons when generating multiple Godot scenes from one GLTF 2023-09-28 17:48:33 -05:00
Rémi Verschelde
dc14f02892
Merge pull request #81851 from aaronfranke/gltf-single-root
GLTF: Add root node export options and GODOT_single_root extension
2023-09-26 17:52:51 +02:00
Aaron Franke
446893fdd1
GLTF: Add GODOT_single_root extension 2023-09-26 10:18:52 -05:00
A Thousand Ships
517e9f8aef [Modules] Replace ERR_FAIL_COND with ERR_FAIL_NULL where applicable 2023-09-26 16:44:52 +02:00
Saracen
3f4513d4de Add error checks for DirAccess creation. 2023-09-26 03:07:43 +01:00
Matias N. Goldberg
ec0e6800bc Fix gltf importer forcing vertex colors on all materials
The importer already checks if a mesh has vertex colors and enables
vertex colors on the material using it.

Before this fix, GLTF importer would force shader generation to use
vertex colors even if the scene did not have vertex colors at all, or
did not need them; causing inefficient shader and PSO generation.
2023-09-24 19:37:33 -03:00
Rémi Verschelde
51f67ea4c5
Merge pull request #81264 from aaronfranke/gltf-node-name-camera
GLTF: Change "Camera3D" generated node name to "Camera"
2023-09-16 21:22:29 +02:00
Rémi Verschelde
be53991b5a
Merge pull request #80272 from aaronfranke/gltf-root-node-logic
GLTF: Improve logic for keeping track of the real root node
2023-09-16 21:21:40 +02:00
Aaron Franke
2723f781dd
GLTF: Allow specifying export image format including from extensions 2023-09-14 17:33:48 -05:00
Yuri Sizov
356624ce6d Merge pull request #80807 from aaronfranke/gltf-skin-mesh-comment
GLTF: Add a comment for skinned mesh tree placement
2023-09-06 14:49:06 +02:00
Aaron Franke
908716529d
GLTF: Add a comment for skinned mesh tree placement
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2023-09-05 12:19:31 -05:00
kobewi
6de34fde27 Add EditorStringNames singleton 2023-09-03 19:58:18 +02:00
Aaron Franke
5b7001dccf
GLTF: Improve logic for keeping track of the real root node 2023-09-03 03:35:29 -05:00
Aaron Franke
c1bc4fbd20
GLTF: Change "Camera3D" generated node name to "Camera" 2023-09-03 02:47:34 -05:00
Aaron Franke
da89753cc6
Fix doubly-reserved unique names in GLTF scene name assignment 2023-08-20 00:03:56 -05:00
Rémi Verschelde
5444afae63
Merge pull request #76572 from acazuc/ktx_format_support
Add support for KTX image format so that we can use Basis Universal for GLTF
2023-08-19 13:00:35 +02:00
acazuc
a00cf02241 Add support for KTX & KTX2 image format
Add support glTF KHR_texture_basisu extension
2023-08-19 10:27:29 +02:00
Rémi Verschelde
a2a1ed1aac
Merge pull request #80576 from KurtBliss/master
Fixed editor filesystem/import properties not being caught by the doctool.
2023-08-18 15:43:58 +02:00
KurtBliss
300ecfab89 Fixed editor filesystem/import properties not being caught by the doctool
Defined glft editor properties in editor_settings
Added documentation descriptions and entries
2023-08-14 06:06:28 -04:00
Aaron Franke
d12b0787af
GLTF: Add center of mass property 2023-08-11 11:27:01 -05:00
Lyuma
f67b6c158c Use image index instead of texture index for source_images 2023-08-05 16:54:35 -07:00
Aaron Franke
2970839085
Set base_path and filename during export 2023-08-03 16:49:22 -05:00
Aaron Franke
101442ced9
Expose filename in GLTFState 2023-08-03 16:38:10 -05:00
Rémi Verschelde
1d42504b30
Merge pull request #79623 from aaronfranke/gltf-export-preserialize
Add `export_preserialize` to the GLTF export process
2023-08-03 18:33:49 +02:00