2009-03-25 12 views
3

私はシャドウマッピングアルゴリズムに取り組んでいます。最初のパスで生成しているデプスマップをデバッグしたいと思います。ただし、深度のテクスチャはビューポートに正しく表示されないようです。深度テクスチャをグレースケール画像として表示する簡単な方法はありますか?好ましくはシェーダを使用しないでください。OpenGLで深度テクスチャを視覚化するには?

+0

設定方法を教えてもらえますか?正しく動作しないのですか?これを行うにはいくつかの方法がありますので、もしあなたの問題を修正できるのであれば、たくさんの外国コードを入力しなければなりません。 –

答えて

2

デプステクスチャ(2D)は、通常のグレースケールテクスチャと同じように使用できます。唯一の問題は、その中の値がすべて高すぎて白いテクスチャしか表示されないことです。その場合、深度テクスチャを作成するとき(またはシェーダまたはglTexEnvで値をスケーリングするときに使用される)、z-nearおよび-farプレーンを使用しています。

0

確かに、あなたの奥行きテクスチャをお気に入りのテクスチャユニットにバインドし、テクスチャリングを有効にして、2Dクワッドを描画してください。画面の一部を塗りつぶすだけでクワッドのサイズを調整し、シャドーマップをリアルタイムで表示することもできます。

OpenGLにはテクスチャを配列にコピーできる関数もあります。これを画像として保存し、画像ビューアを使用して表示することができます。

8

あなたはグレースケールのレベルとして、それを表示するには、深度テクスチャパラメータを変更する必要があります:固定機能のいずれかを介して、あなたはその後、通常は「通常の」グレースケールの2Dテクスチャとしてテクスチャを使用することができます

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_COMPARE_MODE, GL_NONE) 
glTexParameteri(GL_TEXTURE_2D, GL_DEPTH_TEXTURE_MODE, GL_LUMINANCE) 

、または'sampler2d'シェーダユニフォーム。

+0

Aha、私は元の質問が古くなっているのを見たことがありません。とにかく... – rotoglup

関連する問題