Commit Graph

62 Commits

Author SHA1 Message Date
3771078c02 Verify GLTF indices to prevent crash with corrupt files
Also verify prior to vertex optimization.
2024-07-31 10:39:17 +01:00
601a9eb4f5 GLTF: Fixed external images getting embedded on import
Added a map to keep track of external images during import, and used
that map to instance the textures using the resource loader instead of
creating a new texture from scratch
2024-07-22 17:10:19 -03:00
a8980fbd78 Fix type hints in GLTFDocumentExtension virtual methods 2024-07-02 04:19:10 +02:00
ed952f82bd Add is_zero_approx methods to Vector{2,3} 2024-04-10 19:02:42 +08:00
1e7c60174e fix crash on mat creation after orm refactor 2024-02-16 20:51:27 +01:00
b9cbffd957 add ORMSpatialMaterial 2024-02-08 20:34:11 +01:00
571e4189fd [3.x] Implement physics support in the GLTF module 2023-04-25 15:18:02 -05:00
6d7bc801f6 Set the unlit / unshaded extension when importing / exporting GLTF
Co-authored-by: Hakim <hakim.rouatbi@gmail.com>
2023-03-15 17:26:06 +08:00
1426cd3b3a One Copyright Update to rule them all
As many open source projects have started doing it, we're removing the
current year from the copyright notice, so that we don't need to bump
it every year.

It seems like only the first year of publication is technically
relevant for copyright notices, and even that seems to be something
that many companies stopped listing altogether (in a version controlled
codebase, the commits are a much better source of date of publication
than a hardcoded copyright statement).

We also now list Godot Engine contributors first as we're collectively
the current maintainers of the project, and we clarify that the
"exclusive" copyright of the co-founders covers the timespan before
opensourcing (their further contributions are included as part of Godot
Engine contributors).

Also fixed "cf." Frenchism - it's meant as "refer to / see".

Backported from #70885.
2023-01-10 15:26:54 +01:00
ca898a7b77 [3.x] GLTF: Fix wrong error macro used in a few spots 2022-12-27 18:55:10 -06:00
62e10daf70 [3.x] Backport the GLTFDocumentExtension system 2022-12-21 00:40:00 -06:00
a887f48d1d [3.x] Backport moving camera and light logic to GLTF subclasses 2022-12-11 14:05:08 -06:00
d8b1c9ff3c [3.x] Consistently use p_ for parameters in GLTFDocument 2022-12-10 17:02:13 -06:00
df1a0b25ea Prevent AnimationPlayer from being added on GLTF import if the option is unchecked. Fixes #63954
(cherry picked from commit 805ffdfbf6)
2022-12-04 19:47:36 +08:00
d8aa3b32c9 [3.x] GLTF: Organize structures and extensions into subfolders 2022-12-01 08:25:21 -06:00
f1febed469 [3.x] GLTF: Move shared defines into a separate gltf_defines.h file 2022-11-29 00:04:57 -06:00
8979208713 [3.x] GLTF: Only list used extensions when they're actually used 2022-11-28 17:54:30 -06:00
9c6810e04f Merge pull request #66889 from LunaticInAHat/gltf_texture_filter_fix_3
GLTF import external images correctly
2022-10-05 17:08:06 +02:00
08c801738e GLTF import external images correctly 2022-10-04 12:01:24 -04:00
9bf589d55a Merge pull request #66856 from LunaticInAHat/gltf_texture_filter_fix_3
GLTF imports & exports material texture filters
2022-10-04 16:57:55 +02:00
bb34c55b3c GLTF imports & exports material texture filters 2022-10-03 21:19:48 -04:00
3ec8296ffc Make "Godot source files" comment consistent in modules
(cherry picked from commit ce0080768c)
2022-08-08 09:47:24 +02:00
0a8d5d7098 Bump version to 3.6-beta 2022-08-05 18:51:38 +02:00
818f1eed31 Code quality: Fix header guards consistency
Adds `header_guards.sh` bash script, used in CI to validate future
changes. Can be run locally to fix invalid header guards.
2022-07-25 14:53:37 +02:00
7a35bf683a Fix light intensity and attenuation import from GLTF
(cherry picked from commit aa7ab96e71)
2022-07-06 11:44:30 +02:00
f66200ed3c Fix gltf texture filename decoding 2022-07-03 03:03:24 +02:00
7d970b967e gltf: Allow more than 4 joints but warn and ignore them. 2022-06-10 18:41:14 -07:00
3a8104289d Document that glTF classes are only usable in editor builds
Run-time glTF saving/loading is only available in Godot 4.0,
not Godot 3.x.
2022-04-22 19:08:37 +02:00
b087538119 Add an XML schema for documentation
This makes it easier to spot syntax errors when editing the
class reference. The schema is referenced locally so validation
can still work offline.

Each class XML's schema conformance is also checked on GitHub Actions.
2022-03-16 23:01:02 +01:00
2e75471a48 Fix GLTF exporter crash when using GridMap 2022-02-20 22:02:23 +08:00
f50c7f7415 Core: Move generated VERSION_HASH to a .cpp file
This lets us have its definition in `core/version.h` and avoid
rebuilding a handful of files every time the commit hash changes.

(cherry picked from commit 90162851a7)
2022-02-10 13:06:56 +01:00
a627cdafc5 Update copyright statements to 2022
Happy new year to the wonderful Godot community!
2022-01-13 15:54:13 +01:00
44d436add6 Skip Draco-compressed glTF 3d format files.
(cherry picked from commit b468104842)
2022-01-12 17:28:07 +01:00
f76430670c Fix glTF scene export crash on null normal texture
Also removes a redundant get_texture call directly below
the modified code block.

Fixes #56379

(cherry picked from commit 0e36d5e782)
2022-01-06 00:21:37 +01:00
db020eae29 Merge pull request #55859 from akien-mga/3.x-gltf-module-cleanup 2021-12-13 13:46:03 +01:00
e4c40d8e6a glTF: Cleanup includes and defines, split PackedSceneGLTF to own file 2021-12-12 12:08:18 +01:00
7bf7bd70ac [3.x] Misc build system fixes 2021-12-10 12:15:16 -06:00
1cf6d21f69 Make overridden properties link to parent definition
Co-authored-by: Josh DeGraw <joshmdegraw@gmail.com>
2021-12-03 17:48:49 +03:00
734b4a46bc Fix crash when exporting gltf mesh that has no skin.
(cherry picked from commit 209ac9569c4c5180aea4b330ed7f6d2a572d5e82)
2021-11-22 22:46:53 -05:00
4d3690eba5 Remove unimplemented methods 2021-11-18 12:47:36 +00:00
6f4858f184 Modules: Make sure to include modules_enabled.gen.h where needed
Fixes #51677.

Co-authored-by: Arkadiusz Marcin Kołek <aksoftware91@gmail.com>
2021-11-12 13:45:33 +01:00
999bba6916 Fix glTF cubic spline track interpolation incorrectly reporting times/values size mismatch (3.4 specific) 2021-11-09 09:47:37 -05:00
14c366ddd7 Bump version to 3.5-beta 2021-11-05 16:10:17 +01:00
e4996887ca Merge pull request #48625 from The-O-King/compression_options 2021-11-02 08:58:22 +01:00
e575b27b15 3.x backport glTF: Fix override materials and non-empty arrays
Keep track of MeshInstance and GeometryInstance override materials in the GLTFMesh object.
Ensure all arrays are non-empty to conform with "minItems":1 in glTF spec.
2021-11-01 23:40:12 -07:00
203295f17d Added Mesh Compression Import Options
Fleshed out the "Optimize Mesh" options found in the mesh import UI
Gave a checkbox to every vertex attribute that can be compressed

Surfaced option to enable/disable Octahedral compression for
normal/tangent vectors

Also surfaces the vertex position compression option which previously
inaccessible because the defaults did not compress vertex positions

Supports all current importers (obj, fbx, collada, gltf)
2021-11-01 12:54:28 -04:00
42d385b312 clang-format: Disable alignment of operands, too unreliable
Sets `AlignOperands` to `DontAlign`.

`clang-format` developers seem to mostly care about space-based indentation and
every other version of clang-format breaks the bad mismatch of tabs and spaces
that it seems to use for operand alignment. So it's better without, so that it
respects our two-tabs `ContinuationIndentWidth`.
2021-10-28 13:23:38 +02:00
e49f8c5823 3.x: Fix validation errors due to chunk padding and empty skins.
GLB chunk padding length calculation was backwards and missing for the BIN chunk.
Fixed error caused by "skins":[] when no skins were present.
Finally, encode animations before textures to avoid accessor misalignment due to texture byteLength.
2021-10-25 21:17:13 -07:00
3cdaaffb54 Backport to 3.x "gltf export: Fix export of skeletons, skins and blend shapes."
Create GLTFSkeleton at the same time we create GLTFNode objects.
Create GLTFSkin at the same time we export MeshInstance3D
Fixes export of blend shape arrays for meshes with multiple surfaces.
Fixes array indexing issues in export of glTF morph target animations.

Converts BoneAttachment3D nodes during normal node creation: this avoids
special cases during mesh export, and especially exporting skeletons or meshes
which are children of BoneAttachment3D.

Co-authored-by: K. S. Ernest (iFire) Lee <ernest.lee@chibifire.com>
2021-10-05 14:14:28 -07:00
e31a10da98 Merge pull request #52274 from aaronfranke/3.x-gltf-noregex 2021-10-05 12:40:12 +02:00