summaryrefslogtreecommitdiffstats
path: root/servers/rendering/renderer_rd/storage_rd
diff options
context:
space:
mode:
authorLyuma <xn.lyuma@gmail.com>2023-05-19 18:47:11 -0700
committerLyuma <xn.lyuma@gmail.com>2023-05-19 19:47:52 -0700
commit791d8001db16c6b3557109f9bcec1bc884655a82 (patch)
tree3001c83a9fc3daea47b1af1e2e9ee3a3a9b9cf45 /servers/rendering/renderer_rd/storage_rd
parent809a98216267f3066b9fec2f02b2042bdc9d3e0d (diff)
downloadredot-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.cpp4
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
}