diff options
| author | Lyuma <xn.lyuma@gmail.com> | 2023-05-19 18:47:11 -0700 |
|---|---|---|
| committer | Lyuma <xn.lyuma@gmail.com> | 2023-05-19 19:47:52 -0700 |
| commit | 791d8001db16c6b3557109f9bcec1bc884655a82 (patch) | |
| tree | 3001c83a9fc3daea47b1af1e2e9ee3a3a9b9cf45 /servers/rendering/renderer_rd/storage_rd | |
| parent | 809a98216267f3066b9fec2f02b2042bdc9d3e0d (diff) | |
| download | redot-engine-791d8001db16c6b3557109f9bcec1bc884655a82.tar.gz | |
Fix AABB for unused bones
Fixes bug where bounding box of 1 unit was used in some skinned models and had wrong LODs.
(this could become very large if the mesh is scaled, such as FBX conversions)
Also fixes a mistake in calcualting bone index.
Diffstat (limited to 'servers/rendering/renderer_rd/storage_rd')
| -rw-r--r-- | servers/rendering/renderer_rd/storage_rd/mesh_storage.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/servers/rendering/renderer_rd/storage_rd/mesh_storage.cpp b/servers/rendering/renderer_rd/storage_rd/mesh_storage.cpp index b91e73c885..d3c22e4826 100644 --- a/servers/rendering/renderer_rd/storage_rd/mesh_storage.cpp +++ b/servers/rendering/renderer_rd/storage_rd/mesh_storage.cpp @@ -627,7 +627,7 @@ AABB MeshStorage::mesh_get_aabb(RID p_mesh, RID p_skeleton) { if (skeleton->use_2d) { for (int j = 0; j < bs; j++) { - if (skbones[0].size == Vector3()) { + if (skbones[j].size == Vector3(-1, -1, -1)) { continue; //bone is unused } @@ -654,7 +654,7 @@ AABB MeshStorage::mesh_get_aabb(RID p_mesh, RID p_skeleton) { } } else { for (int j = 0; j < bs; j++) { - if (skbones[0].size == Vector3()) { + if (skbones[j].size == Vector3(-1, -1, -1)) { continue; //bone is unused } |
