You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I was trying to create a TriangleMesh to use with ConcaveMeshShape and I kept getting a {0,0,0} normal at index 0, which in turn crashed the application with an assertion failure.
My mesh doesn't use all the vertices provided because I have a shared vertex/normal buffer and several sub-meshes with different indices. This caused the TriangleMesh to have a lot of unused vertices.
Because of the i > 0 condition in the for loop, if the first vertex is not used, it is not removed from the mesh, which causes a zero-length normal to be leftover and causes more problems down the line.
I fixed by changing the type of i to int64 and using a i >= 0 condition:
for (int64i=mVertices.size() -1; i >= 0; i--)
Ofc you can also keep the uint32 type and use a i < mVertices.size() condition, but I didn't like to rely on the unsigned number wrapping around.
If you want I can open a PR.
Thanks for the great library!
The text was updated successfully, but these errors were encountered:
Hello, I download latest master just today.
I was trying to create a TriangleMesh to use with ConcaveMeshShape and I kept getting a {0,0,0} normal at index 0, which in turn crashed the application with an assertion failure.
My mesh doesn't use all the vertices provided because I have a shared vertex/normal buffer and several sub-meshes with different indices. This caused the TriangleMesh to have a lot of unused vertices.
The problem is in here: https://github.com/DanielChappuis/reactphysics3d/blob/master/src/collision/TriangleMesh.cpp#L220
Because of the
i > 0
condition in the for loop, if the first vertex is not used, it is not removed from the mesh, which causes a zero-length normal to be leftover and causes more problems down the line.I fixed by changing the type of
i
toint64
and using ai >= 0
condition:Ofc you can also keep the
uint32
type and use ai < mVertices.size()
condition, but I didn't like to rely on the unsigned number wrapping around.If you want I can open a PR.
Thanks for the great library!
The text was updated successfully, but these errors were encountered: