Primitive MeshPart hull has broken physics collision behavior

Reproduction Steps

Here’s the example mesh.

My project’s triangle terrain system uses special MeshParts in place of Part and WedgeParts to optimize the triangle count. I achieved a “1-tri” mesh with the correct bounding box by resizing one of the triangles on the above mesh. I copied the physics data over manually and it works as expected.


This isn’t the source of the problem. Both MeshParts behave exactly the same after this, and share the problem.

A place file is attached privately.

Expected Behavior

The collisions should be the identical for the WedgePart and MeshPart hull in the shape of a wedge.

Actual Behavior

I have a MeshPart with hull collisions that should be identical to a WedgePart, but collisions are broken compared to an actual WedgePart.

Decomposition looks normal

I noticed my custom characters would flip sideways when the part collides with the ground, but only with specific MeshParts. This happens more often for small characters because the the rays are short and less likely to stop the assembly in time.

Here’s a comparison between a WedgePart and the MeshPart wedge


Workaround

I could make my terrain system use WedgeParts instead, but I prefer to be able to control the material orientation. It’s also easier to visually detect flaws (backward faces) with the terrain mesh when only one side is visible. The 1-triangle MeshParts also prevent edges from clipping through or z-fighting when triangles have sharp <=90 degree edges. I assume it improves rendering performance as well when there are tens of thousands of them.

Issue Area: Engine
Issue Type: Other
Impact: Moderate
Frequency: Constantly
A private message is associated with this bug report

7 Likes

Thanks for the report! We’ll investigate.

1 Like

Could you please provide a repro place with the raycasts? Thanks!