我總共有5個渲染目標。我使用相同的着色器寫入前4個,然後單獨寫入最後一個。OpenGL MRT glDrawBuffers()參數編號和行爲
在調用渲染前4倍的目標我打電話:
GLenum drawBuffers[] = { GL_COLOR_ATTACHMENT0, GL_COLOR_ATTACHMENT1, GL_COLOR_ATTACHMENT2, GL_COLOR_ATTACHMENT3};
glDrawBuffers(4, drawBuffers);
然而,當我稱它爲第二遍,只需要編寫到最後一個,5號目標,爲什麼下面舉奇怪的結果?
GLenum drawBuffers[] = { GL_COLOR_ATTACHMENT4 };
glDrawBuffers(1, drawBuffers);
爲什麼我要改用:
GLenum drawBuffers[] = { GL_NONE, GL_NONE, GL_NONE, GL_NONE, GL_COLOR_ATTACHMENT4 };
glDrawBuffers(5, drawBuffers);
這是glDrawBuffers()只是如何工作的,或者是由別的原因引起的?
編輯:固定碼與問候Jarrods評論
對不起,在我的代碼中,我實際上已將它作爲1元素數組,正如你所說的,我只是試圖在我的問題中更加簡潔。 – kbirk 2013-02-24 22:20:48