SurfaceGuis Becoming Transparent

I was bored recently, so I decided to make grass using shell texturing. I have it working decently right now, but there’s one problem. I’m using EditableImages and SurfaceGuis for each layer of the grass and when you look up above a certain angle, a bunch of them disappear.

In case you don’t know how shell texturing works, its pretty much just a bunch of layers with different textures on them.

When looking below the angle (Works like it should)

When looking above the angle


1 Like

This is due to backface culling, an rendering issue with most 3D engines.

image

Basically what happens is when one side or part of a side exists but the back end of it, doesn’t. in your case, only the top part of the texture exists and not on the bottom.
A way to fix this would be duplicating on both sides which is kinda weird. There’s also adding a “Double-Sided” feature on mesh objects, but you aren’t using a mesh object, so add SurfaceGui to both top and bottom of the part/object, and boom.

image image image image image image

banner

A potential solution could be flipping the surface gui from the top to the bottom depending on camera angle, Or rendering twice (for top and bottom surface)

This doesn’t fix the issue, because it happens even when the camera isn’t below the layers. In both screenshots the camera is above all of them.

To get the shell texturing optical illusion it is necessary to have access to programmable shaders. I don’t know if it is possible to achieve the same with EditableImages. Maybe use SurfaceGui billboard offset to align with the camera, but I don’t know how.