我試圖將內部格式爲GL_R32UI
的紋理附加到幀緩衝區,以用作ID緩衝區。然而,glCheckFramebufferStatus
不斷提出GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT
,即使它是唯一的附件。將整數紋理附加到幀緩衝區
這對我來說很奇怪,因爲OpenGL 4.2規範似乎聲稱GL_R32UI
是OpenGL實現在連接到幀緩衝區時必須支持的格式之一。我懷疑這是一個驅動程序錯誤。我是對的,還是任何人都可以告訴我我忽略了什麼?
我試圖將內部格式爲GL_R32UI
的紋理附加到幀緩衝區,以用作ID緩衝區。然而,glCheckFramebufferStatus
不斷提出GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT
,即使它是唯一的附件。將整數紋理附加到幀緩衝區
這對我來說很奇怪,因爲OpenGL 4.2規範似乎聲稱GL_R32UI
是OpenGL實現在連接到幀緩衝區時必須支持的格式之一。我懷疑這是一個驅動程序錯誤。我是對的,還是任何人都可以告訴我我忽略了什麼?
我解決了我自己的問題。
void glTexImage2D(GLenum target,
GLint level,
GLint internalFormat,
GLsizei width,
GLsizei height,
GLint border,
GLenum format,
GLenum type,
const GLvoid * data);
當調用glTexImage2D
創建紋理,第七屆參數「格式化」需要對應到3「internalFormat」參數,即使你傳遞一個空指針的數據參數。如果你的內部格式是一個整體格式,你需要提供一個像GL_RED_INTEGER
這樣的格式,而不是像GL_RED
這樣的格式。
請注意,像[glIntercept](http://code.google.com/p/glintercept/)這樣的工具將允許您通過給出錯誤消息來檢測到此錯誤。所以會採用調試上下文和ARB_debug_output擴展。 –
你用什麼格式? – Plow
我認爲你正在朝着解決方案邁進:) – dupersuper
很高興工作:)。如果您有興趣,我可以在第163頁的[spec](http://www.opengl.org/registry/doc/glspec43.core.20120806.pdf)中找到它。 – Plow