好吧,所以這裏的交易:延期渲染opengl混合
我剛剛得到我的手與延遲照明髒。我不會詳細討論,但我一直在使用FBO,並且遇到了問題。
在我的整個渲染過程中我使用glBlend:
GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA
得到我想要的結果。如果我將場景渲染到「真實」幀緩衝區(後臺緩衝區?),我會得到適當的結果。問題是,如果我首先向FBO渲染某些東西,然後將該FBO渲染爲「真實」幀緩衝區,則會出現透明度問題。
這很難解釋,但我會試一試。假設我將一個具有RGBA(0.5,0.7,0.4,1.0)的像素渲染到FBO,然後在其上渲染一個像素(0.0,1.0,0.0,0.5)。該像素的結果alpha應爲1.0,但猜猜看!結果是0.5。爲什麼是這樣?最終的顏色混合正確,但alpha不是1.0。如何,通過blendfunc或其他方法,我可以得到1.0的結果?我試過用不同的顏色,不同的彎曲功能等來清理緩衝區,但無濟於事。
聽起來像這可能是相同的問題http://stackoverflow.com/questions/24346585/opengl-render-to-質地與 - 局部transparancy-半透明和 - 然後 - 仁德。 –