Udostępnij za pośrednictwem


ShaderEffect.DdxUvDdyUvRegisterIndex Właściwość

Definicja

Pobiera lub ustawia wartość wskazującą rejestr cieniowania do użycia dla częściowych pochodnych współrzędnych tekstury w odniesieniu do przestrzeni ekranu.

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

Wartość właściwości

Int32

Indeks rejestru, który zawiera częściowe pochodne.

Wyjątki

Podjęto próbę DdxUvDdyUvRegisterIndex ustawienia właściwości więcej niż raz lub po początkowym przetworzeniu efektu.

Uwagi

DdxUvDdyUvRegisterIndex Użyj właściwości , aby określić rejestr cieniowania, który zawiera częściowe pochodne współrzędnych tekstury w odniesieniu do przestrzeni ekranu. Jeśli na przykład DdxUvDdyUvRegisterIndex ustawiono wartość 4, używany jest rejestr cieniowania c4. Rejestrowanie c4 zawiera cztery pola zmiennoprzecinkowe. Poniższy kod HLSL (High Level Shading Language) pokazuje, jak jest używany ten rejestr. Wartość nextPixelUV reprezentuje następny piksel po prawej stronie.

float4 ddxUvDdyUv : register(c4);  
SamplerState  sampler : register(S0);  
...  
float2 nextPixelUV;  
nextPixelUV.u = ddxUvDdyUv.x + u;  
nextPixelUV.v = ddxUvDdyUv.y + v;  

tex2D(sampler, nextPixelUV);  

W poniższej tabeli przedstawiono sposób wypełnienia rejestru określonego dla DdxUvDdyUvRegisterIndex .

Zarejestruj stałą Wartość pochodna
x składnik ddx(u)
Składnik y ddx(v)
składnik z ddy(u)
w składniku ddy(v)

Współrzędne tekstury są oznaczone jako (u, v). ddx(u) jest stałą częściową pochodną składnika u współrzędnych tekstury względem współrzędnych x-przestrzeni ekranu. ddy(u) jest częściową pochodną współrzędnych u tekstury względem współrzędnych współrzędnych odstępu ekranu. Podobnie ddx(v) i ddy(v) są odpowiednimi pochodnymi przestrzeni ekranu dla składnika vwspółrzędnych tekstury .

Uwaga

Program HLSL zawiera instrukcje ddx i ddy do obliczania tych wartości, ale te instrukcje nie są dostępne na wszystkich urządzeniach PixelShader 2.0.

Możesz myśleć o tych stałych w następujący sposób. Jeśli wykonasz krok 1 piksela po prawej stronie w obszarze ekranu (w kierunku x), ddx(u) to jest ilość, która u zmienia się w przestrzeni tekstury i ddx(v) jest ilością, która v zmienia się w przestrzeni tekstury. Jeśli efekt jest wyrównany do osi podczas renderowania, ddx(v) wartość to 0. Jeśli efekt jest obracany po jego renderowaniu, ddx(v) wartość nie jest zerowa.

Dotyczy

Zobacz też