6

誰もこれを成功させましたか?ステンシル レンダー バッファーで使用しているインデックス形式が何であれglCheckFramebufferStatus(...)GL_FRAMEBUFFER_UNSUPPORTED. depth\color レンダー バッファーの両方を正常にバインドしましたが、ステンシル バッファーで同じことをしようとすると、(私が言ったように) GL_FRAMEBUFFER_UNSUPPORTED.

ここに私のコードのスニペットがあります:

// Create frame buffer
GLuint fb;
glGenFramebuffers(1, &fb);

// Create stencil render buffer (note that I create depth buffer the exact same way, and It works.
GLuint sb;
glGenRenderbuffers(1, &sb);
glBindRenderbuffer(GL_RENDERBUFFER, sb);
glRenderbufferStorage(GL_RENDERBUFFER, GL_STENCIL_INDEX8, w, h);

// Attach color
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, cb, 0);

// Attach stencil buffer
glBindFramebuffer(GL_FRAMEBUFFER, fb);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_RENDERBUFFER, rb);
// And here I get an GL_FRAMEBUFFER_UNSUPPORTED when doing glCheckFramebufferStatus()

何か案は?

注: カラー アタッチメントはテクスチャであり、レンダー バッファではありません。

4

2 に答える 2

8
于 2012-06-18T16:32:24.463 に答える
1

最近のnvidiaハードウェア/ドライバーでステンシルのみを使用できます

glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_STENCIL_ATTACHMENT_EXT, GL_TEXTURE_2D, fboStencilTexture, 0);

別の深度とステンシルの両方はまだサポートされていません

于 2016-11-30T12:56:34.757 に答える