CollisionFidelity.Full on MeshParts

I’d love to be able to set CollisionFidelity.Full so every angle is respected so that I can do large chunks of terrain using meshes. I’m not sure how performance intense a 256x(50?)x256 textured mesh would be but I see tons of games do something like this.

9 Likes

what if there was a Collision fidelity LOD system 0.0

We could make one if they let us script CollisionFidelity. Interesting idea for sure.

2 Likes

That’s not really what I’m looking to use it for, though. I want 100% exactly collisions for large undetailed meshes that simply act as the ground or some massive blunt object that’s similar.

1 Like

I know, but I wanted to illustrate that doing this would be unhealthy on the engine.
I can see why you’d want to do something like that, and I get it.

But why does it need to be a single mesh? Why can’t you just divide it up into normal components and build it from there? A 100% accurate mesh collision isn’t very healthy on the physics engine, and it would probably lead to optimization problems on your end.

1 Like

It doesn’t sound bad to me. It’d be like a 200 triangle mesh that’s 256xYx256 in size with some ground texture.

Maybe admin would know of its really bad but I don’t see the issue.

Triangle collision isn’t that uncommon, no. I’d be worried about enabling it in the context of ROBLOX though… too easy to shoot yourself in the foot.

4 Likes

Even though I totally get why this isnt a thing, I wish it was. :frowning: My in-development snowboard game needs a really big and smooth map, and even though I love smooth terrain, the surface normals are sometimes wonky & the loading time is insane. Welp, just my two cents. Im allowed to dream right :anguished:

3 Likes

This would be great. I find the current hit detection on meshes/unions to be completely inaccurate most of the time, turning box+box hole into cylinder+hole hitboxes.

May i ask how many tris a mesh can have before the collision fidelity becomes lower quality than the mesh itself?

It’s not really a one-to-one relationship. Hull and Default both do convex hull decomposition; that is, trying to find the best fitting hull shape for the given geometry. Default does this by splitting it into a voxel grid and generating a hull for each space, more or less; this is why you can have concave shapes at all with it. Hull will take the entire mesh and make a single hull out of it.

A convex hull is a collection of points that form the vertices of a convex 3D shape. If you trace a line segment through the interior of the hull, the line will always remain within the hull as long as both endpoints remain in the hull. This means you can build a convex hull out of simplices, by the way. A simplex is a line in 1D, a triangle in 2D, and a tetrahedron in 3D.

The reason we use hulls is because some very intelligent mathematicians found you could detect the minimum distance between two hulls in 3D space by testing the distance from the Minkowski sum of the hulls to the origin (0,0,0). This is known as the Gilbert-Johnson-Keerthi distance algorithm.

This is a lot faster than checking each triangle with each other triangle, even if you accelerate it by eliminating a large fraction of the possible colliding pairs.

4 Likes

CommentPhotos.com_1407345336.jpg

2 Likes

:rainbow: the more you know

1 Like

I…thanks?

1 Like