Bläddra i källkod

Don't try to merge unused bone AABBs in the rendering server

Aaron Franke 3 år sedan
förälder
incheckning
e0d80b37e9

+ 4 - 1
drivers/gles3/storage/mesh_storage.cpp

@@ -255,7 +255,10 @@ void MeshStorage::mesh_add_surface(RID p_mesh, const RS::SurfaceData &p_surface)
 			mesh->bone_aabbs.resize(p_surface.bone_aabbs.size());
 		}
 		for (int i = 0; i < p_surface.bone_aabbs.size(); i++) {
-			mesh->bone_aabbs.write[i].merge_with(p_surface.bone_aabbs[i]);
+			AABB bone = p_surface.bone_aabbs[i];
+			if (!bone.has_no_volume()) {
+				mesh->bone_aabbs.write[i].merge_with(p_surface.bone_aabbs[i]);
+			}
 		}
 		mesh->aabb.merge_with(p_surface.aabb);
 	}

+ 4 - 1
servers/rendering/renderer_rd/storage_rd/mesh_storage.cpp

@@ -416,7 +416,10 @@ void MeshStorage::mesh_add_surface(RID p_mesh, const RS::SurfaceData &p_surface)
 			mesh->bone_aabbs.resize(p_surface.bone_aabbs.size());
 		}
 		for (int i = 0; i < p_surface.bone_aabbs.size(); i++) {
-			mesh->bone_aabbs.write[i].merge_with(p_surface.bone_aabbs[i]);
+			AABB bone = p_surface.bone_aabbs[i];
+			if (!bone.has_no_volume()) {
+				mesh->bone_aabbs.write[i].merge_with(p_surface.bone_aabbs[i]);
+			}
 		}
 		mesh->aabb.merge_with(p_surface.aabb);
 	}