4

ピクセルシェーダーでテクスチャをサンプリングする場合、テクスチャユニットは、シェーディングされるピクセルの周囲のテクスチャ勾配に基づいてミップマップを選択する必要があります。

tex2Dgrad()グラデーションに関する情報を手動でtex2Dlod()提供し、ミップマップを手動で選択できる機能がありますが、呼び出すだけtex2D()で、追加のグラデーション情報はどこから取得されますか?

tex2D()ほとんどのシェーダーで使用されるテクスチャマッピングの最も一般的なケースですが、グラデーションがどこから来ているのかわかりません。ミップマッピングは明らかに機能するので、どこかから来ている必要があります。

U計算された座標を使用して、ピクセルシェーダーのルックアップテーブルとしてテクスチャを使用したいのですが、で予期Vしない「魔法」tex2D()が発生することは望ましくありません。

tex2Dlod()これを回避するために使用する必要がありますか?tex2Dlod()私はそれが遅いと読んだtex2D()

4

1 に答える 1

1

GPUは、一度に4ピクセルの「クワッド」をシェーディングし、テクスチャフェッチに使用されるグラデーションは、隣接するピクセルのペアから計算された有限差分から取得されます。これは、GPUがピクセルシェーダーの任意の式に対しても偏導関数を生成できる方法です。tex2Dgrad関数は、テクスチャ座標として渡す値のより正確な分析導関数を計算できる場合に役立ちます。

于 2011-12-29T12:02:39.127 に答える