特定のオブジェクトが特定の視点から画面上に描画されたときに生成されるピクセルに割り当てられた最小および最大のUV値を計算する必要があります。たとえば、UVマップされた立方体があり、前面のみが表示されている場合、min(UV)とmax(UV)は、表示されている面のピクセルに割り当てられた最小および最大のUV座標に設定する必要があります。
Direct3D 9シェーダー(および可能な限り最低のシェーダーモデル)を使用してこれを実行し、処理を高速化します。頂点シェーダーは、各入力頂点のUV座標を取得し、それらを変更せずにピクセルシェーダーに渡すのと同じくらい簡単です。一方、ピクセルシェーダーは、頂点シェーダーによって生成された値を取得し、これらを使用して最小および最大のUV値を計算する必要があります。
私が知りたいのは:
- ピクセルシェーダーの呼び出し間で状態(現在の最小値と最大値)を維持するにはどうすればよいですか?
- シェーダーによって生成された最終的な最小値と最大値をプログラムに取り込むにはどうすればよいですか?
HLSLでこれを行う方法はありますか、それとも私は手作業でそれを行うのに行き詰まっていますか?HLSLが機能しない場合、シェーダーを使用せずにこれを行うための最も効率的な方法は何でしょうか。