Transparent SurfaceAppearance White Edge Bleed Upon Zooming Out

Reproduction Steps

BugRepro.rbxl (265.6 KB)
Create a Mesh
Insert SufaceAppearence
Add Color Map with Transparency
Add Normal Map
Set SurfaceAppearence AlphaMode to Transparency
Have part behind Mesh, distance tolerance between part and mesh being between .1 - .001 studs.





Expected Behavior

There should be no edge bleed of any color.

Actual Behavior

There is a visible white edge bleed.

Workaround

None that would give the desired effect I am aiming for.

Issue Area: Engine
Issue Type: Display
Impact: Moderate
Frequency: Often

3 Likes

Maybe are the islands of the UV map , that need more bleed/margin , because when you are very far the resolution of the textures are Reescaled to less resolution , if have the texture with a white background in the UV map , this is the problem , other thing that can be possible is that the mesh part not be alligned correctly , or try future light and change some features parameters of the light ,

if not is this the problem then Roblox need a antialiasing to avoid the muaré patterns XDD , I hope I have help you.

1 Like

Thanks for the report! We’ll take a look.

1 Like

I’m also having this issue with SurfaceAppearance AlphaMode set to Transparency.

At close, it looks like this:

From a far, it’s even more noticeable:
image



Edit: After some more digging, I’ve learned that this is caused by bilinear interpolation when an image is uploaded to Roblox. @Quenty created a nice post on Medium discussing how images can be fixed before being uploaded to Roblox to prevent this outline effect. Their post talks about how this helps with images in UI although this directly correlates to images with transparency used within SurfaceAppearences.

Here’s the result of using Pixelfix by Corecii:
image

1 Like

So I looked into this issue and the key problem seems to be due to mipmapping of the bolts’s alpha.

In the test scene you provided, the way the hull is constructed is out of various layers. Sort of the main hull and then the ‘bolts’ on top in an alpha layer.

Well the problem lies in the alpha layer combined with BC compression and mipmaps. Looking at the mipmaps it creates from the top level:

It gets worse as it goes down, e.g. 128x128:

16x16:

2x2:

So the problem is that the mips are getting progressively more opaque combined with a low mip averaged color of grey ish, which shows the white outlines. It would be good to just make a texture with the bolts baked in, then the issue will disappear.

(I have internally reached out to ensure we do alpha channel mipmapping correctly, as I’m not sure we are)

Thank you for getting back to me on this.

It would be good to just make a texture with the bolts baked in, then the issue will disappear

We would but ideally, we would like the rivets to be transparent so color changing of the base mesh gives the rivets the same color for customization purposes. To upload numerous textures of the same pattern but in different colors is not economical for our project.

Yeah I understand that this might not be an acceptable solution for your purposes. Unfortunately there is currently no good way to get around it.