1. What do you want to achieve?
I want to be able to apply multiple SurfaceAppearances to a single mesh with transparency support so I can layer textures cleanly. Ideally, we should also have the ability to use whole-mesh textures instead of having to map them to individual faces (top, bottom, front, back, etc.).
2. What is the issue?
Right now, we’re limited to only one SurfaceAppearance per mesh. If I want to layer details like markings, damage, grime, moss, tattoos, or fur, I have to break them down into separate Texture instances per face. This quickly becomes messy and performance-heavy.
For example, in a dog-breeding game, a single dog with two markings plus a fur overlay would require 18 texture instances (six faces multiplied by three layers). That is not scalable, especially in games with lots of dynamic or customizable assets.
This issue also comes up in any game where items, characters, or the environment need to visually change over time. Examples include decay, dirt buildup, mold, or aging. Doing that cleanly with the current tools is nearly impossible.
3. What solutions have you tried so far?
I’ve tried:
- Manually applying Texture objects to each face of a mesh
- Baking all the details into a single image ahead of time, which kills flexibility
- Swapping out whole models or material sets as a workaround
- Searching for plugin-based or script-based solutions on the Creator Hub, YouTube, and dev forums
All of these are either hacky, performance-heavy, or extremely limiting. There is currently no clean or supported way to layer visuals dynamically across a mesh using SurfaceAppearances or textures with transparency.
Additional Context and Use Cases
Adding this feature would streamline asset creation and open the door for more dynamic, reactive content in all kinds of games. Here are a few real examples of where this would help:
1. Dog-Breeding Game
Different dogs have different colors, markings, and fur textures. Right now, I have to manually texture all six faces per marking, and then again for fur. That results in a ton of instances and wasted memory. With transparent SurfaceAppearance layers, I could just stack the details cleanly and reuse layers.
2. Vehicles
Imagine a car game where vehicles can get scratched, muddy, or covered in graffiti. I could apply a base paint layer, then overlay transparent details dynamically as the car takes damage or gets dirty. Right now, I would need to swap textures or models, which is clunky and expensive.
3. Character Customization
In RPGs or roleplay games, players might want to add war paint, tattoos, or glowing sigils to their characters. Layering those details cleanly is almost impossible right now. With layered transparent textures, I could apply those visual changes without having to rebuild the entire texture set.
4. Buildings
Adding wear and tear to buildings such as grime, rust, or moss is incredibly inefficient right now. Instead of swapping the whole building or texturing each face with new materials, I could apply weathering textures over the base material using a clean layer system.
5. Flora
Plants and trees could shift with the seasons. For example, I could show snow in winter or blooming effects in spring by layering transparent textures over the foliage. This would make dynamic environments much easier to build and manage.
6. Food Assets
Let’s say I have strawberries that rot over time. I could start with a clean base texture and gradually layer on bruising or mold as time passes. This could all be done with just one mesh and a few transparent overlays, instead of needing multiple models or texture swaps.
Final Thoughts
This request is not just about visuals. It is about efficiency and creative freedom. Whether I am working with characters, props, environments, or creatures, being able to stack SurfaceAppearances with transparency (or apply whole-mesh layered textures) would drastically simplify development and improve performance.
Right now, we are being forced into messy workarounds that hurt both the quality of our work and the scalability of our games.
Please consider this. Even supporting just one or two additional transparent SurfaceAppearance layers would make a huge difference.