2012-03-22 155 views
1

我通過發出這一系列命令的OpenGL的創建深度/模板緩衝區:錯誤到幀緩衝器

glBindTexture(GL_TEXTURE_2D, 0) 
glGenTextures(1, &TextureId) 
glBindTexture(GL_TEXTURE_2D, TextureId) 
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST) 
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST) 
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT) 
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT) 
glTexParameteri(GL_TEXTURE_2D, GL_DEPTH_TEXTURE_MODE, GL_INTENSITY) 
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_COMPARE_MODE, GL_COMPARE_R_TO_TEXTURE) 
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_COMPARE_FUNC, GL_LEQUAL) 
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, 640, 480, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL); 
glBindTexture(GL_TEXTURE_2D, 0) 

然後我嘗試並將其與

glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_STENCIL_ATTACHMENT, GL_TEXTURE_2D, TextureId, 0) 
附加到幀緩衝

但撥打glCheckFramebufferStatusEXT返回GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT。如果我不附加深度模板緩衝區,這個測試很好(但顯然是顯示器被擰緊了)。

你們有什麼線索嗎?

編輯: 更改:我簡化了紋理的創建到基本紋理的格式。

+0

任何GL錯誤被觸發? – 2012-03-22 15:15:27

回答

2

好吧,這個問題時,我刪除了所有尾隨EXT消失......

+2

我想你知道你不能在同一功能中混用擴展和核心。 – 2012-03-22 18:03:31

2

你連接到GL_DEPTH_STENCIL_ATTACHMENT紋理中有沒有深度,也沒有模板的信息。如果要將紋理附加到GL_DEPTH_STENCIL_ATTACHMENT,請確保它的圖像格式爲depth and stencil data

1

現在OpenGL版本不需要EXT擴展~~~

+0

我認爲他們仍然會支持向後兼容,但顯然混合EXT和非EXT版本並不好:) – qdii 2012-03-24 09:36:36