MaxTextureRepeatの制限はどの時点で機能しますか?
質問
Direct3Dでピクセルシェーダーを実行する場合、MaxTextureRepeatによって課されるテクスチャ座標の制限は、Tex2D()などのテクスチャルックアップ関数の呼び出し中にのみ問題になるか、テクスチャ座標がシェーダー?
テクスチャルックアップ関数に渡す前に、テクスチャ座標でfrac()などを呼び出すことで、MaxTextureRepeatの制限を回避できるかどうかを知りたいです。
解決
テクスチャ座標は、ネイティブの補間精度です。ピクセルシェーダー2.0対応のハードウェアでは、これは少なくとも24ビットの浮動小数点(またはおそらく32ビット、不明)です。内部的には、ピクセルシェーダーの計算は少なくとも24ビットの浮動小数点である必要があります。最新のGPUのほとんどは、32ビットの浮動小数点精度で実行されます。
MaxTextureRepeatは、テクスチャサンプリングハードウェアの機能です。
したがって、はい、浮動小数点精度の制限に直面しない場合、サンプリング前に範囲を制限することは、テクスチャの繰り返し制限を回避する1つの方法です。
ただし、fracが0から1に変わる場所では大きな勾配が得られるため、これらの場所ではGPUが非常に低い解像度のミップレベルを使用する必要があります。もちろん、状況によってはこれは問題になりません。しかし、それは潜在的な問題の1つのポイントです。
所属していません StackOverflow