summaryrefslogtreecommitdiffstats
path: root/editor/import/resource_importer_scene.h
Commit message (Collapse)AuthorAgeFilesLines
* Move 3D scene import classes to their own folderAaron Franke2024-01-041-502/+0
|
* Fix referring to ResourceImporterScene static importers via instancesAaron Franke2023-12-111-5/+5
|
* Fix Resource Importer use after freeAlistair Leslie-Hughes2023-11-141-1/+1
|
* Implement glTF compat version system for files from older Godot versionsAaron Franke2023-11-031-0/+2
|
* Vertex and attribute compression to reduce the size of the vertex format.clayjohn2023-10-051-0/+1
| | | | | | | | | | | | | 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.
* Register and cleanup resource importer singletons in a predictable wayYuri Sizov2023-08-071-1/+2
|
* Add Mesh ConvexDecompositionSettings wrappersmix82023-04-071-21/+22
| | | | Adds wrapper MeshConvexDecompositionSettings to control parameters for Mesh ConvexDecomposition operations.
* Merge pull request #73814 from lyuma/importer_mesh_convexRémi Verschelde2023-02-231-2/+4
|\ | | | | | | import: Fix uv2 by avoiding premature ImporterMesh::get_mesh()
| * import: Fix uv2 by avoiding premature ImporterMesh::get_mesh()Lyuma2023-02-231-2/+4
| | | | | | | | | | | | Implements create_convex_shape in ImpoterMesh. Note: ImporterMeshInstance3D::get_mesh() is safe. The only dangerous function with side effects is ImpoterMesh::get_mesh()
* | Merge pull request #73687 from ↵Rémi Verschelde2023-02-231-1/+1
|\ \ | | | | | | | | | | | | | | | Calinou/editor-convex-import-fix-max-convex-hulls-crash Add a property hint to fix crash when setting max convex hulls below 0
| * | Add a property hint to fix crash when setting max convex hulls below 0Hugo Locurcio2023-02-231-1/+1
| |/ | | | | | | Generating less than 1 convex hull is not valid anyway.
* / import: Pass the correct defaults to generated collision shapes.Lyuma2023-02-231-0/+12
|/ | | | | | Solves incorrect defaults, as well as applied scale failing to apply. The default values are removed, and they differ from collision shape defaults These values must match the defaults defined in resource_importer_scene.cpp
* Use enum instead of int in virtual methods return typeRaul Santos2023-01-311-1/+1
|
* Apply root scale to shape on importJoJoX2023-01-281-9/+9
|
* 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".
* Add trimming option to cut un-keyed timeline before first key in gltfSilc Renew2022-11-291-5/+5
|
* Clean up Basis from Euler codeAaron Franke2022-10-211-1/+1
|
* Add animation slices for individual animationsJuan Velandia2022-10-101-1/+1
| | | | | | | | | | | | This improves the workflow for animations in a single timeline. The users are no longer forced to slice one animation named "default". Instead users can choose which animation(s) to break and how. Changes: - Remove slicing options from the animation player import menu - Add such options to the animation import menu - Rename clips to slices wherever was left
* Remove unused includes & move some includes to top of fileAndy Maloney2022-09-231-7/+4
|
* Fix LOD-generation on skinned meshes.SaracenOne2022-09-141-0/+2
|
* improve animation track optimizer algorithmSilc Renew2022-08-091-1/+1
|
* add position track normalization & post process key value for retargetSilc Renew2022-07-261-0/+2
|
* Code quality: Fix header guards consistencyRémi Verschelde2022-07-251-3/+3
| | | | | Adds `header_guards.sh` bash script, used in CI to validate future changes. Can be run locally to fix invalid header guards.
* Make import preview of blend files visibleRindbee2022-07-021-1/+1
| | | | Unlike other scene imports, the import of blend files requires options. Otherwise, the preview may not be visible.
* implement bone renamer in importerSilc Renew2022-07-011-0/+2
|
* Add a new HashSet templatereduz2022-05-201-1/+1
| | | | | * Intended to replace RBSet in most cases. * Optimized for iteration speed
* Replace most uses of Map by HashMapreduz2022-05-161-15/+15
| | | | | | | | | | | | * 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!
* Remove `RES` and `REF` typedefs in favor of spelled out `Ref<>`Hugo Locurcio2022-05-031-2/+2
| | | | | | These typedefs don't save much typing compared to the full `Ref<Resource>` and `Ref<RefCounted>`, yet they sometimes introduce confusion among new contributors.
* Import scenes as AnimationLibraryreduz2022-04-131-18/+21
| | | | | | | | | | | | Added the ability to import scenes as AnimationLibrary * Completes implementation of https://github.com/godotengine/godot-proposals/issues/4296 * Helps if you want to export animations to a separate file (say a GLTF) to avoid re-importing/exporting them every time the model changes. * Helps if you simply want to have animations using a dummy model, which can be shared across multiple models. Creates a secondary scene importer used only for animations. **NOTE**: A new flag for scene importer: EditorSceneFormatImporter.IMPORT_DISCARD_MESHES_AND_MATERIALS has been added, to hint importers that they should skip meshes and animations (and hence make importing faster). It is not implemented in any importer yet, this should be done in a separate PR.
* Improvements and fixes to occludersjfons2022-02-071-2/+8
| | | | | | | | | | | | | | | Improvements: * Occluder3D is now an abstract type inherited by: ArrayOccluder3D, QuadOccluder3D, BoxOccluder3D, SphereOccluder3D and PolygonOccluder3D. ArrayOccluder3D serves the same purpose as the old Occluder3D (triangle mesh occluder) while the rest are primitives that can be used to manually place simple occluders. * Occluder baking can now apply simplification. The "bake_simplification_distance" property can be used to set a world-space distance as the desired maximum error, set to 0.1 by default. * Occluders can now be generated on import. Using the "occ" and "occonly" keywords (similar to "col" and "colonly" for colliders) or by enabling on MeshInstance3Ds in the scene's import window. Fixes: * Fixed saving of occluder files after bake. * Fixed a small error where occluders didn't correctly update in the rendering server. Bonus content: * Generalized "CollisionPolygon3DEditor" so it can also be used to edit Resources. Renamed it to "Polygon3DEditor" since it was already being used by other things, not just colliders. * Fixed a small bug in "EditorPropertyArray" where a call to "remove" was left after the "remove_at" rename.
* ResourceImporter: Restore default append logic for new importersRémi Verschelde2022-02-071-2/+2
| | | | | | | | This was changed in #56943 to allow adding new importers from plugins that take precedence over built-in ones, but this should be opt-in, not the default behavior. Fixes #57730.
* Merge pull request #56943 from V-Sekai/override-importRémi Verschelde2022-02-051-6/+6
|\ | | | | Make add_importer and add_post_importer_plugin override existing importers.
| * Make add_importer and add_post_importer_plugin override existing importers.K. S. Ernest (iFire) Lee2022-01-191-6/+6
| |
* | Merge pull request #55360 from Calinou/rename-bake-mode-propertiesRémi Verschelde2022-01-201-2/+2
|\ \ | |/ |/|
| * Rename and reorder bake mode properties for consistencyHugo Locurcio2021-12-141-2/+2
| | | | | | | | | | | | | | | | The order now goes from least to most computationally expensive: - Disabled - Static - Dynamic
* | Fix import hints breaking node paths in animationsRicardo Buring2022-01-181-1/+1
| |
* | options dict is now passed to _import_scene.K. S. Ernest (iFire) Lee2022-01-051-11/+10
| |
* | Update copyright statements to 2022Rémi Verschelde2022-01-031-2/+2
|/ | | | Happy new year to the wonderful Godot community!
* Add path to functions that return iporter optionsreduz2021-11-141-6/+10
| | | | | | | -Allows displaying custom options for specific file format variants -Added support for scene format import to retrieve custom options This PR is necessary for #54886 to be implemented properly.
* Implement Animation Compressionreduz2021-10-211-0/+1
| | | | | | | | | Roughly based on https://github.com/godotengine/godot-proposals/issues/3375 (used format is slightly different). * Implement bitwidth based animation compression (see animation.h for format). * Can compress imported animations up to 10 times. * Compression format opens the door to streaming. * Works transparently (happens all inside animation.h)
* Implement Animation Blend Shape Tracksreduz2021-10-161-0/+1
| | | | | | | | | | * 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.
* Add scene Post-Import Plugin support.reduz2021-10-151-18/+77
| | | | | | | * 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.
* Implement import actions for pos/rot/scale animation tracksreduz2021-10-141-7/+14
| | | | | | | | Following actions are supported for each track type (position, rotatin, scale): * ImportIfPresent: If a track of this type is found, import it. * ImportIfPresentForall (default): If a track is found for a given node/bone, create it in animations. This ensures there is always a correct blending. * Never: Delete all tracks found for a given type. This is useful if you want to, as an example, force to import rotations only.
* Remove animation 3D transform track, replace by loc/rot/scale tracks.reduz2021-10-121-0/+7
| | | | | | | | | | | | | | | | | | * `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.
* GLTF for game templates.K. S. Ernest (iFire) Lee2021-10-031-3/+3
| | | | | | | | | | | | | 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.
* Merge pull request #52266 from AndreaCatania/collRémi Verschelde2021-09-141-4/+198
|\
| * Improve collision generation usability in the new 3D scene import workflow.AndreaCatania2021-09-081-4/+198
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With this PR it's possible to add a collision during the Mesh import, directly in editor. To generate the shape is possible to chose between the following options: - Decompose Convex: The Mesh is decomposed in one or many Convex Shapes (Using the VHACD library). - Simple Convex: Is generated a convex shape that enclose the entire mesh. - Trimesh: Generate a trimesh shape using the Mesh faces. - Box: Add a primitive box shape, where you can tweak the `size`, `position`, `rotation`. - Sphere: Add a primitive sphere shape, where you can tweak the `radius`, `position`, `rotation`. - Cylinder: Add a primitive cylinder shape, where you can tweak the `height`, `radius`, `position`, `rotation`. - Capsule: Add a primitive capsule shape, where you can tweak the `height`, `radius`, `position`, `rotation`. It's also possible to chose the generated body, so you can create: - Rigid Body - Static Body - Area
* | Revert " Improve collision generation usability in the new 3D scene import ↵Juan Linietsky2021-08-301-198/+4
| | | | | | | | workflow."
* | Merge pull request #51985 from AndreaCatania/collCamille Mohr-Daurat2021-08-301-4/+198
|\ \ | | | | | | Improve collision generation usability in the new 3D scene import workflow.
| * | Improve collision generation usability in the new 3D scene import workflow.AndreaCatania2021-08-281-4/+198
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With this PR it's possible to add a collision during the Mesh import, directly in editor. To generate the shape is possible to chose between the following options: - Decompose Convex: The Mesh is decomposed in one or many Convex Shapes (Using the VHACD library). - Simple Convex: Is generated a convex shape that enclose the entire mesh. - Trimesh: Generate a trimesh shape using the Mesh faces. - Box: Add a primitive box shape, where you can tweak the `size`, `position`, `rotation`. - Sphere: Add a primitive sphere shape, where you can tweak the `radius`, `position`, `rotation`. - Cylinder: Add a primitive cylinder shape, where you can tweak the `height`, `radius`, `position`, `rotation`. - Capsule: Add a primitive capsule shape, where you can tweak the `height`, `radius`, `position`, `rotation`. It's also possible to chose the generated body, so you can create: - Rigid Body. - Static Body. - Area.