我需要在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通道的圖像被呈現爲白色正方形。
顯然我做錯了什麼。
我假設有可能開箱即用。現在看來,與背景紋理的混合沒有發生,而是與背景顏色(白色)相反。 –