0

32 ビットの深度バッファーを使用してフレーム バッファー オブジェクトを構成し、それにレンダリングして、結果のカラー バッファーをシステム カラー バッファーにコピーしようとしています。

誰かがこれをコーディングする方法を手伝ってくれますか?

4

1 に答える 1

0

テクスチャをアタッチできます:

glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT24, 
             width, height, 0, GL_DEPTH_COMPONENT,  GL_FLOAT, 0);

glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_,                    
                       textureId, level);

FBO に追加し、このテクスチャを使用して画面上にフルスクリーン クワッドを描画します。

テクスチャにレンダリングしてからフルスクリーン クワッドを使用する: http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-14-render-to-texture/

これを使用GL_DEPTH_COMPONENT24すると、ハードウェアが使用する最大深度精度が得られます。フラグメント シェーダー (フルスクリーン クワッド用) では、そのようなテクスチャから読み取り、グレー スケール イメージとして使用できます。

ここに別の関連する質問があります: OpenGL で深度テクスチャを視覚化する方法は?

一方、32 ビット バッファが必要な場合は、GL_R32F テクスチャを使用して、フラグメント シェーダで深度値を計算する方が簡単かもしれません。そうすれば、そのプロセスをより適切に制御できます。

于 2013-07-15T18:17:54.087 に答える