Texture is having trouble rendering correctly on mobile, but is perfectly fine on PC

The trees I modeled for my game all have the same texture. Here you can see the textures function as intended. Here is how it looks like on PC:

image

Mobile:

This also happens with every other mesh that has a texture. This happens only on mobile and these screenshots were taken on the same server.

I have a Pixel 3. Here is the place if you want to try it for yourself:

1 Like

Hello there!

Are both pictures taken while joining the game through the game page or is the first one from inside studio? The cause might be that the texture hasn’t been approved yet by ROBLOX moderation, thus preventing you from seeing it outside studio.

Both pictures were taken in the real game. The mesh was imported like a month ago, so I doubt its still going through moderation.

Hm, I have no clue on why that would happen then. You could of course just seperate the tree leaves from the trunk of the tree and color them seperately. That would solve the issue but I am not sure if you’d want to go that route.

I just checked on PC and mobile to make sure, and this does seem like an odd issue. However, before I rule out anything or suggest possible fixes, we need more info:

  • What the texture looks like.
  • What the UVs of the trees look like.
  • Anything else you consider relevant.

Here is what the tree looks like in blender:

image

Works perfectly on PC, not sure what’s going on on mobile

(texture image is 2x2 pixels)

This is why - mobile compresses textures more than PC does for performance reasons, meaning that your 2x2 pixel texture is an averaged colour of all the colours put on a single pixel.

Try to avoid textures smaller than 16x16 since compression is a loose cannon (I might expect a very low end PC could also have this issue, not just mobile) and the file size differences at that scale are incredibly small either way.

What would be the optimal texture size of a two colored model?

As I said, 16x16. 8x8 is ok but cutting it close, and again, the differences are negligible.


Honestly in most cases, if I’m making a simple background asset like this where the player isn’t handling or interacting with the object and I just need a flat diffuse texture with no detail, I do as Eurocracy suggested above and export the foliage and trunk of the trees separately, and colour them with BrickColor.

The performance hit of two meshes verses a single mesh and 16x16 texture is also negligible and at that point you’re better spending time with other performance methods.

I always try to allocate the most resources (time, money, game memory limits) to the more important assets. Why spend time to making a texture of four colours when I could just export the minor asset and colour it in Studio?


Edit. Try to make textures at least 32x. 64x is also ideal. Anything less can result in texture bleeding or averaged colours across the whole model.

2 Likes