Allow Normals to be Flipped on BaseParts

Currently, a MeshPart can be the original mesh, DoubleSided, and skinned(with Bones). But there isn’t an option to flip normals on meshes. I’m not talking about the option to flip normals when importing a mesh, I’m talking about being able to flip the normals via Properties.

There are many applications for this feature:

1. Making a Part/Mesh Outline

As seen on UGC items, such as the Cartoony UGC genre, the outlines shown here are visible from any angle, because their normals are flipped:
image

2. Disortion

You are also able to suddenly distort the reality of the game, good for horror games, or maybe things meant to confuse the player. You might use this in obbys to have a trippy level, alternating from original normals to flipped normals.

3. One-Sided Flippable Walls

You can achieve this by having a flat layer of polygons, curved or not curved, then flip the normals so that one side can see through and another cannot. You can still do this right no, but for curved walls, you would have to create a totally new wall because flipping the wall does switch the sides that can see, but the curve will be on the opposite side.

If Roblox can add this feature to meshes, then there will be many new creations featuring some of these ideas(and maybe more that I haven’t thought of).

11 Likes

You can already do most of what you’re asking for by feeding a CFrame with inverted handedness (by flipping one of its vectors, here the X vector is flipped):

Instance.new("Part", workspace).CFrame = CFrame.new(0,10,0,-1,0,0,0,1,0,0,0,1)

Or alternatively, make it a mesh with inverted normals, or use SpecialMesh to have an inverted existing mesh.

25 Likes

I have never known that that was possible, and I has no idea it even existed. It seems like a hacky way to do this, and there are so many features that was added(that was possible to make before it was added). A good example of this would be TweenService and ProximityPrompts.

After experimenting this suggestion my brain just doesn’t work anymore, how did you find this out?

1 Like

This is just computer graphics theory. The position and rotation matrix are used together with vertex data to determine the depth and normal at each pixel. You can also cause skews and shears in the object by setting the components in a non-orthonormal manner.

Try reading through this to get a better understanding of how transformations are performed to get to a rasterized object: Graphics pipeline - Wikipedia (couldn’t really find a simple article for novice level, hope this helps)

10 Likes