godot/modules/gltf
David Nikdel 522f035cb1 GLTF export improvements
- GLBs produced by godot don't pass validation when there's no data in the buffer segment. The segment is dropped but the size of the chunk_header is still reported in total length (incorrectly)

- Remove empty "extensions" JSON object being appended to all nodes (if it's still empty). This is just cutting down on unnecessary bloat and consistent with the rest of the file's attempts to not emit any keys that are equal to their default value.

- Allow the case where root_nodes is empty. This is permitted by the GLTF spec. Moreover it can happen fairly naturally when using the ROOT_NODE_MODE_MULTI_ROOT root node mode on a scene with only a root node (which is valid in godot).

- Don't create an initial buffer until we're ready to write data into it (buffers of byteLength=0 don't pass validation).
2024-05-11 21:42:05 -04:00
..
doc_classes Separate Shape3D resource logic in GLTFPhysicsShape 2024-04-04 16:22:01 -07:00
editor [Core] Add case-insensitive `String::containsn` 2024-05-08 12:48:01 +02:00
extensions Merge pull request #88301 from aaronfranke/gltf-explicit-compound-triggers 2024-04-26 11:08:19 +02:00
structures Merge pull request #89270 from Repiteo/enforce-typename-in-templates 2024-03-14 22:34:37 +01:00
README.md GLTF: Organize structures into a subfolder 2022-07-24 17:16:51 -05:00
SCsub Add ufbx for FBX importing 2024-02-23 22:33:04 +01:00
config.py Add ufbx for FBX importing 2024-02-23 22:33:04 +01:00
gltf_defines.h Add ufbx for FBX importing 2024-02-23 22:33:04 +01:00
gltf_document.cpp GLTF export improvements 2024-05-11 21:42:05 -04:00
gltf_document.h Fix method bindings in FBXDocument by making them virtual in GLTFDocument. 2024-03-15 12:47:02 -07:00
gltf_state.cpp Add new scene import option to import as Skeleton 2024-02-26 03:06:07 -08:00
gltf_state.h Add new scene import option to import as Skeleton 2024-02-26 03:06:07 -08:00
gltf_template_convert.h Enforce template syntax `typename` over `class` 2024-03-07 22:39:09 -06:00
register_types.cpp Add ufbx for FBX importing 2024-02-23 22:33:04 +01:00
register_types.h One Copyright Update to rule them all 2023-01-05 13:25:55 +01:00
skin_tool.cpp Replace `find` with `contains/has` where applicable 2024-05-08 12:37:42 +02:00
skin_tool.h Add new scene import option to import as Skeleton 2024-02-26 03:06:07 -08:00

README.md

Godot GLTF import and export module

In a nutshell, the GLTF module works like this:

  • The structures/ folder contains GLTF structures, the small pieces that make up a GLTF file, represented as C++ classes.
  • The extensions/ folder contains GLTF extensions, which are optional features that build on top of the base GLTF spec.
  • GLTFState holds collections of structures and extensions.
  • GLTFDocument operates on GLTFState and its elements.
  • The editor/ folder uses GLTFDocument to import and export 3D models.