Fix mesh collision proxy setup for meshes using packed positions format

#3791
This commit is contained in:
Wojtek Figat
2026-02-03 13:18:02 +01:00
parent b1f85b7462
commit 1535f95cf1
5 changed files with 49 additions and 23 deletions

View File

@@ -470,10 +470,11 @@ bool MeshBase::Init(uint32 vertices, uint32 triangles, const Array<const void*,
// Init collision proxy
#if MODEL_USE_PRECISE_MESH_INTERSECTS
VertexElement positionsElement = vbLayout[0]->FindElement(VertexElement::Types::Position);
if (use16BitIndexBuffer)
_collisionProxy.Init<uint16>(vertices, triangles, (const Float3*)vbData[0], (const uint16*)ibData);
_collisionProxy.Init<uint16>(vertices, triangles, (const Float3*)vbData[0], (const uint16*)ibData, vertexBuffer0->GetStride(), positionsElement.Format);
else
_collisionProxy.Init<uint32>(vertices, triangles, (const Float3*)vbData[0], (const uint32*)ibData);
_collisionProxy.Init<uint32>(vertices, triangles, (const Float3*)vbData[0], (const uint32*)ibData, vertexBuffer0->GetStride(), positionsElement.Format);
#endif
// Free old buffers