Maximum amount of surface appearances in general?

I looked at other sources but can’t find an answer to this.
I parent surface appearances to editable meshes for the transparency map.

However, the game doesn’t render more than ten, or if the mesh is large enough.

NOT using surface appearance (just texture) for reference

Using surface appearance normally:

Just using one giant mesh:

Is there a way to make it not do this? What am I doing incorrectly?

Each of the chunks is one mesh and as distance increases from the camera, the size of the mesh increases while the quality stays the same as a LOD does. Besides the trees

This rendering issue in Roblox is a known behavior tied to how the engine handles SurfaceAppearance objects. While there isn’t a hard “10” limit, there are strict internal quotas and distance-based culling that cause exactly what you’re seeing in image 2.

  • Roblox generally limits the scene to about 100 unique SurfaceAppearance maps.
  • If a mesh is too far away or takes up too much memory, the engine “unloads” the high-quality maps to protect performance.

My suggestions:

  • In your SurfaceAppearance properties, change TransparencyMode to AlphaTest. It is much more stable at long distances and less likely to be culled than “Overlay”.
  • For your distant LOD chunks, don’t use SurfaceAppearance at all. Use the standard Texture property, which doesn’t have the same strict rendering limits.
  • Ensure as many chunks as possible share the exact same SurfaceAppearance ID. Using one ID for 100 chunks only counts as “one” toward the internal budget.

if you’re just going to copy AI don’t reply

2 Likes

Would it be worth trying the new alpha mode studio beta for material variants? I personally havent seen a limit for surface appearances but it might be more stable

It didn’t UV map when I tried it and worked like a normal material does which wasn’t what i wanted
It did render everything though

if you do each tree as an individual mesh it might work with materials if you figure out the right image resolution ratio

So you think every response is AI now if it is well-structured? Also separating trees into individual meshes is terrible for optimization.

1 - Its already on alpha because you can clearly see transparency in the surfaceappearances in the image.
2 - textures are worse for optimization.
3 - Where are chunks coming from???

oh lol I was on your side in the argument

i dont think materials will work because they have a fixed texture size and the trees can be any size

Ah then in that case yeah its gonna be a bit of a pain. Only thing I can suggest is checking your streaming settings in workspace properties.

Streaming is off, and it’s also a client-side script

Have you checked your client graphic settings? That could also be a issue

It still becomes invisible on max bar

you can trigger the alpha channel of meshparts by setting transparency to 0.011 , then you can forgo any surface appearance and use the textureID or materialvariant with alphamode transparency

I just keep my notes formatted. not AI

@Nottafish If you’re seeing that “~10 mesh” style culling with SurfaceAppearance on EditableMeshes, try setting MeshPart.Transparency to something tiny like 0.01–0.02 .
It can force a different transparency sorting path, which sometimes stops distant chunks from vanishing.

Not guaranteed, but it’s helped in a few large scenes. And it’s also worth testing the newer MaterialVariant alpha modes, they seem more stable for large coverage than SurfaceAppearance, but you’ll probably need to adjust UV tiling.

blud you are not slick you read like a chat bot

I’m not slick, I just keep a formatted response because typing this out for the 50th time is a drag. If I was a bot I’d be giving you a generic list of ‘best practices’ instead of giving a specific transparency hack.

It works for the trees but the floor is sorted in front of them


I guess i could seperate the floor from the trees but I don’t want to run into editable mesh limit