2012-11-05 97 views
2

我試圖將內部格式爲GL_R32UI的紋理附加到幀緩衝區,以用作ID緩衝區。然而,glCheckFramebufferStatus不斷提出GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT,即使它是唯一的附件。將整數紋理附加到幀緩衝區

這對我來說很奇怪,因爲OpenGL 4.2規範似乎聲稱GL_R32UI是OpenGL實現在連接到幀緩衝區時必須支持的格式之一。我懷疑這是一個驅動程序錯誤。我是對的,還是任何人都可以告訴我我忽略了什麼?

+0

你用什麼格式? – Plow

+0

我認爲你正在朝着解決方案邁進:) – dupersuper

+1

很高興工作:)。如果您有興趣,我可以在第163頁的[spec](http://www.opengl.org/registry/doc/glspec43.core.20120806.pdf)中找到它。 – Plow

回答

4

我解決了我自己的問題。

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這樣的格式。

+2

請注意,像[glIntercept](http://code.google.com/p/glintercept/)這樣的工具將允許您通過給出錯誤消息來檢測到此錯誤。所以會採用調試上下文和ARB_debug_output擴展。 –

相關問題