Mesh Textures have Weird Lines on them when zooming in and out

Reproduction Steps

  1. Insert a Mesh Part in studio, change its mesh to a sphere.

  2. Add any type of texture to the sphere (It can’t just be one color)

  3. Zoom in on the mesh and you should see the lines.


Expected Behavior

The texture on the mesh should be smooth and should reflect the texture that is shown up in blender.

image

Actual Behavior

Multiple black lines show up on the mesh and do not reflect the mesh (obj+) file from blender.

Screenshot 2022-12-10 095204


If you need the mesh, you can download it here, and if you need the texture, it will also be here.
bombSphereMesh.obj (290.6 KB)

Issue Area: Engine
Issue Type: Visual Bug
Impact: Moderate
Frequency: Always


I also recommend applying a mesh to a sphere mesh and my mesh to double check if this is happening to circular objects.

6 Likes

We’ve filled a ticket into our internal database for this issue, and we will update you when we have further information.

Thanks for the report!

5 Likes

Without downloading anything, your UVs judging by the texture look ridiculous. I would guess this is not a bug and is in fact just insufficient margins around the islands on your UV. try making sure you’ve painted a little bit “outside of the lines” on your texture.

2 Likes

But it seems perfectly fine on blender? so why would this only be happening when I import it into Roblox?

1 Like

As I know, Roblox blend together neighbor pixels. So if you use border pixels, they are blended with not existing ones. =|

2 Likes

The way textures are sampled (especially at large distances) is imperfect and can catch edge pixels, this is a fact in any engine and you should always leave a margin.

I believe this is due to Roblox using bilinear interpolation (correct me if I’m wrong)

1 Like

This also happens when you zoom out from your player’s character. You can see that the edges of the limbs represent the tone of your avatar’s skin color rather than your ShirtTemplate or PantsTemplate. When zooming back in, everything seems normal.

However, setting the decal’s transparency to a negative value seemed to fix the issue for me, though now it looks weird.

This issue doesn’t seem to be a bug - it’s a problem that can occur when the UV islands on your mesh are too close to the outer bound of the texture area that is intended for the islands. When this happens, pixels from the texture area outside the bounds can leak onto the mesh and cause these strange lines to appear.

To prevent this issue from occurring, it is important to make sure that you allow a sufficient margin of pixels around your UV islands. This can be done by making sure that your UV islands are not scaled too close to the edges of the texture area intended for the islands. If you are doing a render bake of any kind, you can try increasing the margin value in your baking settings to help prevent these lines from appearing.

I hope this helps!

Technically not a bug, or at least a well known bug that’s been around since the dawn of time and will probably never be fixed.

Roblox loves to compress images to hell and back, so some bleeding in from the bordering pixels is going to happen to begin with, but Roblox also loves to bleed textures together when displaying them (this is especially visible on non square bodies wearing clothing that doesn’t go over the bordering outlines, as you can see them clearly appearing around the sides of the parts)

The only workaround is painting an extra pixel or two outwards from the islands so any bleeding that happens will be of the same colour, so you won’t notice it.

1 Like

Like other people said this is not technically a bug.

The main difference is in how textures are sampled in a game engine vs Blender. All game engines use mipmapping both for performance and to reduce aliasing issues. Here is a good description of the issue: Edge padding - polycount

2 Likes

Why would you reply to a five month post? Please delete this, and whenever posting look at the date that the last reply was posted.

Thanks for the advice, and not trying to come off as mean but the thing is I’ve already got the solution down, so there’s no need to tell me this…