Errors on colors and artifacts on textures

You can write your topic however you want, but you need to answer these questions:

  1. Resume of the problem

What I want to emphasize here is that this issue may not really be a bug. It mostly involves how Roblox applies texture compression to reduce server load, but I think it’s too exaggerated. Initially, I managed to fix it by adjusting and experimenting with the Bit Depth values during image export. Roblox seems to have a standard bit depth value of 24, which might be causing the issue. However, the artifacts and extremely blurry textures seem to result from compression, similar to what happens with WhatsApp and other social media platforms but applied to 3D models. This negatively impacts the player experience as the artifacts significantly alter the appearance.

I managed to fix the issue temporarily by adjusting the bit depth, but this only lasted for nearly two days. When I opened the place again after two days, the textures were extremely blurry and had numerous artifacts, despite looking fine previously. It seems that Roblox applies a second layer of compression after the user exits and re-enters the place.

Details of the specific models:

  • I pack about 3-4 assets into the same UV square to save on textures and improve performance.
  • The texture size is 512x512.
  • I have experimented with various bit depths (8, 24, 32, and 48). They all yield the same long-term results, except for 8-bit depth, which imports with artifacts and remains the same over time.
  • The texture size is 182 KB.

Here are some comparisons: all the images come directly from a public place I manage on Roblox, and I have tested multiple places, consistently getting the same results.

Long-term goals: This problem persists across all my model packs with this grain style I made recently, but it does not appear in older places with older models.

What I want to achieve:

  • The appearance of textures when freshly imported or re-uploaded.
    Here some comparisons: all the pics come directly from a public place in roblox I manage and I have tested with multiple places and I still get the same results, even if the place is opened or created by someone completely different from me

What I want to achieve at long term::
image

  1. Problem presentation

Same model, same texture a few days after the import: (I have multiple models with the same issue)

Side to side comparison:
image

This same problem stays on all my model packs with this grain style I made recently and it appears to not be a problem in old places with old models somehow:
What I want and what it looks like when you freshly import or when you reupload the texture again.
In Blender and how it looks in roblox too freshly imported:


What it looks like after a few minutes, days or hours when you close the place and open it again:

What I want and what it looks like when you freshly import or when you reupload the texture again. (this one is on blender so the color change once imported, focus on the artifacts)

What it looks like after a few minutes, days or hours when you close the place in roblox

What I want and what it looks like when you freshly import or when you reupload the texture again.
image
What it looks like after a few minutes, days or hours when you close the place
image
This final image totally demonstrate the error
As I mentioned before I have worked with a ton of settings of color profiles, bit depth, etc. and nothing appears to work the results are the same so I attribute it to roblox, cause even across 3D modeling softwares everything stays the same, and even in roblox when I first import them they look fine but when I reopen it, everything changes


This is the texture pack of the safe, it has the color profile and bit depth that gave the best results trying to fight the artifacts.


This is the texture I get when I export the model from roblox once it gets the artifacts.

Here the UV distribution of the safe

  1. What I already tried
  • Change the color profiles, I literally tried everything to see if somehow the RGB png format was causing the issue
  • Change the Bit Depth, I tried every possible setting of Bit depth, the only difference I found between them is that if I use 8 Bit depth the artifacts appear even freshly imported while in 16 bit and above the artifacts appear after reopening roblox studio
  • Reinstall roblox studio
  • Change texturing software (I currently use substance painter and photoshop cs6)
  • Changed the UV distribution
  • Increased resolution by 25%, this issue doesnt appear to happen on bigger texture resolutions, and if it happens I can’t notice the visual difference cause of it.

The model imports good on all the engines like Unity and Unreal and stays the same.

Possible causes

  • Texture Resolution (As an effort of roblox to optimize certain textures it makes rounds of compression which result in this kind of artifacts cause of the lost data)
  • UVs Size (This is a desperate cause but it could be it, cause of the size of the uvs roblox combines the colors just as what happens when roblox sees a pixelated texture on a reduced texture resolution, it makes a heavy smoothing and make it look blurry)

Please if you know the issue let me know, I’m open to run experiments to see if we find a solution to this problem.

This appears to be due to the chroma subsampling roblox applies to textures sent to the studio/client


(Even worse than 4:2:0!)

Its especially noticeable in this roblox billboard texture exported from studio

I don’t think there’s any way to disable this, unfortunately
Maybe you can compensate for it by uploading textures at 2x or 4x resolution

1 Like

What if you redid the uv map. you have a lot of faces that only require one color, so you could just map all the parts that share the same color, to the same patch of color (not overlapping). You could also scale them way down because it doesn’t really matter how big they are because they are only one color. Doing this also allows a lot more space for bleeding if there is any texture reduction. Also since each uv square only needs 1 pixel of color, there will be less room for color-changing or randomly discolored pixels (if it happens it happens to all the parts of the same color)

for things that do require a bigger texture, like the buttons with numbers, they have a lot more room to use (because all of the other parts have been shrunk)

you said the issue doesn’t appear on bigger texture resolutions, so doing this could help