I’m suggesting a material that advanced developers can use to optimize in-game terrain, and use for marking unseen parts of terrain. In studio it might appear as a neon orange/red pattern, similar to the CrackedLava material, but in-game it would either not create triangles at all, or appear pitch-black; Studio might also have a property that’s somewhat similar to StarterGui.ShowDevelopmentGui, which could be used to toggle between studio/live-game rendering modes while in studio.
Developers could simply paint unseen terrain with this material.
How it might appear in studio:
(pretend this has sharp edges and isn’t photoshopped lava )
And now it can be more easily optimized by the engine.
How it might appear in game:
The performance boost could be much more significant with large bodies of water:
Aside from optimizing, it could be used as a marker in games with destructible maps to prevent people from cutting through the terrain’s underside. This could be almost like “Bedrock” in minecraft, although it would require some extra lua to prevent terrain-destroying explosions from tunneling into the void:
One caveat might be that adding another material to existing terrain might cause it to use slightly more memory, but terrain compression is really well done and the effect should be negligible.
The name for this material could simply be Enum.Material.None, or perhaps something that better-describes its behavior.
This could be implemented alongside other features in this post: NoRender Surface Type
Partixel’s post also suggests an invisible “NoRender” SurfaceType for BaseParts, which would take advantage of an aging feature (surface types), and enable us to both optimize our games, create parts that seem to have a different color/material on each face, and prevent z-fighting.
Before I implemented LOD for the houses in my game, their 2-material roofs/walls had z-fighting between them, and still do when I take full-LOD screenshots.
I’d also like to be able to do things like this without meshes:
And without worrying about wasteful internal geometry:
The engine might already try to do some of these optimizations for us automatically, but especially considering the performance-limitations of mobile, there will always be cases where it’s easier for advanced developers to provide this information.