1
0
mirror of https://github.com/godotengine/godot.git synced 2026-01-03 19:11:41 +00:00
Commit Graph

159 Commits

Author SHA1 Message Date
Thaddeus Crews
5dc375b2fc Merge pull request #105014 from aaronfranke/no-type-suffixes
Allow completely opting out of name suffix magic in 3D scene import
2025-04-24 17:18:50 -05:00
Thaddeus Crews
87f986ae67 Merge pull request #97837 from basicer/fix-update-timer
SceneImportSettings update_timer should be a oneshot.
2025-04-15 12:28:39 -05:00
Thaddeus Crews
d236bd8633 Merge pull request #99543 from KoBeWi/using_rng_to_destroy_rng
Add `create_id_for_path()` to ResourceUID
2025-04-11 09:51:12 -05:00
kobewi
ff1f040893 Add create_id_for_path() to ResourceUID 2025-04-11 00:53:34 +02:00
Thaddeus Crews
94282d88f9 Core: Use Math namespace for constants 2025-04-10 16:29:30 -05:00
A Thousand Ships
889410dcda Add String::replace_char(s) methods for performance and convenience 2025-04-10 13:08:45 +02:00
Aaron Franke
e96828673f Allow completely opting out of name suffix magic in 3D scene import 2025-04-10 01:11:54 -07:00
Thaddeus Crews
f7b72704db Merge pull request #104804 from etherealxx/fix-advanced-import-inspector-missing-tooltip
Fix missing tooltips on "Advanced Import Settings for Scene" window
2025-04-09 18:12:00 -05:00
Thaddeus Crews
7a6c3b309f Merge pull request #105130 from bruvzg/uri_fix_plus
Add uri_file_decode to handle + in file names.
2025-04-09 18:11:56 -05:00
Pāvels Nadtočajevs
302fa831cc Initial editor accessibility. 2025-04-08 20:25:48 +03:00
Pāvels Nadtočajevs
9abe2e5294 Add uri_file_decode to handle + in file names. 2025-04-07 23:49:17 +03:00
Yufeng Ying
8ae16699c5 Do not use Dictionary::keys() for Dictionary iteration. 2025-04-05 18:42:13 +08:00
Yufeng Ying
4f4031a675 Replace size() == 0 with is_empty(). 2025-04-02 19:18:43 +08:00
Michael Alexsander
556933306a Allow to compile templates without navigation features 2025-04-01 11:53:35 -03:00
Etherealxx
7e00ea510e Fix missing tooltips on "Advanced Import Settings for Scene" window
In Godot, it's possible to customize how the engine imports 3D resource,
by either clicking "Advanced..." button on Import Dock or double
clicking the resource on FileSystem Dock. Doing so will open the
Advanced Import Settings window, where user could inspect the 3D resource
in a viewport, with the scene tree on the left and an inspector panel
akin to the Import dock on the left. It contains the same settings from
the Import dock, with some advanced additions.

This commit fixes a regression since 4.2 where settings in the inspector
panel on the right part of the window does not contain the same tooltips
as its Import Dock counterpart (which were retrieved from the XML class
reference).
2025-04-01 10:29:40 +07:00
Yyf2333
22b5ec17fb Using iterator pattern instead of List::Element *.
Co-authored-by: Adam Scott <ascott.ca@gmail.com>
2025-03-28 13:29:15 +08:00
Lyuma
8997c999e9 Scene import: extract UID paths and store fallback
When extracting meshes, materials and animations, always store the uid:// path as well as a res:// fallback.
When validating import settings, load the fallback path if the uid:// path fails to load.
Update save_to_file/fallback_path every import to keep the file path in sync with the uid.
Use UID hashing for meshes and animations.
2025-03-19 11:50:39 +01:00
Thaddeus Crews
1f6426066e Merge pull request #98768 from Repiteo/core/constexpr-math-operators
Core: Add `constexpr` constructors/operators to math structs
2025-03-17 16:03:20 -05:00
kobewi
6f25babd6b Remove empty constructors and destructors from editor/ 2025-03-17 21:20:02 +01:00
Thaddeus Crews
ea62170dac Core: Add constexpr constructors/operators to math structs
• Begin integrating `constexpr` on math tests; use `static_assert` where appropriate
2025-03-17 12:15:31 -05:00
A Thousand Ships
466590d0ec Use get_slicec instead of get_slice for single character splitters 2025-03-08 20:36:37 +01:00
Thaddeus Crews
324512e11c Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
A Thousand Ships
5113022dfe Clean up some uses of String::substr
Cases where the end position is either equvalent to the default or past
the end of the string.
2025-03-07 14:50:38 +01:00
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