シャドウマッピングアルゴリズムに取り組んでおり、最初のパスで生成される深度マップをデバッグしたいと思います。ただし、デプステクスチャはビューポートに適切にレンダリングされないようです。できればシェーダーを使用せずに、深度テクスチャをグレースケール画像として表示する簡単な方法はありますか?
5725 次
3 に答える
8
グレースケールレベルとして表示するには、深度テクスチャパラメータを変更する必要がある場合があります。
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_COMPARE_MODE, GL_NONE )
glTexParameteri( GL_TEXTURE_2D, GL_DEPTH_TEXTURE_MODE, GL_LUMINANCE )
その後、通常、固定関数または「sampler2d」シェーダーユニフォームを介して、テクスチャを「通常の」グレースケール2dテクスチャとして使用できます。
于 2011-05-20T17:16:01.627 に答える
2
深度テクスチャ (2D) は、通常のグレースケール テクスチャと同じように使用できます。唯一の問題は、内部の値がすべて高すぎて、白いテクスチャしか表示されないことです。その場合は、深度テクスチャを作成するときに使用される z-near および -far 平面で遊んでください (または、シェーダーまたは glTexEnv で値をスケーリングします)。
于 2009-03-26T08:54:51.997 に答える
0
もちろん、深度テクスチャをお気に入りのテクスチャ ユニットにバインドし、テクスチャリングを有効にして、2D クワッドを描画するだけです! リアルタイムでシャドウマップを表示できるように、画面の一部のみを埋めるように四角形のサイズを変更することもできます。
OpenGL には、テクスチャを配列にコピーできる関数もあります。これを画像として保存し、画像ビューアを使用して表示できます。
于 2011-05-20T16:43:05.573 に答える