私が理解している限り、ピクセル シェーダーはピクセル単位で動作します。しかし、導関数を計算するddx
やのような関数があります。ddy
しかし、たった 1 つのピクセル座標から導関数を計算するにはどうすればよいでしょうか?? 誰かがこれらについて私を助けることができますか? これらはまた、次のような疑問を提起します
tex.Sample(s0, t0);
サンプル関数はピクセルごとに計算されるということですか?? サンプラー命令はサブスパンごとに動作すると思いました。
例:
次の 16 ピクセルがあるとします。
* * * *
* * * *
* * * *
* * * *
そして、私のピクセルシェーダーは次のようになります:
float4 PS(PS_INPUT input) : SV_Target{
float2 derivX = ddx_fine(input.tex);
float2 derivY = ddx_fine(input.tex);
return tex.SampleGrad(s0, t0, derivX, derivY);
}
上記のコードは、ピクセル座標の 4 x 4 グリッドで何回呼び出されるでしょうか? ありがとう。