diff --git a/src/common/rendering/hwrenderer/data/hw_collision.cpp b/src/common/rendering/hwrenderer/data/hw_collision.cpp index 9f29dbabb..4a2589fdf 100644 --- a/src/common/rendering/hwrenderer/data/hw_collision.cpp +++ b/src/common/rendering/hwrenderer/data/hw_collision.cpp @@ -561,6 +561,14 @@ int CPUBottomLevelAccelStruct::Subdivide(int *triangles, int num_triangles, cons } median /= (float)num_triangles; + // For numerical stability + min.X -= 0.1f; + min.Y -= 0.1f; + min.Z -= 0.1f; + max.X += 0.1f; + max.Y += 0.1f; + max.Z += 0.1f; + if (num_triangles == 1) // Leaf node { nodes.push_back(Node(min, max, triangles[0] * 3));