ShaderEffect.DdxUvDdyUvRegisterIndex Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
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 v
de 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.