Inconsistent SurfaceAppearance Alpha On Lower Graphics Settings

When using lower graphics settings (both in Studio and Run Time), SurfaceAppeance.AlphaMode set to Transparency makes any Alpha layer on the MeshPart’s texture into a Ben-Day dot pattern or show transparency values inconsistently, instead of accurately showing the texture’s transparency.

Test texture:


Replicate the Ben-Day dot pattern bug by using the texture above on any UV unwrapped MeshPart, and setting your Studio or at Run Time graphics settings to 16 or lower (Studio), or 7 or lower (Run Time).


Replicate the transparency inconsistencies by using the texture above on any UV unwrapped MeshPart, and setting your Studio graphics settings to 17.


I can reasonably assume these were actually intended properties for the SurfaceAppearance feature (likely for performance reasons), but as a developer I cannot recommend using this feature because Ben-Day dot patterns are not a replacement for transparency - they make any asset just look out-of-place especially when the player camera is moving.

For Robloxian High School, we will not be using SurfaceAppearance textures for any of our assets due to this current functionality. For example, the plastic cup below has 20% transparency, but with the Ben-Day dot pattern, just looks out-of-place and visually jarring. We’re forced to use inverted geometry to simulate the cups and other transparent objects, but we want to avoid using this dated method.

6 Likes

In order to have the see-through/alpha-blend behavior, you will need to set SurfaceAppearance.AlphaMode to Transparency and Part.Transparency > 0.

When SurfaceAppearance.AlphaMode set to Transparency and Part.Transparency = 0, currently we are using Ben-Day/screen-door as implementation detail. The intention was to handle transparency generically. However, transparency in general is a hard problem and current implementation is our stab at it. Most people use this behavior for tree leaves.

3 Likes