Partilhar via


ShaderEffect.DdxUvDdyUvRegisterIndex Propriedade

Definição

Obtém ou define um valor que indica o registro do sombreador a ser usado para as derivativas parciais das coordenadas de textura em relação ao espaço da tela.

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

Valor da propriedade

Int32

O índice do registro que contém os derivativos parciais.

Exceções

Foi feita uma tentativa de definir a propriedade DdxUvDdyUvRegisterIndex mais de uma vez ou após o processamento inicial do efeito.

Comentários

Use a DdxUvDdyUvRegisterIndex propriedade para especificar o registro de sombreador que contém os derivados parciais das coordenadas de textura em relação ao espaço de tela. Por exemplo, se DdxUvDdyUvRegisterIndex estiver definido como 4, o registro do sombreador c4 será usado. O registro c4 contém quatro campos flutuantes. O código HLSL (Linguagem de Sombreamento de Alto Nível) a seguir mostra como esse registro é usado. O nextPixelUV valor representa o próximo pixel à direita.

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

tex2D(sampler, nextPixelUV);  

A tabela a seguir mostra como o registro especificado DdxUvDdyUvRegisterIndex é preenchido.

Registrar constante Valor derivado
componente x ddx(u)
componente y ddx(v)
componente z ddy(u)
w componente ddy(v)

As coordenadas de textura são indicadas como (u, v). ddx(u) é a derivada parcial constante do componente u de coordenada de textura em relação à coordenada x de espaço de tela. ddy(u) é a derivada parcial da coordenada u de textura em relação à coordenada y de espaço de tela. Da mesma forma, ddx(v) e ddy(v) são os derivados de espaço de tela correspondentes para o componente vde coordenada de textura.

Observação

O HLSL tem as instruções ddx e ddy para calcular esses valores, mas essas instruções não estão disponíveis em todo o hardware PixelShader 2.0.

Você pode pensar nessas constantes da maneira a seguir. Se você pisa 1 pixel à direita no espaço da tela (na direção x), ddx(u) é a quantidade que u muda no espaço de textura e ddx(v) é a quantidade que v muda no espaço de textura. Se o efeito for alinhado ao eixo quando ele for renderizado, será ddx(v) 0. Se o efeito for girado quando ele for renderizado, não ddx(v) será zero.

Aplica-se a

Confira também