summaryrefslogtreecommitdiff
path: root/modules/gltf/gltf_document.cpp
AgeCommit message (Collapse)Author
2021-11-03Merge pull request #54072 from KoBeWi/hrcr_is_dedRémi Verschelde
2021-11-01glTF: Fix override materials and non-empty arraysLyuma
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-10-28clang-format: Enable `BreakBeforeTernaryOperators`Rémi Verschelde
clang-format keeps breaking the way it handles break *after* ternary operators, so I give up and go with the only style they seem to actually test.
2021-10-28clang-format: Disable alignment of operands, too unreliableRémi Verschelde
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-28Remove node_hrcr hackkobewi
2021-10-25gltf: Fix validation errors due to chunk padding and empty skins.Lyuma
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-23Fixed animation insertion in SkeletonEditorSilc 'Tokage' Renew
2021-10-19Merge pull request #52940 from groud/toast_notificationRémi Verschelde
2021-10-16Implement Animation Blend Shape Tracksreduz
* New track type BLEND_SHAPE * Blend shapes are imported via this new track type * Processing is more optimized (no longer relies on variants) * Modified the Blend Shape API in MeshInstance3D to use indices rather than StringNames (more optimizes) * Promo: Fixed a small bug in gizmo updating in Node3D that affected performance Dedicated BlendShape tracks are required for both optimization and eventually implementing them in animation compression.
2021-10-15Add scene Post-Import Plugin support.reduz
* New plugin system to control the whole import workflow * Can add options and run code at every import step (general, per node, mesh, animation, material etc.) This constitutes a first version of these plugins. The ability to interact with the import preview dialog will likely be added later on.
2021-10-14Implement toast notifications in the editorGilles Roudière
2021-10-13Restore gltf animation export after split.K. S. Ernest (iFire) Lee
2021-10-13Remove REST transform influence in skeleton bonesreduz
* Animations and Skeletons are now pose-only. * Rest transform is kept as reference (when it exists) and for IK * Improves 3D model compatibility (non uniform transforms will properly work, as well as all animations coming from Autodesk products).
2021-10-12Remove animation 3D transform track, replace by loc/rot/scale tracks.reduz
* `Animation.TYPE_TRANSFORM3D` track is gone. * Added POSITION_3D, ROTATION_3D, SCALE_3D tracks. * GLTF2, Collada, FBX importers will only import the track types found. * Skeleton3D bone poses are now Pos/Rot/Scale, pose matrix removed. * AnimationPlayer and AnimationTree animate these tracks separately, only when found. * Removed BakeReset code, is useless with these changes. This is the first in a series of commits designed to make the animation system in Godot more useful, which includes: * Better compatibility with Autodesk products * Better reusability of animations across models (including retargeting). * Proper animation compression. * etc. *Note* GLTF2 animation saving went broken with this PR, needs to be fixed in a subsequent one.
2021-10-11Revert "Implement reverse playback and ping-pong loop in AnimationPlayer and ↵Juan Linietsky
NodeAnimation"
2021-10-09implement ping-pong loop in animationTokage
Co-authored-by: Chaosus <chaosus89@gmail.com>
2021-10-04Enable GLTFDocumentExtensionConvertImporterMesh only in games.K. S. Ernest (iFire) Lee
2021-10-03GLTF for game templates.K. S. Ernest (iFire) Lee
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.
2021-09-30Use range iterators for `Map`Lightning_A
2021-09-29gltf export: Fix export of skeletons, skins and blend shapes.Lyuma
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-09-29Use functions defined in the their classes.Anilforextra
2021-09-26Fix GLTF light importAaron Franke
2021-09-20Corrected GLTFDocument::save_scene from processing a nullptrMatthew Newall
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2021-09-15Merge pull request #52273 from aaronfranke/gltf-renamesRémi Verschelde
2021-09-108 uvs for glTF2, URI decode and Vertex Custom api.Lyuma
Add glTF2 uri decode for paths. Add vertex custom apis. Add scene importer api. Change Color to float; add support for float-based custom channels in SurfaceTool and EditorSceneImporterMesh Co-authored-by: darth negative hunter <thenegativehunter2@users.noreply.github.com>
2021-09-10Remove packed scene gltfK. S. Ernest (iFire) Lee
We determined through discussion that composing the packed scene from a node tree was a better design because it removed duplication of code.
2021-08-31Fix missing renames in the GLTF moduleAaron Franke
2021-08-09Continue when glTF2 lights fail to parse.K. S. Ernest (iFire) Lee
2021-07-30Merge pull request #51052 from V-Sekai/gltf-fallbacksRémi Verschelde
glTF2 fallback load PNG and JPG
2021-07-30glTF2 fallback load PNG and JPGK. S. Ernest (iFire) Lee
2021-07-29In glTF2 animations, log spam less when running.K. S. Ernest (iFire) Lee
2021-07-23Fix GLTF crash when the material is not set.Andrea Catania
Sometimes there are meshes that doesn't have materials, so make sure to check this case before extracting the name.
2021-07-21Set the surface name when GLTF file is imported.Andrea Catania
2021-07-15Misc cleanup of header includesRémi Verschelde
Was looking for misuse of module headers without checking that the module is actually enabled and got carried away...
2021-06-30Fix editor suffixes and degrees conversionreduz
* Functions to convert to/from degrees are all gone. Conversion is done by the editor. * Use PROPERTY_HINT_ANGLE instead of PROPERTY_HINT_RANGE to edit radian angles in degrees. * Added possibility to add suffixes to range properties, use "min,max[,step][,suffix:<something>]" example "0,100,1,suffix:m" * In general, can add suffixes for EditorSpinSlider Not covered by this PR, will have to be addressed by future ones: * Ability to switch radians/degrees in the inspector for angle properties (if actually wanted). * Animations previously made will most likely break, need to add a way to make old ones compatible. * Only added a "px" suffix to 2D position and a "m" one to 3D position, someone needs to go through the rest of the engine and add all remaining suffixes. * Likely also need to track down usage of EditorSpinSlider outside properties to add suffixes to it too.
2021-06-27Make curve interpolate crash less.K. S. Ernest (iFire) Lee
2021-06-20Merge pull request #49754 from aaronfranke/is-eq-approx-sub-optRémi Verschelde
Fix sub-optimal uses of is_equal_approx
2021-06-20Fix sub-optimal uses of is_equal_approxAaron Franke
2021-06-19Rename `instance()`->`instantiate()` when it's a verbLightning_A
2021-06-19Consolidate JSON, JSONParseResults and JSONParser into JSONMarcel Admiraal
Renames JSON.parse_string() to parse() Renames JSON.decode_data() to stringify()
2021-06-16Merge pull request #49401 from fire/8-weightsK. S. Ernest (iFire) Lee
Fix 8 bone weights in glTF2
2021-06-11Core: Move DirAccess and FileAccess to `core/io`Rémi Verschelde
File handling APIs are typically considered part of I/O, and we did have most `FileAccess` implementations in `core/io` already.
2021-06-07Fix 8 bone weights in glTF2K. S. Ernest (iFire) Lee
Don't spam in glTF2 import either. Clear() in SurfaceTool does not keep 8 weights.
2021-06-04Rename Quat to QuaternionMarcel Admiraal
2021-06-03Rename Animation TYPE_TRANSFORM to TYPE_TRANSFORM3DAaron Franke
2021-06-03Rename Transform to Transform3D in coreAaron Franke
2021-05-27gltf: Fix mesh nodes which are also bones.Lyuma
Fix issue when two skeletons end up directly parented. Prevent animating TRS for skinned Mesh node. Fix animating weights on meshes with targets but no weights.
2021-05-25Rename File::get_len() get_length()Marcel Admiraal
2021-05-21Merge pull request #48913 from lyuma/gltf_named_binds_dedupRémi Verschelde
Fix incorrect skin deduplication when using named binds
2021-05-20gltf: Fail gracefully when a mesh instance fails.Lyuma