I want to use a texture with an alpha channel, so that the opaque parts are opaque, and the color of the object shows thru where there is transparency.
I was under the impression that was a purpose of GL_DECAL, but instead the transparent parts appear black.
How should I be doing this?
All GL_DECAL will do is make the fragment color you compute (combining the texture color with the previous texture environment color) be a linear blend between the texture color and previous color based on the texture’s alpha.
Unless GL_BLEND is enabled, and a proper blend function/equation set, all you will get is this color with a zero alpha. You need to enable GL_BLEND and set an appropriate blend function and equation.
Yeah, that’s what I want.
Turns out it was the texture itself – I was using raw RGBA data and must have something wrong, because switching to .tga worked.