ShaderEffect.DdxUvDdyUvRegisterIndex プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
画面空間に対するテクスチャ座標の偏導関数で使用するシェーダー レジスタを示す値を取得または設定します。
protected:
property int DdxUvDdyUvRegisterIndex { int get(); void set(int value); };
protected int DdxUvDdyUvRegisterIndex { get; set; }
member this.DdxUvDdyUvRegisterIndex : int with get, set
Protected Property DdxUvDdyUvRegisterIndex As Integer
プロパティ値
偏導関数を格納するレジスタのインデックス。
例外
DdxUvDdyUvRegisterIndex プロパティを、複数回、または効果の初期処理終了後に設定しようとしました。
注釈
このプロパティを DdxUvDdyUvRegisterIndex 使用して、画面空間に関するテクスチャ座標の部分的な派生物を含むシェーダー レジスタを指定します。 たとえば、 DdxUvDdyUvRegisterIndex 4 に設定すると、シェーダー レジスタ c4 が使用されます。 レジスタ c4 には、4 つの float フィールドが含まれています。 次の高レベル シェーディング言語 (HLSL) コードは、このレジスタの使用方法を示しています。 値は nextPixelUV
、右側の次のピクセルを表します。
float4 ddxUvDdyUv : register(c4);
SamplerState sampler : register(S0);
...
float2 nextPixelUV;
nextPixelUV.u = ddxUvDdyUv.x + u;
nextPixelUV.v = ddxUvDdyUv.y + v;
tex2D(sampler, nextPixelUV);
次の表は、指定されたレジスタの入力方法を DdxUvDdyUvRegisterIndex 示しています。
レジスタ定数 | 派生値 |
---|---|
x コンポーネント | ddx(u) |
y コンポーネント | ddx(v) |
z コンポーネント | ddy(u) |
w コンポーネント | ddy(v) |
テクスチャ座標は次のように (u, v)
示されます。 ddx(u)
は、画面空間 x 座標に対するテクスチャ座標コンポーネント u
の一定部分派生関数です。 ddy(u)
は、画面空間 y 座標に対するテクスチャ座標 u
の部分派生物です。 同様に、 ddx(v)
ddy(v)
テクスチャ座標成分に対応する画面空間派生物 v
である。
注意
HLSL には、これらの値を計算するための ddx 命令と ddy 命令がありますが、これらの命令はすべての PixelShader 2.0 ハードウェアで使用できるわけではありません。
これらの定数は次のように考えるかもしれません。 画面空間 (x 方向) ddx(u)
で 1 ピクセル右にステップすると、テクスチャ空間で変化する u
量と ddx(v)
、テクスチャ空間で変化する v
量になります。 レンダリング時に効果が軸揃えの場合、 ddx(v)
0 になります。 レンダリング時に効果が回転する場合は、 ddx(v)
0 以外になります。