summaryrefslogtreecommitdiffstats
path: root/editor/import/3d
Commit message (Collapse)AuthorAgeFilesLines
* Merge commit godotengine/godot@f128f383e892865379cb8b14e7bcc9858efe2973Spartan3222024-11-275-19/+265
|\
| * Merge pull request #96544 from SaracenOne/import_thumbnailsThaddeus Crews2024-11-272-0/+12
| |\ | | | | | | | | | Generate thumbnails on imported scenes.
| | * Generate editor thumbnails on imported scenes.Saracen2024-11-242-0/+12
| | |
| * | Merge pull request #97824 from TokageItLab/retarget-modifierThaddeus Crews2024-11-264-19/+253
| |\ \ | | |/ | |/| | | | Add RetargetModifier3D for realtime retarget to keep original rest
| | * Add RetargetModifier3D for realtime retarget to keep original restSilc Lizard (Tokage) Renew2024-11-184-19/+253
| | |
* | | Merge commit godotengine/godot@cb411fa960f0b7fdbd97dcdb4c90f9346360ee0eSpartan3222024-11-125-6/+6
|\| |
| * | Merge pull request #97363 from reduz/deterministic-gen-suberesources-idThaddeus Crews2024-11-114-4/+4
| |\ \ | | | | | | | | | | | | Allow passing UID to importer
| | * | Allow passing UID to importerJuan2024-11-114-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This helps, for importers spitting out new resources to the res:// filesystem to actually hash them to generate deterministic UIDs. This PR also fixes the determinism for translations.
| * | | Core: Integrate `Ref::instantiate` where possibleThaddeus Crews2024-11-102-2/+2
| |/ /
* | | Merge commit godotengine/godot@0f5f3bc9546b46b2029fc8896dc859697f1eab97Spartan3222024-11-114-5/+2
|\| |
| * | Merge pull request #98874 from aaronfranke/gltf-preserve-visibilityThaddeus Crews2024-11-072-0/+2
| |\ \ | | | | | | | | | | | | GLTF: Preserve node visibility on import
| | * | GLTF: Preserve node visibility on importAaron Franke2024-11-052-0/+2
| | | |
| * | | Merge pull request #98150 from hunterloftis/fix-default-import-threadedThaddeus Crews2024-11-072-5/+0
| |\ \ \ | | |/ / | |/| | | | | | Fix freeze on non-thread-safe custom importers
| | * | Fix freeze on non-thread-safe custom importersHunter Loftis2024-10-152-5/+0
| | |/
* | | Merge commit godotengine/godot@87318a2fb7fffeb72adca934e31915be077c3d1fSpartan3222024-11-062-4/+4
|\| |
| * | Rewrite index optimization code for maximum efficiencyArseny Kapoulkine2024-11-042-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While all the previous fixes to optimizeVertexCache invocation fixed the vertex transform efficiency, the import code still was missing two crucial recommendations from meshoptimizer documentation: - All meshes should be optimized for vertex cache (this reorders vertices for maximum fetch efficiency) - When LODs are used with a shared vertex buffer, the vertex order should be generated by doing a vertex fetch optimization on the concatenated index buffer from coarse to fine LODs; this maximizes fetch efficiency for coarse LODs The last point is especially crucial for Mali GPUs; unlike other GPUs where vertex order affects fetch efficiency but not shading, these GPUs have various shading quirks (depending on the GPU generation) that really require consecutive index ranges for each LOD, which requires the second optimization mentioned above. However all of these also help desktop GPUs and other mobile GPUs as well. Because this optimization is "global" in the sense that it affects all LODs and all vertex arrays in concert, I've taken this opportunity to isolate all optimization code in this function and pull it out of generate_lods and create_shadow_mesh; this doesn't change the vertex cache efficiency, but makes the code cleaner. Consequently, optimize_indices should be called after other functions like create_shadow_mesh / generate_lods. This required exposing meshopt_optimizeVertexFetchRemap; as a drive-by, meshopt_simplifySloppy was never used so it's not exposed anymore - this will simplify future meshopt upgrades if they end up changing the function's interface.
* | | Merge commit godotengine/godot@c6c464cf9ae56e8b68620af65125dd980d0e8122Spartan3222024-11-022-14/+2
|\| |
| * | Merge pull request #98620 from zeux/lodgen-cleanupClay John2024-10-302-14/+2
| |\ \ | | | | | | | | LOD: Remove "Raycast Normals" and associated "Normal Split Angle" settings
| | * | LOD: Remove "Raycast Normals" and associated "Normal Split Angle" settingsArseny Kapoulkine2024-10-282-14/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "Raycast Normals" was introduced in 4.4 dev and defaulted to "false". The limited testing results at the time suggested that raycasting generally reduces normal quality compared to native simplifier results, at the same time increasing vertex memory and import time. To play it safe, we introduced a setting that defaulted to false, with the goal of removing it later in 4.4 development cycle if no regressions are noticed. Since we already had three dev snapshots and no reports, this change removes the setting and associated code. "Normal Split Angle" was only used when raycast normals were enabled; this change removes it from the settings, but keeps it in the script binding for compatibility. Existing meshes import exactly the same after this change (unless they chose to override raycasting which would be surprising). split_normals helper was only used in this code path and is also removed for simplicity; it is unlikely that this code will be useful as is, as it can only regenerate normals without fixing tangents or updating positions.
* | | | Merge commit godotengine/godot@8004c7524fb9f43425c4d6f614410a76678e0f7cSpartan3222024-10-302-15/+15
|\| | |
| * | | Merge pull request #98039 from aaronfranke/button-iconThaddeus Crews2024-10-291-14/+14
| |\ \ \ | | | | | | | | | | | | | | | Rename internal Button `*_icon` functions to `*_button_icon` to match exposed methods
| | * | | Rename internal Button icon to button_icon to match exposed methodsAaron Franke2024-10-291-14/+14
| | |/ /
| * | | Merge pull request #97934 from adamscott/give-AThousandShips-a-breakThaddeus Crews2024-10-291-1/+1
| |\ \ \ | | |/ / | |/| | | | | | [Codestyle] Set clang-format `RemoveSemicolon` rule to `true`
| | * | Set clang-format `RemoveSemicolon` rule to `true`Adam Scott2024-10-251-1/+1
| | |/ | | | | | | | | | - Set clang-format `Standard` rule to `c++20`
* | | Merge pull request #818 from Spartan322/fixup/copyright-headersGeorge L. Albany2024-10-2716-32/+32
|\ \ \ | | | | | | | | Fix copyright headers referring to Godot
| * | | Fix copyright headers referring to GodotSpartan3222024-10-2716-32/+32
| | | |
* | | | Merge commit godotengine/godot@61accf060515416da07d913580419fd8c8490f7bSpartan3222024-10-261-5/+78
|\ \ \ \ | |/ / / |/| / / | |/ /
| * / Add Generate LODs, Shadow Mesh and Lightmap UV2 options to OBJ mesh importHugo Locurcio2024-10-251-5/+78
| |/ | | | | | | | | | | | | | | | | This puts OBJ mesh import on parity with 3D scene import. It's now possible to have the same level of optimization as imported 3D scenes while using the OBJ mesh workflow. `optimize_indices_for_cache()` is now always called on import as well, similar to what the 3D scene import already does.
* | Rebrand preambles to RedotDubhghlas McLaughlin2024-10-1116-0/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Rebrand Godot to RedotRandolph W. Aarseth II2024-10-111-2/+2
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add Linux Editor tests workflow matrix Add Windows Editor w/ Mono workflow matrix Add Generate Glue Code job to Windows workflow Add Build GodotSharp job to Windows workflow Add godot compatibility version references Add Godot author info Add Godot version compatibility info Add Godot donor info Add Godot authors and donors to editor_about.cpp 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>
* Fix crash when importing a surface with no UVs after another surface in the ↵clayjohn2024-09-201-14/+20
| | | | same OBJ file that had UVs
* Add "Use Node Type Suffixes" scene import optionAaron Franke2024-09-092-5/+14
|
* Merge pull request #96094 from SaracenOne/add_3d_skeleton_to_advanced_importerRémi Verschelde2024-09-082-1/+69
|\ | | | | | | Add 3D Skeleton Preview to Advanced Importer
| * Various improvements to advanced importer skeleton preview.Saracen2024-09-072-6/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Better size calculation in advanced importer preview. Uses the skeleton mesh to calculate the scene's bounding box. This improves some situations where a mesh instances' scale does not match its visual representation when a skeleton is applied. Advanced importer skeletal preview UX improvement. Make the visibility of the skeletal preview in the advanced importer when selecting an animation dependent on a new dedicated toggle button rather than carrying over whether a skeletal node was or was not previously selected before selecting the animation. Advanced importer skeletal preview fix. Fixes the preview on scaled skeletons in the advanced importer by applying the node's scale to the preview and generating a skin for it.
| * add support for visualizing bones in Advanced Import SettingsJeronimo Schreyer2024-08-272-1/+24
| | | | | | | | | | When an imported model Skeleton3D type node is selected, the bones are drawn using lines or octahedrons to provide a clearer reference to their position. Refactored Skeleton3DGizmoPlugin::redraw now uses a static function to generate bone meshes
* | Merge pull request #96292 from AThousandShips/null_check_ref_fixRémi Verschelde2024-09-031-1/+1
|\ \ | | | | | | | | | Cleanup of raw `nullptr` checks with `Ref`
| * | Cleanup of raw `nullptr` checks with `Ref`A Thousand Ships2024-08-311-1/+1
| | | | | | | | | | | | Using `is_valid/null` over checks with `nullptr` or `ERR_FAIL_NULL` etc.
* | | Enforce correct type for silhouette filter.Saracen2024-08-311-1/+1
|/ /
* | Merge pull request #96308 from SaracenOne/attempt_to_reset_imported_sceneRémi Verschelde2024-08-301-0/+13
|\ \ | | | | | | | | | Attempt applying RESET pose during import.
| * | Attempt applying RESET pose during import.Saracen2024-08-291-0/+13
| | |
* | | Import/export GLTF extras to node->metademolke2024-08-291-1/+9
|/ / | | | | | | | | | | | | | | This is useful for custom tagging of objects with properties (for example in Blender) and having this available in the editor for scripting. - Adds import logic to propagate the parsed GLTF extras all the way to the resulting Node->meta - Adds export logic to save Godot Object meta into GLTF extras - Supports `nodes`, `meshes` and `materials` (in GLTF sense of the words)
* / ResourceImporterScene: Replace animation bool with an import type string enumAaron Franke2024-08-276-52/+73
|/
* Merge pull request #96122 from SaracenOne/fix_post_import_regressionRémi Verschelde2024-08-261-3/+3
|\ | | | | | | Prevent empty post-import script paths throwing errors.
| * Prevent empty post-import script paths throwing errors.Saracen2024-08-261-3/+3
| |
* | Revert "Fix importer preview for models with scaled armatures"Saracen2024-08-261-1/+8
|/ | | | This reverts commit 06709e68657ad6595c8ae8603d17b62ec984539d.
* Merge pull request #96079 from adamscott/relative-import-script-pathRémi Verschelde2024-08-251-0/+4
|\ | | | | | | Add import tab `import_script/path` relative path support
| * Add import tab "import_script/path" relative path supportAdam Scott2024-08-251-0/+4
| |
* | Fix importer preview for models with scaled armatures.Saracen2024-08-251-7/+1
|/
* Optimize base and shadow meshes for cacheArseny Kapoulkine2024-08-161-0/+2
| | | | | | | | | | Previously, vertex cache optimization was ran for the LOD meshes, but was never ran for the base mesh or for the shadow meshes, including shadow LOD chain (shadow LOD chain would sometimes get implicitly optimized for vertex cache as a byproduct of base LOD optimization, but not always). This could significantly affect the rendering performance of geometry heavy scenes, especially for depth or shadow passes where the fragment load is light.
* Merge pull request #95505 from lyuma/import_null_external_animation_libraryRémi Verschelde2024-08-161-2/+7
|\ | | | | | | Avoid `[]` for `external_animation_library` import option