Condividi tramite


ShaderEffect.DdxUvDdyUvRegisterIndex Proprietà

Definizione

Ottiene o imposta un valore che indica il registro dello shader da usare per la derivazione parziale delle coordinate della trama rispetto alle dimensioni dello schermo.

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

Valore della proprietà

Int32

Indice del registro contenente la derivazione parziale.

Eccezioni

È stato effettuato un tentativo di impostare la proprietà DdxUvDdyUvRegisterIndex più volte o successivamente all'elaborazione iniziale dell'effetto.

Commenti

Usare la DdxUvDdyUvRegisterIndex proprietà per specificare il registro shader che contiene le derivate parziali delle coordinate della trama rispetto allo spazio dello schermo. Ad esempio, se DdxUvDdyUvRegisterIndex è impostato su 4, viene usato il registro shader c4. Register c4 contiene quattro campi float. Il codice HLSL (High Level Shading Language) seguente mostra come viene usato questo registro. Il nextPixelUV valore rappresenta il pixel successivo a destra.

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

tex2D(sampler, nextPixelUV);  

Nella tabella seguente viene illustrato il modo in cui viene compilato il registro specificato per DdxUvDdyUvRegisterIndex .

Registra costante Valore derivato
componente x ddx(u)
Componente y ddx(v)
componente z ddy(u)
componente w ddy(v)

Le coordinate della trama sono indicate come (u, v). ddx(u) è la derivata parziale costante del componente u della coordinata della trama rispetto alla coordinata x dello spazio dello schermo. ddy(u) è la derivata parziale della coordinata u della trama rispetto alla coordinata y dello spazio dello schermo. Analogamente, ddx(v) e ddy(v) sono i derivati dello spazio dello schermo corrispondenti per il componente vdella coordinata della trama .

Nota

HLSL include le istruzioni ddx e ddy per calcolare questi valori, ma queste istruzioni non sono disponibili in tutti gli hardware PixelShader 2.0.

È possibile pensare a queste costanti nel modo seguente. Se passi 1 pixel a destra nello spazio dello schermo (nella direzione x), è ddx(u) la quantità che u cambia nello spazio della trama e ddx(v) corrisponde alla quantità che v cambia nello spazio della trama. Se l'effetto è allineato all'asse quando viene eseguito il rendering, ddx(v) è 0. Se l'effetto viene ruotato quando viene eseguito il rendering, è ddx(v) diverso da zero.

Si applica a

Vedi anche