1

GLSL 経由でステンシル バッファ テクスチャをレンダリングしようとしていますが、それが可能であることがわかりません。ステンシル テクスチャは、GL_DEPTH24_STENCIL8 形式を使用して深度テクスチャと一緒にパックされます。そのテクスチャをレンダリングできないことがわかりました。少なくともステンシル データはレンダリングできませんが、深度データはテクスチャの x/y/z 値を使用してレンダリングしても問題ありませんでした。そこで、ステンシル バッファを GL_RED テクスチャにブリットするという優れたアイデアを思いつきました。それは何らかの方法で可能ですか?

ステンシル バッファを FBO1 から FBO2 にブリットする方法は次のとおりです。

glBindFramebufferEXT(GL_READ_FRAMEBUFFER_EXT, FBO1 );
glBindFramebufferEXT(GL_DRAW_FRAMEBUFFER_EXT, FBO2 );
glBlitFramebufferEXT(0, 0, X, Y, 0, 0, X, Y, GL_STENCIL_BUFFER_BIT, GL_NEAREST );
glBindFramebufferEXT(GL_READ_FRAMEBUFFER_EXT, 0);

そして、ここが私が立ち往生している場所です。何か案は?

4

1 に答える 1

2

1 つのタイプのデータのみを独自のタイプのデータにブリットできます。カラー データを にGL_DEPTH_COMPONENTブリットすることも、深度データをカラーにブリットすることもできません。また、ステンシルを色付けすることもできません。

必要なことを行う唯一の方法は、GL 4.3 の一部であるARB_stencil_texturingを使用することです。ハードウェアで使用できるようになるかどうかは、ハードウェアによって異なります。

于 2013-02-11T02:56:46.937 に答える