summaryrefslogtreecommitdiff
path: root/modules/gltf/gltf_document.cpp
AgeCommit message (Collapse)Author
2022-07-25Merge pull request #63219 from reduz/implement-vector4-projectionRémi Verschelde
2022-07-24GLTF: Organize structures into a subfolderAaron Franke
2022-07-25Merge pull request #63409 from V-Sekai/gltf-exportRémi Verschelde
2022-07-24Mend duplicate nodes in the gltf export.K. S. Ernest (iFire) Lee
2022-07-24GLTF: Move shared defines into a separate gltf_defines.h fileAaron Franke
Also move GLTFDocument's template conversion functions into gltf_template_convert.h
2022-07-23GLTF: Only list used extensions when they're actually usedAaron Franke
2022-07-23Implement Vector4, Vector4i, Projectionreduz
Implement built-in classes Vector4, Vector4i and Projection. * Two versions of Vector4 (float and integer). * A Projection class, which is a 4x4 matrix specialized in projection types. These types have been requested for a long time, but given they were very corner case they were not added before. Because in Godot 4, reimplementing parts of the rendering engine is now possible, access to these types (heavily used by the rendering code) becomes a necessity. **Q**: Why Projection and not Matrix4? **A**: Godot does not use Matrix2, Matrix3, Matrix4x3, etc. naming convention because, within the engine, these types always have a *purpose*. As such, Godot names them: Transform2D, Transform3D or Basis. In this case, this 4x4 matrix is _always_ used as a _Projection_, hence the naming.
2022-07-08Add static methods for creating Image and ImageTexturekobewi
2022-07-05Fix light intensity and attenuation import from GLTFPZerua
2022-07-03glTF: Fix a couple typos in warnings on image parsingRémi Verschelde
2022-05-20Improve gltf extension GLTFDocument api.K. S. Ernest (iFire) Lee
2022-05-16Replace most uses of Map by HashMapreduz
* 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!
2022-05-03Rename Basis get_axis to get_column, remove redundant methodsAaron Franke
2022-04-23Discard images from gltf import for the animation library.K. S. Ernest (iFire) Lee
This is an optimization.
2022-04-13Color: Rename `to_srgb`/`to_linear` to include base color spaceRémi Verschelde
This helps reduce confusion around sRGB <> Linear conversions by making both input and output color spaces explicit.
2022-04-11Merge pull request #59980 from reduz/animation-librariesRémi Verschelde
2022-04-11Implement Animation Librariesreduz
* Instead of containing single animations, AnimationPlayer now contains libraries. * Libraries, in turn, contain the animations. This paves the way for implementing the possibility of importing scenes as animation libraries, finally allowing to import animations separate from the 3D models. Missing (will be done on separate PRs): * Make it possible to import scenes (dae/fbx/gltf) as animation libraries. * Make it possible for AnimationTree to import animation libraries on its own, so it does not rely on AnimationPlayer for everything.
2022-04-11Make FileAccess and DirAccess classes reference counted.bruvzg
2022-03-29Add support for importing .blend filesK. S. Ernest (iFire) Lee
Lets you drag or place .blend files in the project folder and it will import the files. Checks for Blender 3.0's gltf2 `export_keep_originals` option. Add basepath support to GLTFDocument append_from_file. Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2022-03-28Remove last editor code dependencies in template buildRémi Verschelde
SConstruct change also makes it possible to outright delete the `editor` folder in a `tools=no` build, which we use in CI to ensure no invalid cross-dependencies are added.
2022-03-24Add GLTF, DAE and FBX importers enforcement for blend shape mask arrayAdam Scott
2022-03-03glTF export for new TYPE_BLEND_SHAPE tracksLyuma
2022-02-20Fix GLTF exporter crash when using GridMapHaoyu Qiu
2022-02-16Default material is assigned to meshes without material for glTF exportFazil Babu
2022-02-11CSG Meshes can be exported as glTFFazil Babu
2022-02-10Fix typos with codespellRémi Verschelde
Using codespell 2.2-dev from current git. Added `misc/scripts/codespell.sh` to make it easier to run it once in a while and update the skip and ignore lists.
2022-02-09Core: Move generated `VERSION_HASH` to a `.cpp` fileRémi Verschelde
This lets us have its definition in `core/version.h` and avoid rebuilding a handful of files every time the commit hash changes.
2022-02-04[Net] New replication interface, spawner and synchronizer nodes.Fabio Alessandrelli
Initial implementation of the MultiplayerReplicationInterface and its default implementation (SceneReplicationInterface). New MultiplayerSpawner node helps dealing with instantiation of scenes on remote peers (e.g. clients). It supports both custom spawns via a `_spawn_custom` virtual function, and optional auto-spawn of known scenes via a TypedArray<PackedScenes> property. New MultiplayerSynchornizer helps synchronizing states between the local and remote peers, supports both sync and spawn properties and is configured via a `SceneReplicationConfig` resource. It can also sync via path (i.e. without being spawned by a MultiplayerSpawner if both peers has it in tree, but will not send the spawn state in that case, only the sync one.
2022-02-04String: Add contains().Anilforextra
2022-01-25Issue 57130 Fix GLTFDocument.generate_scene if state is nullPaweł Fertyk
2022-01-08Skip Draco-compressed glTF 3d format files.K. S. Ernest (iFire) Lee
2022-01-07Fix some more wrong node nameskobewi
2022-01-05Merge pull request #56380 from RedMser/export_gltf_normal_crashRémi Verschelde
2022-01-05Merge pull request #56290 from nikitalita/fix-gltf-mesh-primsRémi Verschelde
2022-01-04Merge pull request #52541 from V-Sekai/gltf-load-scene-bufferK. S. Ernest (iFire) Lee
Add gltf import buffer.
2022-01-04Add import glb from bufferK. S. Ernest (iFire) Lee
Split functions from gltf document import and export into six functions. Use base path to allow two code paths based on an empty base path or a full base path. Add uri decode in _parse_buffers.
2022-01-03Update copyright statements to 2022Rémi Verschelde
Happy new year to the wonderful Godot community!
2021-12-31Fix glTF scene export crash on null normal textureRedMser
Also removes a redundant get_texture call directly below the modified code block. Fixes #56379
2021-12-27FIX GLTF Document mesh primitive conversionsnikitalita
2021-12-10Misc build system fixesAaron Franke
2021-12-09Add a double-precision editor build to CIAaron Franke
2021-12-05Remove or make verbose some debugging printsHugo Locurcio
The message about SpatialMaterial conversion was turned into a warning, as it can potentially interfere with porting projects from Godot 3.x (if there's a bug in the conversion code).
2021-11-22Fix crash when exporting meshes to gltf that have no skin.jitspoe
2021-11-12Modules: Make sure to include modules_enabled.gen.h where neededRémi Verschelde
2021-11-09Merge pull request #53819 from TokageItLab/re-implement-ping-pongRémi Verschelde
Reimplement ping-pong animation and reverse playback
2021-11-03Merge pull request #54072 from KoBeWi/hrcr_is_dedRémi Verschelde
2021-11-03reimplement ping-pongSilc 'Tokage' Renew
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`.