In openGL, when I don't bind a texture, or I bind a texture that was loaded incorrectly, any calls to texture2D/texelFetch in the shader will return vec4(0, 0, 0, 1), is there a way to change this to return vec4(1, 1, 1, 1) instead?

Initially I looked for a way to test if the sampler2D was valid, and when I couldn't find that I tried using glColor4f, but that doesn't seem to work either--although that could be the amdgpu driver, it seems to have some trouble with the old pipeline calls generally.

Is there someway to change what this default return color is?


1 Answer 1


There is no way to change that.

For incomplete textures the color is vec4(0, 0, 0, 1) as required by the OpenGL specification for float textures.

Integer textures return undefined values.

Shadow samplers return 0.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .