我需要在OpenGL中渲染背景图像,我试图获得与Photoshop中的“颜色减淡”相同的结果,但我无法做到。OpenGL中的颜色闪避
现在我做:
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE);
// background
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, background);
glBegin(GL_TRIANGLE_STRIP);
glTexCoord2f(0.0, 0.0);
...
glEnd();
glDisable(GL_TEXTURE_2D);
// image
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, image);
glBegin(GL_TRIANGLE_STRIP);
glTexCoord2f(0.0, 0.0);
...
glEnd();
glDisable(GL_TEXTURE_2D);
背景是没有alpha通道的TGA。图像是带alpha通道的tga。
这会渲染带背景上的alpha图像,但太亮。
我读,因为它应该是一样容易:
glBlendFunc(GL_ONE, GL_ONE);
但是,尽管有alpha通道的图像被呈现为白色正方形。
显然我做错了什么。
我假设有可能开箱即用。现在看来,与背景纹理的混合没有发生,而是与背景颜色(白色)相反。 –