次の方法で共有


ShaderEffect.DdxUvDdyUvRegisterIndex プロパティ

定義

画面空間に対するテクスチャ座標の偏導関数で使用するシェーダー レジスタを示す値を取得または設定します。

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

プロパティ値

Int32

偏導関数を格納するレジスタのインデックス。

例外

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 以外になります。

適用対象

こちらもご覧ください