我有一個OpenGL應用程序,完全透明的窗口,我需要繪製一個圖片到像素透明度取決於背景。有沒有什麼方法可以讓我的透明窗口(如牆紙,桌面,另一個窗口等)以下的背景像素數據,所以我可以動態改變着色器中的像素?OpenGL獲取背景像素信息
現在我有這樣
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_COLOR, GL_DST_COLOR);
glClearColor(1.0, 0, 0, 1.0);
glClear(GL_COLOR_BUFFER_BIT);
[self.shader useShader];
[self drawTriangle];
useShader代碼只是調用glUseProgram程序和drawTriangle只是繪製一個測試三角形。
着色器是:
#version 120
void main()
{
gl_FragColor = gl_SecondaryColor + vec4(0.0, 1.0, 0.0, 0.0);
}
所以,如果我清除窗口(1.0,0,0,1.0)我得到預期的黃色三角形,但是當我切換到(0,0, 0,0)變綠。有沒有辦法獲得底色數據?
同樣的問題在這裏。完全透明的背景就像黑色一樣。 – Mehdzor