Question

I recently rewrote the lighting engine in a project I've been working on and noticed that I am getting banding on textures, and only in one direction per face.

The lighting engine is now deferred rendering, so it is composed of 3 textures processed as scene data. Could this be the cause of the texture banding?

Here is a screenshot: Banding texture

It only seems to occur where the lighting is close.

If it helps, my 3 textures are in the following formats:

World fragment position: GL_RGBA16F - GL_FLOAT
World normal direction: GL_RGBA16F - GL_FLOAT
Fragment diffuse texture: GL_RGBA - GL_UNSIGNED_INT
Was it helpful?

Solution

Thanks to ratchet freak and Andon M. Coleman.

Ratchet freak pointed out that it was probably a rounding error in the angle at which the light hits the surface (leading to a low dot product between normal and direction).

The cause was that the internal format of the normal direction texture was set to GL_RGBA16F - 16 bit floats which caused the rounding. Setting the format to GL_RGBA32F fixed the rounding by holding 32 bit floats.

Andon M. Coleman pointed out that I should stop using GL_RGBA as an internal format because it is ambiguous and that GL_RGBA8 was appropriate

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top