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 包含四個浮點數欄位。 下列高階網底語言 (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)
是紋理座標元件 u
相對於螢幕空間 x 座標的常數部分衍生。 ddy(u)
是與螢幕空間 Y 座標相關的紋理座標 u
部分衍生。 同樣地, ddx(v)
和 ddy(v)
是紋理座標元件的對應螢幕空間衍生專案 v
。
注意
HLSL 具有 ddx 和 ddy 指示來計算這些值,但這些指示不適用於所有 PixelShader 2.0 硬體。
您可以透過下列方式來思考這些常數。 如果您在螢幕空間右側步驟 1 圖元, (x 方向) ,則 ddx(u)
為紋理空間中變更的數量 u
,而且 ddx(v)
是紋理空間中變更的數量 v
。 如果效果在轉譯時對齊座標軸,則 ddx(v)
為 0。 如果效果在轉譯時旋轉,則 ddx(v)
為非零。