1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-23 15:16:17 +00:00
Commit Graph

135 Commits

Author SHA1 Message Date
Rémi Verschelde
622344b47d Merge pull request #99810 from hakro/toggle_skeleton
Style skeleton button on import screen
2025-02-12 11:20:56 +01:00
kobewi
06b2c9f23f Fix save path validation for imported scenes 2025-01-30 23:27:36 +01:00
Rémi Verschelde
21fcb56547 Remove unused EditorSceneFormatImporter::_get_import_flags
This has never been used since Godot was open sourced.

Import flags are used but directly through `_import_scene`.
2025-01-14 16:57:06 +01:00
Saracen
048788f07d Fix scrolling for advanced importer controls. 2025-01-14 11:36:48 +01:00
Lyuma
e4de1f4583 Make EditorSceneFormatImporter::_get_import_options match EditorScenePostImportPlugin API 2025-01-13 21:45:53 +01:00
Aarni Koskela
f134769506 Fix various typos
* Add TODO notes for typos that should be fixed for 5.0

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2025-01-08 14:47:42 +02:00
Rémi Verschelde
a7d84fa022 Merge pull request #100792 from lyuma/post_import_plugin_subresources
Allow post-import plugins to modify `_subresources`
2025-01-08 00:21:03 +01:00
Thaddeus Crews
d8b1a5aac2 Merge pull request #92235 from paddy-exe/advanced-import-macbook-mouse-magnify
Add MagnifyGesture to Advanced Import dialog zooming
2024-12-30 08:58:50 -06:00
Patrick Exner
f1b3f17ae3 Add MagnifyGesture to Advanced Import dialog zooming 2024-12-26 23:53:34 +01:00
Lyuma
637fe3ccdd Allow post-import plugins to modify _subresources
The old code fetched some data before the `EditorScenePostImportPlugin._pre_process` callback.
While the callback could modify existing keys, this prevented users from adding new data on a fresh import.

By fetching the keys after pre_process, this means users can consistently modify import options for nodes, meshes, materials and animations in a post-import plugin.
2024-12-24 07:34:24 -08:00
A Thousand Ships
a1846b27ea Improve use of Ref.is_null/valid
Use `is_null` over `!is_valid` and vice versa.
2024-12-23 16:35:02 -05:00
Yufeng Ying
f241c1fda0 Remove unused header in editor.
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2024-12-24 00:40:38 +08:00
Haoyu Qiu
bf4e5cca3f Make editor's shortcut names translated on-site 2024-12-18 13:00:30 +08:00
Chaosus
9a8d6628de [Scene] Add SceneStringName::hover 2024-12-11 11:11:25 +03:00
Lukas Tenbrink
b5c31ebb41 Add contains_char() for single-character 'contains' calls. 2024-12-06 20:23:35 +01:00
hakro
8f5b4cd7fe Style skeleton button on import screen 2024-11-29 00:47:33 +01:00
Thaddeus Crews
1c78b09815 Merge pull request #96544 from SaracenOne/import_thumbnails
Generate thumbnails on imported scenes.
2024-11-27 10:47:02 -06:00
Thaddeus Crews
04786f0ee8 Merge pull request #97824 from TokageItLab/retarget-modifier
Add RetargetModifier3D for realtime retarget to keep original rest
2024-11-26 13:04:47 -06:00
Saracen
74611a74d1 Generate editor thumbnails on imported scenes. 2024-11-24 10:23:56 -08:00
Silc Lizard (Tokage) Renew
f5b49af99f Add RetargetModifier3D for realtime retarget to keep original rest 2024-11-18 22:44:55 +09:00
Thaddeus Crews
2ed6d12652 Merge pull request #97363 from reduz/deterministic-gen-suberesources-id
Allow passing UID to importer
2024-11-11 14:18:30 -06:00
Juan
fe34c45d2a Allow passing UID to importer
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.
2024-11-11 15:22:42 +01:00
Thaddeus Crews
925b690c98 Core: Integrate Ref::instantiate where possible 2024-11-10 12:41:26 -06:00
Thaddeus Crews
3a7efc9edf Merge pull request #98874 from aaronfranke/gltf-preserve-visibility
GLTF: Preserve node visibility on import
2024-11-07 12:36:35 -06:00
Thaddeus Crews
671d6e3230 Merge pull request #98150 from hunterloftis/fix-default-import-threaded
Fix freeze on non-thread-safe custom importers
2024-11-07 12:36:20 -06:00
Aaron Franke
924732772b GLTF: Preserve node visibility on import 2024-11-05 19:06:08 -08:00
Arseny Kapoulkine
260287b3a1 Rewrite index optimization code for maximum efficiency
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.
2024-11-04 06:58:06 -08:00
Clay John
7187c251da Merge pull request #98620 from zeux/lodgen-cleanup
LOD: Remove "Raycast Normals" and associated "Normal Split Angle" settings
2024-10-30 17:13:57 -07:00
Thaddeus Crews
696ca9db3c Merge pull request #98039 from aaronfranke/button-icon
Rename internal Button `*_icon` functions to `*_button_icon` to match exposed methods
2024-10-29 19:25:59 -05:00
Thaddeus Crews
b7a0971ad2 Merge pull request #97934 from adamscott/give-AThousandShips-a-break
[Codestyle] Set clang-format `RemoveSemicolon` rule to `true`
2024-10-29 19:25:36 -05:00
Aaron Franke
562c666e3d Rename internal Button icon to button_icon to match exposed methods 2024-10-29 16:23:03 -07:00
Arseny Kapoulkine
494fe2fe21 LOD: Remove "Raycast Normals" and associated "Normal Split Angle" settings
"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.
2024-10-28 10:14:04 -07:00
Adam Scott
0d350e7108 Set clang-format RemoveSemicolon rule to true
- Set clang-format `Standard` rule to `c++20`
2024-10-25 13:49:43 -04:00
Hugo Locurcio
b8ee61f45d Add Generate LODs, Shadow Mesh and Lightmap UV2 options to OBJ mesh import
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.
2024-10-25 02:48:42 +02:00
Hunter Loftis
bbb8c1703b Fix freeze on non-thread-safe custom importers 2024-10-15 11:46:14 -04:00
clayjohn
07546006e8 Fix crash when importing a surface with no UVs after another surface in the same OBJ file that had UVs 2024-09-20 19:29:11 -07:00
Aaron Franke
b0f99099b4 Add "Use Node Type Suffixes" scene import option 2024-09-09 01:12:14 -07:00
Rémi Verschelde
82688e9e2e Merge pull request #96094 from SaracenOne/add_3d_skeleton_to_advanced_importer
Add 3D Skeleton Preview to Advanced Importer
2024-09-08 23:21:28 +02:00
Saracen
6532eff7a7 Various improvements to advanced importer skeleton preview.
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.
2024-09-07 02:09:47 +01:00
Rémi Verschelde
d15de6f264 Merge pull request #96292 from AThousandShips/null_check_ref_fix
Cleanup of raw `nullptr` checks with `Ref`
2024-09-03 16:13:55 +02:00
Saracen
107f2aea88 Enforce correct type for silhouette filter. 2024-08-31 20:35:09 +01:00
A Thousand Ships
194bdde947 Cleanup of raw nullptr checks with Ref
Using `is_valid/null` over checks with `nullptr` or `ERR_FAIL_NULL` etc.
2024-08-31 15:01:09 +02:00
Rémi Verschelde
7f86ca057a Merge pull request #96308 from SaracenOne/attempt_to_reset_imported_scene
Attempt applying RESET pose during import.
2024-08-30 09:59:59 +02:00
Saracen
31253257b3 Attempt applying RESET pose during import. 2024-08-29 22:58:26 +01:00
demolke
c409e6d722 Import/export GLTF extras to node->meta
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)
2024-08-29 19:17:04 +02:00
Aaron Franke
9dd71c6414 ResourceImporterScene: Replace animation bool with an import type string enum 2024-08-27 14:58:18 -07:00
Jeronimo Schreyer
030fd71da2 add support for visualizing bones in Advanced Import Settings
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
2024-08-27 02:10:16 +01:00
Rémi Verschelde
7e8fffa008 Merge pull request #96122 from SaracenOne/fix_post_import_regression
Prevent empty post-import script paths throwing errors.
2024-08-26 22:46:14 +02:00
Saracen
2453911013 Revert "Fix importer preview for models with scaled armatures"
This reverts commit 06709e6865.
2024-08-26 22:25:25 +02:00
Saracen
064f471103 Prevent empty post-import script paths throwing errors. 2024-08-26 16:42:39 +01:00