summaryrefslogtreecommitdiffstats
path: root/modules/gltf/gltf_state.h
Commit message (Collapse)AuthorAgeFilesLines
* Merge commit godotengine/godot@87318a2fb7fffeb72adca934e31915be077c3d1fSpartan3222024-11-061-1/+12
|\
| * Merge pull request #94165 from aaronfranke/gltf-khr-anim-ptrThaddeus Crews2024-11-041-0/+3
| |\ | | | | | | | | | GLTF: Implement `KHR_animation_pointer` for animating custom properties
| | * GLTF: Implement the glTF Object Model to support JSON pointer propertiesAaron Franke2024-11-041-0/+2
| | |
| | * GLTF: Prerequisite cleanups before KHR_animation_pointerAaron Franke2024-11-041-0/+1
| | | | | | | | | | | | Add get_scene_node_path and has_additional_data to GLTFNode, remove center of mass ignore warning in physics (it's supported now), rename `d` to `mesh_dict` in mesh import code.
| * | GLTF: Add extract_path and extract_prefix settingsAaron Franke2024-11-041-1/+9
| |/ | | | | | | Only used by the Blender importer
* | Fix copyright headers referring to GodotSpartan3222024-10-271-2/+2
| |
* | Rebrand preambles to RedotDubhghlas McLaughlin2024-10-111-0/+2
|/ | | | | | | | | | | | | | | | | | | | | | Credits: Co-authored-by: Skogi <skogi.b@gmail.com> Co-authored-by: Spartan322 <Megacake1234@gmail.com> Co-authored-by: swashberry <swashdev@pm.me> Co-authored-by: Christoffer Sundbom <christoffer_karlsson@live.se> Co-authored-by: Dubhghlas McLaughlin <103212704+mcdubhghlas@users.noreply.github.com> Co-authored-by: McDubh <103212704+mcdubhghlas@users.noreply.github.com> Co-authored-by: Dubhghlas McLaughlin <103212704+mcdubhghlas@users.noreply.github.com> Co-authored-by: radenthefolf <radenthefolf@gmail.com> Co-authored-by: John Knight <80524176+Tekisasu-JohnK@users.noreply.github.com> Co-authored-by: Adam Vondersaar <adam.vondersaar@uphold.com> Co-authored-by: decryptedchaos <nixgod@gmail.com> Co-authored-by: zaftnotameni <122100803+zaftnotameni@users.noreply.github.com> Co-authored-by: Aaron Benjamin <lifeartstudios@gmail.com> Co-authored-by: wesam <108880473+wesamdev@users.noreply.github.com> Co-authored-by: Mister Puma <MisterPuma80@gmail.com> Co-authored-by: Aaron Benjamin <lifeartstudios@gmail.com> Co-authored-by: SingleError <isaaconeoneone@gmail.com> Co-authored-by: Bioblaze Payne <BioblazePayne@gmail.com>
* GLTF: Add append_gltf_node to GLTFStateAaron Franke2024-09-021-0/+1
|
* Add bake_fps for FBXDocument, GLTFDocument and both import-export.K. S. Ernest (iFire) Lee2024-05-231-0/+9
|
* Add new scene import option to import as SkeletonLyuma2024-02-261-0/+4
| | | | | | Adds a bool import option `nodes/import_as_skeleton_bones`. This is supported in all FBX or GLTF document based formats. It is especially useful for retargeting and importing animations.
* Add ufbx for FBX importingK. S. Ernest (iFire) Lee2024-02-231-2/+5
| | | | | | | | | | | | | | | | This update introduces a new import method for FBX files using ufbx. If the fbx2gltf import fails, it will use the most recently cached scene from the ufbx import. The process is sped up by introducing threads to load the ufbx portion. Key changes include: - Support for importing geometry helper nodes in FBX files. - Addition of cameras and lights with updated names. - Removal of the fbx importer manager. - Introduction of ModelDocument3D and updates to its methods. - Changes to FBX import options and visibility. - Updating the documentation and handling some errors. - Store the original non-unique node, mesh and animation names in FBX and glTF. Co-Authored-By: bqqbarbhg <bqqbarbhg@gmail.com>
* Misc changes to the GLTF module before audio PRAaron Franke2024-01-111-0/+1
|
* Vertex and attribute compression to reduce the size of the vertex format.clayjohn2023-10-051-0/+2
| | | | | | | | | | | | | 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.
* Expose filename in GLTFStateAaron Franke2023-08-031-3/+6
|
* Add copyright to GLTFStateAaron Franke2023-07-101-0/+4
|
* Add a get_node_index method to GLTFStateAaron Franke2023-05-271-1/+1
|
* GLTF: Delete unused skeleton_to_nodeAaron Franke2023-02-261-4/+0
|
* gltf: Add GLTFHandleBinary::HANDLE_BINARY_EMBED_AS_UNCOMPRESSEDLyuma2023-02-011-0/+1
| | | | | | | | This option allows for a safe fallback for embedded gltf textures in cases where VRAM compression is not needed. Add an is_editor_hint guard around GLTFHandleBinary::HANDLE_BINARY_EXTRACT_TEXTURES, to use EMBED_AS_UNCOMPRESSED by default at runtime. This provides an option for pixel art to be stored losslessly. Additionally, respect project importer defaults for texture import settings. Avoid writing and reimporting extracted textures identical to version on disk.
* Merge pull request #62499 from fire/gltf-binary-img-compressionRémi Verschelde2023-01-271-0/+24
|\ | | | | | | Handle gltf binary images
| * Handle gltf binaryK. S. Ernest (iFire) Lee2023-01-271-0/+24
| | | | | | | | | | | | | | | | | | | | | | | | [ Ignore and Warn | Extract Textures (default) | Optimize Loading Embedded as Basisu ] Enable compressed mip maps from Basis Universal for faster compressions. Increase the quality of Basis to avoid corruption. To keep compatibility use the first mip of the previous internal Godot format. Because texture names may have invalid filename characters, adds String::validate_filename to sanitize filenames for import pipeline use.
* | Avoid nested skeletons, and handle skinned meshes with children.Lyuma2023-01-261-0/+2
|/ | | | | | | | | | | Recursively adds child nodes into each skeleton. This should prevent nested skeletons and avoid bone attachments for leaf bones. In cases where a skinned mesh has children, creates two scene nodes with the same name, which both will represent this single gltf node. Because blend shape animations must target the mesh, adds a separate mapping for ImporterMeshInstance3D node references. This change will break existing imported scenes with bone attachments and more than one skeleton. Co-authored-by: K. S. Ernest (iFire) Lee <ernest.lee@chibifire.com>
* One Copyright Update to rule them allRémi Verschelde2023-01-051-29/+29
| | | | | | | | | | | | | | | | | | | | 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".
* GLTF: Clean up lots of includesAaron Franke2022-11-291-20/+0
|
* Cache materials in gltf as the abstract class of MaterialK. S. Ernest (iFire) Lee2022-11-241-4/+4
| | | | Use the abstract material class instead of BaseMaterial3D. This allows inserting ShaderMaterials into gltf. Like in VRM.
* Add a way to store additional data in GLTFState and GLTFNodeAaron Franke2022-10-151-0/+4
|
* GLTF imports & exports material texture filtersThe Tophat Demon2022-10-031-0/+6
|
* Make used extensions stored in GLTFStateAaron Franke2022-09-191-0/+4
| | | | This allows GLTFDocumentExtension classes to add to the used extensions array.
* Replace Array return types with TypedArray 3kobewi2022-08-241-32/+32
|
* Prevent AnimationPlayer from being added on GLTF import if the option is ↵Hakim2022-08-101-0/+4
| | | | unchecked. Fixes #63954
* Code quality: Fix header guards consistencyRémi Verschelde2022-07-251-0/+1
| | | | | Adds `header_guards.sh` bash script, used in CI to validate future changes. Can be run locally to fix invalid header guards.
* GLTF: Organize structures into a subfolderAaron Franke2022-07-241-10/+10
|
* GLTF: Move shared defines into a separate gltf_defines.h fileAaron Franke2022-07-241-2/+1
| | | | Also move GLTFDocument's template conversion functions into gltf_template_convert.h
* GLTF: Only list used extensions when they're actually usedAaron Franke2022-07-231-0/+1
|
* Add a new HashSet templatereduz2022-05-201-2/+2
| | | | | * Intended to replace RBSet in most cases. * Optimized for iteration speed
* Improve gltf extension GLTFDocument api.K. S. Ernest (iFire) Lee2022-05-201-3/+4
|
* Replace most uses of Map by HashMapreduz2022-05-161-11/+11
| | | | | | | | | | | | * Map is unnecessary and inefficient in almost every case. * Replaced by the new HashMap. * Renamed Map to RBMap and Set to RBSet for cases that still make sense (order matters) but use is discouraged. There were very few cases where replacing by HashMap was undesired because keeping the key order was intended. I tried to keep those (as RBMap) as much as possible, but might have missed some. Review appreciated!
* Discard images from gltf import for the animation library.K. S. Ernest (iFire) Lee2022-04-231-0/+4
| | | | This is an optimization.
* Update copyright statements to 2022Rémi Verschelde2022-01-031-2/+2
| | | | Happy new year to the wonderful Godot community!
* GLTF for game templates.K. S. Ernest (iFire) Lee2021-10-031-0/+1
| | | | | | | | | | | | | Convert GLTF Document to use ImporterMeshInstance3D. Add a GLTFDocument extension list and an extension for converting the importer mesh instance 3d to mesh instance 3d. Use GLTF module when the editor tools are disabled. Modified the render server to be less restrictive on matching blend arrays and have more logging. Misc bugs with multimesh. Always index the meshes.
* gltf export: Fix export of skeletons, skins and blend shapes.Lyuma2021-09-291-0/+5
| | | | | | | | | | | | | 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>
* Remove packed scene gltfK. S. Ernest (iFire) Lee2021-09-101-1/+0
| | | We determined through discussion that composing the packed scene from a node tree was a better design because it removed duplication of code.
* Misc cleanup of header includesRémi Verschelde2021-07-151-3/+3
| | | | | Was looking for misuse of module headers without checking that the module is actually enabled and got carried away...
* Always have a name for gltf2 mesh, material and skins.K. S. Ernest (iFire) Lee2021-03-241-0/+1
| | | Co-authored-by: Lcbx <luc.courbariaux@gmail.com>
* Relaxes Node naming constraints in glTF documents to match the Editor.abaire2021-02-241-0/+4
|
* Update copyright statements to 2021Rémi Verschelde2021-01-011-2/+2
| | | | | | | | | | | | | | Happy new year to the wonderful Godot community! 2020 has been a tough year for most of us personally, but a good year for Godot development nonetheless with a huge amount of work done towards Godot 4.0 and great improvements backported to the long-lived 3.2 branch. We've had close to 400 contributors to engine code this year, authoring near 7,000 commit! (And that's only for the `master` branch and for the engine code, there's a lot more when counting docs, demos and other first-party repos.) Here's to a great year 2021 for all Godot users 🎆
* Add exporting glTF2.K. S. Ernest (iFire) Lee2020-12-221-0/+180
* Support KHR_texture_transform. * Support exporting glTF2 * Support exporting instanced scenes * Extract into a gltf state and gltf document * Add a tools menu for exporting gltf2