Resized MeshPart normals are incorrect

  • For my platformer, I’m raycasting downwards to get a cross product in order to draw a shadow beneath the player (for precision when platforming). I noticed that when applied to MeshParts, the result is that it’s rotated significantly incorrectly.

How it normally looks (notice it’s rotated to match the slope):
RobloxStudioBeta_2018-01-27_15-04-13

How it looks on a MeshPart:
RobloxStudioBeta_2018-01-27_15-03-53

  • Bug only happens on MeshParts. No specific code that differentiates meshparts from regular parts is in my game, which makes me believe this is a Roblox problem.

I did another test, where I uploaded a wedge mesh and put it next to a regular WedgePart, then set the Humanoid’s MaxSlopeAngle to 45. Even though these two wedges are exactly the same geometry-wise, the MeshPart wedge can not be climbed, while the WedgePart can.

Yes, I’ve checked the decomposition geometry, and it matches the meshes exactly.

Check my next post for the possible culprit.

7 Likes

Same thing happens in my game… Also using cross product and rays.
Examples:
image

image

Hope this is resolved soon.

1 Like

Found out what the issue possibly is (thanks to @gkku )

Resizing MeshParts outside of a uniform scale retains the normals of the original scale rather than the new scale. Check out the wedge mesh I uploaded, and to its right, the same mesh resized. The normal returned is the same on both of them.

Hope this helps this get fixed soon!

10 Likes

Would probably be useful to show the physical decomposition of the mesh.

I’m wondering, does setting the CollisionFidelity of the part from Default to Hull fix the problem?

Nope. This affects any meshpart that has been resized in a non-uniform scale.

1 Like

@Polyhex - this has been fixed on production. Can you please verify with your test place?

Thanks!

1 Like

Yep, it’s fixed! Thank you!!