MeshPart DoubleSided

Others’ replies aside, you’re better off learning how to do it properly and always try to avoid inverted normals if possible.

If you don’t how to tell which direction a normal is facing, you can enable “Display Normals.” Whatever side got the little line coming out of it is the exterior face.

If you have a lot of geometry, you can also run “Recalculate Normals” that will automatically flip them for you.

7 Likes

You could also just enable Backface Culling which would render wrong facing normals invisible just as it would in studio.

3 Likes

Or Face Orientation overlay toggle:

I use it most of the times, as it has the most obvious way of telling “hey, this face is facing the wrong way”

1 Like

Yeah for sure, if you’re hunting for wrong facing normals this is probably how I would do it too, but just generally having backface culling turned on is great since you would constantly see what the final result will look like in-studio (and you wouldn’t need to see oddly colored faces constantly :stuck_out_tongue:) , since if you can’t see anything wrong in blender then you probably wouldn’t in studio either.

2 Likes

YES! I love this. I’ve recently been working with meshes this will be a big help!

Praying this is better on performance than duplicating everything and flipping normals, I’d love to start using this but I’m not sure how much better it is than just flipping faces

4 Likes

I am not sure what you mean by duplicating and flipping (withing studio??), however it is better to just fix up the mesh within blender and import it to studio rather than relying on this feature.

It is an old techique to avoid disabling backface culling in shaders. You basically have 2x more faces, one for each side.

This also poses one major question. In many rendering engines, duplicating faces and inverting the duplicates’ normals results a much less costly solution to this problem. I wonder how Roblox implemented it as this is hard to benchmark ourselves without creating 2 groups of a lot of meshes, one with double the faces, the other with backface culling disabled.

4 Likes

Currently, double sided is done via setting render state and not doubling the triangle internally (so number of triangle stays the same). There will be small perf hit on gpu but there shouldn’t be any perf hit on cpu. (final impact on the game will depend on what is the bottleneck). I’d be interested to check if you have a game that can see the perf impact of this.

The best thing that can be done is to set DoubleSided only for MeshParts that really need this, otherwise just keep it disabled.

16 Likes

Finally, this feature is added! Going back into Blender and spending more time fixing my meshes is time consuming, enabling this will be extremely useful. Thank you, Roblox! ((:

1 Like

I have plenty of nature showcases demonstrating heavy triangle counts (hundreds of millions)
I am actively working to get everything transitioned over! What I have found so far is a semi-decent improvement in FPS count

2 Likes

You can try Transparency mode in SurfaceAppearance.

1 Like

Oh yeah, definitely wouldn’t abuse this in production level. Just wanted to make sure anyway just in case this should only be used sparingly. Thanks!

3 Likes

As a note to beginners, when creating a mesh which is composed of both flat planes and voluminous parts, it is better to duplicate those flat surfaces and invert their normals. Using this feature will disable backface culling for all faces, even those which don’t require it.

This isn’t much of an issue for low-poly meshes, but complex models will definitelly have a performance impact.

I took a plane with a single side, turned it over and enabled the DoubleSides feature:

What happens is there seems to be some weird shadow rendering on the inverted side of the plane. When looking at them from a low angle and with studio graphics level set below 5.

4 Likes

You should consider occlusion culling. A system which removes models that you cannot see or are too far to see anyway. This is a system we use in Kingdom Life 2

6 Likes

i think this is the reason why:
When you invert the Size of a Mesh, it will show it’s inside, so the shadow inside of it is visible

1 Like

Nice to have, but somehow lags more on maps than just having double the polygons and not using the feature.

Ok, now i get it, you can see the other side of the Mesh if the Texture is PNG, i really love it! incredible update, it really makes Trees more realistic and beautiful, my only complain is:

If you put a lot of trees with DoubleSided on, it will Lag your game, I Don’t know if it’s only on my computer that it happens, but it does.

This can be accessed in a live game with a Script right?

Just making sure it’s not like Lightning.Technology or MeshPart.MeshId

2 Likes