Improve quality (color depth?) on Particles

I noticed when I use particles, it seems like they mix in a way so there’s a lot of banding.
Is there any quality setting somewhere, to avoid this from happening?

I’m using the 2D renderer and URP.

Also there is colors in the particles, like green/red, even if the color is white on the particle system, and there is no post processing colors. Why?

The first image uses the default particle. The other one has a custom particle, that is also greyscale, and a yellow tint in the particle system, yet it appears red/greenish.

Thanks!


It’s a color precision issue. Either in the texture being used on the particle, or the camera’s render target, or both.

If you’re using compressed textures for the particles, and they’re a greyscale texture, most GPU image compression formats cannot actually display these without some amount of color issues. Most formats use a “565” 16 bit color palette when storing color values, and there’s some magic that allows them to interpolate that data into colors outside the range a normal 16 bit color image would be limited to, but it still means there’s a bit of color shifting that happens in a greyscale texture. The solution would be to use an uncompressed texture, or custom shaders that use single channel textures, or a totally white texture that uses alpha channel instead of a greyscale.

However that alone might not fix the issue, if you have many layers of faded particles, the default render texture format is only 8 bit per channel. Layering a lot of mostly transparent particles over each other is going to start exposing the limited color depth, or accentuate color shifts. You can fix this by enabling HDR on the camera. I believe the default URP camera also automatically does dithering on HDR when converting the image for display which can help with banding too, assuming there’s aren’t issues with the particle textures to begin with.

2 Likes

Thanks so much for the extremely detailed answer, I will check the suggested options!