Commit Graph

88 Commits

Author SHA1 Message Date
Lyuma fd2aa564ab gltf export: Remove snapping and fix validation
Round min/max correctly in accessors
Include correct target in vertex and indices bufferViews
Avoid use of Math::snapped
Normalize vertex weights.
2024-03-10 06:07:46 -07:00
A Thousand Ships 9b5cd8e240
[Doc] Fix some incorrect uses of "children" 2024-02-29 11:52:55 +01:00
Lyuma 652ef966f9 Add new scene import option to import as Skeleton
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.
2024-02-26 03:06:07 -08:00
K. S. Ernest (iFire) Lee 04d43947bf
Add ufbx for FBX importing
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>
2024-02-23 22:33:04 +01:00
Hugo Locurcio f781571d07
Add keywords to improve search in the class reference 2024-02-22 16:16:49 +01:00
Danil Alexeev af28f87791
Documentation: Add support for deprecated/experimental messages 2024-02-15 15:59:50 +03:00
mxaddict ad106a283b Update blender_path behavior to require exact path to executable instead of trying to guess it 2024-01-27 00:41:53 +08:00
Aaron Franke b00e5cef63
GLTF: Update OMI_physics_body, add OMI_physics_shape, keep OMI_collider 2024-01-19 14:35:49 -06:00
Aaron Franke d36a34edb7
Misc changes to the GLTF module before audio PR 2024-01-11 20:33:51 -06:00
Aaron Franke 8acef03cb5
Add export settings to the export dialog for GLTF 2023-12-30 19:57:39 -06:00
Hugo Locurcio e5270c0db2
Link to runtime loading/saving tutorial and improve Image documentation 2023-11-14 12:05:54 +01:00
Aaron Franke 446893fdd1
GLTF: Add GODOT_single_root extension 2023-09-26 10:18:52 -05: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
Aaron Franke 5b7001dccf
GLTF: Improve logic for keeping track of the real root node 2023-09-03 03:35:29 -05:00
Aaron Franke d12b0787af
GLTF: Add center of mass property 2023-08-11 11:27:01 -05: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
Aaron Franke 2d13a9651c
GLTF: Preserve the original bytes when importing a texture 2023-08-03 10:30:33 -05:00
Aaron Franke bc68fa368d
More cosmetic improvements in the GLTF code 2023-08-03 02:05:41 -05:00
Aaron Franke e8906b5b80
Add export_preserialize to the GLTF export process 2023-07-18 15:20:24 -05:00
Aaron Franke 07400f2065
Add copyright to GLTFState 2023-07-10 00:24:10 -05:00
Rémi Verschelde 81064cc239
Doctool: Remove version attribute from XML header
We don't use that info for anything, and it generates unnecessary diffs
every time we bump the minor version (and CI failures if we forget to
sync some files from opt-in modules (mono, text_server_fb).
2023-07-06 10:08:21 +02:00
Rémi Verschelde 346f1ab86b
Bump version to 4.2-dev
Keep on waitin'
2023-07-05 22:07:03 +02:00
Aaron Franke a222bdf83f
GLTF: Rename GLTFCollider class to GLTFPhysicsShape 2023-06-16 15:18:24 -05:00
Aaron Franke 6dde6b4cdf
GLTF: Expose the inertia tensor instead of a vector 2023-06-06 21:06:49 -05:00
Aaron Franke 629613a867
GLTF: Document `gltf_skeleton->godot_bone_node` is unused when importing 2023-06-03 02:13:07 -05:00
Aaron Franke 5e139c2ab9
Add a get_node_index method to GLTFState 2023-05-27 12:30:25 -05:00
Aaron Franke 7da93a0bc0
Add support for extending GLTF with more texture formats & support WebP 2023-05-22 16:30:20 -05:00
Lyuma 72d131899b gltf: Permit sparse accessors without a bufferView. 2023-05-09 10:03:38 -07:00
Aaron Franke 639b8e7dc7
Implement physics support in the GLTF module 2023-03-09 20:02:05 -06:00
Aaron Franke 2cc22fb964
Document GLTFNode and some of GLTFState 2023-03-01 10:25:23 -06:00
Rémi Verschelde 1c1524a651
Bump version to 4.1-dev
Can't stop, won't stop, they said, huh?
2023-03-01 01:44:37 +01:00
Aaron Franke 9a031806bd
GLTF: Delete unused skeleton_to_node 2023-02-26 15:16:31 -06:00
Aaron Franke 84658b47ca
Remove unused joint boolean in GLTFNode 2023-02-21 00:48:02 -06:00
Rémi Verschelde c40020513a
Merge pull request #72440 from V-Sekai/gltf_embed_as_uncompressed
gltf: Add GLTFHandleBinary::HANDLE_BINARY_EMBED_AS_UNCOMPRESSED
2023-02-01 12:10:13 +01:00
Lyuma bc24d01359 gltf: Add GLTFHandleBinary::HANDLE_BINARY_EMBED_AS_UNCOMPRESSED
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.
2023-02-01 01:42:36 -08:00
Raul Santos 9e9eac4676
Use enum instead of int in virtual methods return type 2023-01-31 19:06:49 +01:00
Silc Renew 8b3be51d17 Add remove immutable tracks option to glTF importer
Co-authored-by: Lyuma <xn.lyuma@gmail.com>
2023-01-30 08:57:27 +09:00
Rémi Verschelde 518b9e5801
Add missing classref changes after #62942 2023-01-27 12:07:53 +01:00
K. S. Ernest (iFire) Lee 39922d7167 Handle gltf binary
[ 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.
2023-01-27 02:02:02 -08:00
Aaron Franke 208df30eeb
Improve the documentation of GLTFDocument's append methods 2023-01-15 14:27:08 -06:00
Aaron Franke f83f13f3a2
Pass GLTFState to the export_preflight method 2022-12-11 13:22:25 -06:00
Aaron Franke 1bbbee384d
GLTF: Clean up lots of includes 2022-11-29 23:11:08 -06:00
Rémi Verschelde 09e1db2148
Merge pull request #68665 from TokageItLab/cut-unkeyed-gltf-anim
Add "Trimming" option to cut un-keyed timeline before first key in glTF animation
2022-11-29 16:51:56 +01:00
Silc Renew db7473672f Add trimming option to cut un-keyed timeline before first key in gltf 2022-11-29 13:53:33 +09:00
Rémi Verschelde 06bdc91afd
Merge pull request #69083 from fire/abstract_gltf_material
Cache materials in gltf as the abstract class of Material in GLTFDocument
2022-11-24 18:54:25 +01:00
K. S. Ernest (iFire) Lee baab97302a Cache materials in gltf as the abstract class of Material
Use the abstract material class instead of BaseMaterial3D. This allows inserting ShaderMaterials into gltf. Like in VRM.
2022-11-24 09:00:09 -08:00
RedMser 9c50e99c5c Add unregister for GLTFDocumentExtension 2022-11-22 21:46:59 +01:00