Meshes on Roblox support vertex coloring when imported from a *.fbx file, and this tinting normally applies to the MeshPart’s applied texture as well.
In an effort to optimize our memory consumption on mobile, we’ve been trying to optimize our meshes to use smaller textures and fewer individual MeshParts, while still preserving graphical fidelity.
Trouble is, MeshParts on their own don’t support the alpha channel. So we tried using the SurfaceAppearance class to utilize the Transparency
AlphaMode. This is where the problem rapidly became apparent:
As you can see, our grayscale texture is appearing as an overlay and isn’t respecting the vertex colors of the underlying geometry when using the Overlay
AlphaMode. Results weren’t much better when we tried using the Transparency
option either:
While we could expand our texture map to have 4 tinted copies of the same texture, that defeats the end-goal of this optimization. Texture memory and part counts on mobile are huge bottlenecks to our scalability. Ideally we want the mesh to look something like this:
I’m hoping this issue is easy to fix and we can utilize these optimization techniques in our worlds as soon as possible.
Thank you in advance!