Commit graph

79 commits

Author SHA1 Message Date
Rémi Verschelde
e52cf86661
Merge pull request #94100 from Calinou/obj-import-remove-unused-optimize-mesh
Remove unused Optimize Mesh import option from OBJ mesh import
2024-08-16 10:34:16 +02:00
Rémi Verschelde
e58a7530aa
Merge pull request #93727 from zeux/raycast-opt
Disable normal raycaster for LOD generation by default
2024-08-16 10:34:03 +02:00
Rémi Verschelde
39fc116c5f
Merge pull request #94968 from jsjtxietian/obj-import
Fix obj's name set in wrong order when importing
2024-08-12 18:24:27 +02:00
Rémi Verschelde
9fe4cb6a76
Merge pull request #93284 from rune-scape/missing-import-settings-crash
Avoid crashing when scene import settings are empty
2024-07-31 11:37:34 +02:00
jsjtxietian
eab49cf256 Fix obj's name set in wrong order when importing 2024-07-31 14:50:02 +08:00
Rémi Verschelde
2380ed5e1b
Merge pull request #94058 from Hilderin/fix-scene-project-importation-settings
Fix missing options in Project Import Defaults
2024-07-17 11:42:59 +02:00
Hilderin
169e732518 Fix missing options in Project Import Defaults 2024-07-09 09:33:39 -04:00
Hugo Locurcio
bbf68306c5
Fix error message being printed when importing an OBJ with no surfaces
An OBJ with no surfaces is valid, and typically happens when
you import an OBJ mesh with no associated MTL file.
2024-07-08 23:14:52 +02:00
Hugo Locurcio
5ee4100e4c
Remove unused Optimize Mesh import option from OBJ mesh import
This option was enabled by default, but it did nothing regardless
of whether it was enabled or not.
2024-07-08 22:58:51 +02:00
Arseny Kapoulkine
a13a64eacd Disable normal raycaster for LOD generation by default
Normal raycaster makes LOD generation process >2x slower and often
generates normals that look significantly worse compared to what the
simplifier comes up with by default. This was likely different before
last meshoptimizer upgrade, as the attribute metric was not functioning
properly, but now it looks like it's doing more harm than good.

This change makes it disabled by default but keeps an easy option to
re-enable it per mesh using LOD parameters for now until we get more
confidence and can remove the code outright.

Because the long term plan would be to disable this feature entirely,
the scripting API isn't changed, and it's just off-by-default there with
no way to re-enable.
2024-07-02 10:18:15 -07:00
Bastiaan Olij
ab0c974f28 Fix default collision shape on imported rigidbody 2024-06-24 10:16:58 +10:00
Rémi Verschelde
558054f707
Merge pull request #92640 from AThousandShips/text_value_changed_sname
[Scene] Add `SceneStringNames::text/value_changed`
2024-06-19 10:10:00 +02:00
Rémi Verschelde
0cc321b144
Merge pull request #92639 from AThousandShips/confirmed_sname
[Scene] Add `SceneStringNames::confirmed`
2024-06-19 10:09:56 +02:00
A Thousand Ships
fbb879debd
[Scene] Add SceneStringNames::text/value_changed 2024-06-19 09:44:38 +02:00
A Thousand Ships
ca18a06ecb
[Scene] Add SceneStringNames::confirmed 2024-06-19 09:40:54 +02:00
tamas
e19f0042ca Retain meta data set on imported nodes
During the import process, many importer nodes are replaced with their
engine node counterparts. For example, ImporterMeshInstance3D is
replaced with a MeshInstance3D node. Any meta data set on these
importer nodes, i.e. through a GLTFDocumentExtension, are lost during
the conversion. This change copies over any meta data set on these
importer nodes to their engine counterparts.
2024-06-18 12:39:34 -05:00
rune-scape
b303e73877 avoid crashing when scene import settings are empty 2024-06-17 18:13:09 -07:00
Yuri Rubinsky
29fa291317 Fix incorrect camera transform of animation view in the import window 2024-06-10 16:09:36 +03:00
Rémi Verschelde
9c87e8c7b4
Merge pull request #91953 from AThousandShips/use_normal_sname
Use `CoreStringNames::normal` in more places
2024-05-31 14:16:05 +02:00
A Thousand Ships
cade5b88d9
Use CoreStringNames::normal in more places 2024-05-30 22:57:54 +02:00
A Thousand Ships
755a0efbb6
[Scene] Add SceneStringNames::id_pressed 2024-05-30 22:54:04 +02:00
Rémi Verschelde
782a0261cb
Merge pull request #92196 from lyuma/gltf_anim_library_import_as_bones
Support Import As Skeleton Bones on glTF and AnimationLibrary import
2024-05-23 08:59:13 +02:00
Lyuma
c433754d34 fbx: change import option defaults
ufbx has special logic to handle animation/trimming, and most users expect trimming to be on.
For existing projects, we should upgrade files0 to FBX2glTF to preserve node compatibility.
2024-05-21 07:58:36 -07:00
Lyuma
ef486db569 Support Import As Skeleton Bones on glTF and AnimationLibrary import 2024-05-21 03:19:35 -07:00
Lyuma
25ddb3dd7f rest fixer: Apply orthonormalized scale to anims
Adjust the logic for position and scale animation tracks in the Apply Node Transforms case
To match how we adjust bone pose/rest, use basis.orthonormalized() for parentless bones.
2024-05-16 02:45:42 -07:00
A Thousand Ships
ee79386f7b
[Scene] Add SceneStringNames::pressed 2024-05-14 15:51:28 +02:00
kobewi
413c11357d Use Core/Scene stringnames consistently 2024-05-13 23:41:07 +02:00
Rémi Verschelde
a9a1d0a162
Merge pull request #91619 from AThousandShips/find_improve
Replace `find` with `contains/has` where applicable
2024-05-08 14:35:44 +02:00
A Thousand Ships
b4c6cc7d82
[Core] Add case-insensitive String::containsn 2024-05-08 12:48:01 +02:00
A Thousand Ships
a0dbdcc3ab
Replace find with contains/has where applicable
* Replaces `find(...) != -1` with `contains` for `String`
* Replaces `find(...) == -1` with `!contains` for `String`
* Replaces `find(...) != -1` with `has` for containers
* Replaces `find(...) == -1` with `!has` for containers
2024-05-08 12:37:42 +02:00
yds
ca58715c06 Keep global rest of unmapped bones if no mapped bone descendants 2024-05-07 09:38:39 -03:00
Rémi Verschelde
4eb614568d
Merge pull request #91641 from TokageItLab/silhouette-visibility
Make silhouette fixer option visibility dependent on availability
2024-05-07 13:49:00 +02:00
Silc Lizard (Tokage) Renew
c7cb65f159 Make silhouette fixer option visibility dependent on availability 2024-05-07 09:55:16 +09:00
A Thousand Ships
955d5affa8
Reduce and prevent unnecessary random-access to List
Random-access access to `List` when iterating is `O(n^2)` (`O(n)` when
accessing a single element)

* Removed subscript operator, in favor of a more explicit `get`
* Added conversion from `Iterator` to `ConstIterator`
* Remade existing operations into other solutions when applicable
2024-05-04 16:08:55 +02:00
Rémi Verschelde
8efe58476d
Merge pull request #89461 from Calinou/3d-import-collision-default-trimesh
Default to trimesh for generated collision shapes in Advanced Import Settings
2024-05-04 11:52:11 +02:00
Rémi Verschelde
17d9c52ad9
Merge pull request #90894 from lyuma/animation_step_30
Set animation step from importers. Increase default step from 10 to 30FPS
2024-04-24 09:59:21 +02:00
Rémi Verschelde
61d146c89e
Merge pull request #90748 from aaronfranke/fix-basis-scale-global
Fix incorrect name of internal Basis global scale getter
2024-04-22 12:52:52 +02:00
A Thousand Ships
49ae632b7d
Fix import and saving related crashes
* Don't add empty mesh to result when importing obj files
* Check for null resources in `ResourceSaver`
2024-04-22 12:13:19 +02:00
Lyuma
bb9674c1b1 Set animation step from importers. Increase default step from 10 to 30 FPS. 2024-04-19 03:02:20 -07:00
Jeronimo Schreyer
c3bc768d64
Make Advanced Import lights more like the mesh and material editors
Co-authored-by: Aaron Franke <arnfranke@yahoo.com>
2024-04-16 10:15:25 -07:00
Aaron Franke
e83807ef85
Fix incorrect name of Basis global scale getter 2024-04-16 04:26:52 -07:00
Hugo Locurcio
611d2591d6
Remove unused Make Streamable option from scene import dialog 2024-04-16 00:07:32 +02:00
Rémi Verschelde
d5fd611591
Merge pull request #75787 from Calinou/advanced-import-settings-tweak-environment
Tweak environment in the Advanced Import Settings dialog
2024-04-13 11:30:06 +02:00
jsjtxietian
077e20cd51 Disable mesh compression if vertex position.z is always 0 2024-04-10 11:27:36 +08:00
Hugo Locurcio
72599858fc
Tweak environment in the Advanced Import Settings dialog
Use a gradient sky to improve visibility in shaded areas,
while also helping the user orient themselves. The bottom of the sky
is black, while the top of the sky is white.

This change also makes it so that the Default Clear Color project setting
no longer affects the Advanced Import Settings dialog.
2024-04-09 01:03:49 +02:00
Rémi Verschelde
046816e6b9
Merge pull request #90065 from lyuma/rest_fixer_scaled_position
Fix 2 bugs with scale of position tracks in rest fixer
2024-04-04 14:37:04 +02:00
Rémi Verschelde
96a75d99c4
Merge pull request #90064 from lyuma/remove_immutable_post
Apply "Remove Immutable Tracks" after post-import.
2024-04-04 14:37:01 +02:00
Lyuma
00cf862b54 Fix 2 bugs with scale of position tracks in rest fixer
Both bugs were related to how position animation tracks were adjusted in rest fixer.
First bug: motion scale is applied before subtracting the origin when applying bone roll
Second bug: armature scale was lost when converting basis to quaternion, leading an unscaled position offset to be added to the scaled origin.
2024-03-30 23:54:50 -07:00
Lyuma
b0ce274a52 Apply "Remove Immutable Tracks" after post-import.
Reimplements "Remove Immutable" by comparing to the skeleton rest.
It is necessary to delay removing animation tracks until after the correct rest pose is calculated in rest-fixer.
Preserves the original implementation in the GLTFDocument / FBXDocument API for compatibility.
2024-03-30 23:45:22 -07:00
AlexOtsuka
4d3319eceb Fix Set Animation Save Paths breaking on Windows 2024-03-31 00:46:25 +01:00