32 ビットの深度バッファーを使用してフレーム バッファー オブジェクトを構成し、それにレンダリングして、結果のカラー バッファーをシステム カラー バッファーにコピーしようとしています。
誰かがこれをコーディングする方法を手伝ってくれますか?
32 ビットの深度バッファーを使用してフレーム バッファー オブジェクトを構成し、それにレンダリングして、結果のカラー バッファーをシステム カラー バッファーにコピーしようとしています。
誰かがこれをコーディングする方法を手伝ってくれますか?
テクスチャをアタッチできます:
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 テクスチャを使用して、フラグメント シェーダで深度値を計算する方が簡単かもしれません。そうすれば、そのプロセスをより適切に制御できます。