1

フラグメントシェーダーでのテクスチャのマッピングに問題があります。ウィンドウと同じサイズのテクスチャがあり(前のパスでレンダリングされたシーンの一部を使用していますが、以下の例ではレンガのテクスチャを使用しています)、2Dのようにマッピングする必要があります。どういうわけか可能ですか?さまざまな方法を試しましたが、何も機能しませんでした。

フラグメントシェーダーはどのように見えるべきか教えていただけますか?何かアドバイスがあれば助かります。ありがとうございました!

プレーンマッピングのtepaot

4

1 に答える 1

3

ウィンドウ (…) と同じサイズのテクスチャがあり、2D のようにマッピングする必要があります。

したがって、私があなたを正しく理解していれば、以前に生成されたテクスチャを、テクスチャ ピクセルがビューポート ピクセルに 1:1 でマップされ、テクスチャがビューポートとまったく同じサイズである、ある種の「レイヤー」であるかのように使用したいですか?

もしそうなら、これはとても簡単です (GLSL バージョン 1.30 以降)。ピクセル インデックスを座標として取る関数 があります(範囲 [0; 1] の値を取るのtexelFetchとは異なります)。texture組み込み変数gl_FragCoordは、現在処理されているフラグメントのウィンドウ座標を示します。したがって、gl_FragCoordforの座標を使用するtexelFetchと、目的の結果が得られます。

于 2011-12-11T13:05:01.260 に答える