Color bleeding in Sprite3D

Godot Version



I’m have an extremely simple setup with just a floor and a billboarded Sprite3D in my CharacterBody3D. The colors on the sprite bleed and blur the further the smaller the sprite. I understand this at a certain point when the pixels are too small, but it’s happening early and rapidly.

Some settings - Camera: orthogonal - import settings on texture: lossless, sRGB friendly, no mipmaps, detect 3d compression disabled - Texture filter: nearest. Everything else important is pretty much default but after hours of searching it seems like the above things are the main causes of this kind of thing.

Here is my little guy:

Here is my guy in game:

Here is a zoomed in part of the above image:

Here he is zoomed out to a level I’d expect to be normal in my game:

Look at how messed up my poor little guy is:

As you can see in the last example the colors get all blurry and messed up bad. Any help appreciated, ta.

About the bleeding pixels.
This is a known bug. Sprite3D texture wrapping causing pixel lines on border · Issue #82044 · godotengine/godot · GitHub
There is already a fix for this, but it got delayed for the next 4.3 version (hopefully) Added repeat option to SpriteBase3D by imaskillissue · Pull Request #82193 · godotengine/godot · GitHub

The problem is that Sprite3D uses the repeat texture flag, and there is no way to disable that right now.

The fix for now is to leave a little transparent border around the sprite so that the repeated texture doesn’t bleed.
Sometimes using nearest filter can remove the bleeding if its not too bad.

This is not what I mean and I can’t see that in my pictures, but thank you for trying to help anyways. I mean that the colours are actually bleeding into each other.

My bad, I read bleeding pixels and remembered that issue.
I feels like this problem might be a rendering issue than.

But just to be sure.
In your Sprite3D. Under flags: Make sure Texture filter is Nearest.
The default is Linear Mipmap, so that could explain why it turns bad when the sprite is zoomed out.

And a couple of random things you could try.
In the project settings, with advanced settings:

Under Display->Windows.
Have you tried setting the stretch mode to ‘canvas items’ or ‘viewport’?

Under Rendering->Antialiasing.
If you have set any anti-aliasing config, maybe try to disable it to check if it helps?

Under Rendering->Scale3D.
Maybe messing around with the values or changing it to FSR helps? Not sure if it uses that for object scaling, or if it only applies for the whole viewport.

Just throwing random things, maybe one of them works.