ShaderEffect.DdxUvDdyUvRegisterIndex Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Obtém ou define um valor que indica o registo shader a usar para as derivadas parciais das coordenadas da textura em relação ao espaço do ecrã.
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 de Propriedade
O índice do registo que contém as derivadas parciais.
Exceções
Foi feita uma tentativa de definir a DdxUvDdyUvRegisterIndex propriedade mais do que uma vez ou após o processamento inicial do efeito.
Observações
Use a DdxUvDdyUvRegisterIndex propriedade para especificar o registo shader que contém as derivadas parciais das coordenadas da textura em relação ao espaço do ecrã. Por exemplo, se DdxUvDdyUvRegisterIndex for definido para 4, utiliza-se o registo shader c4. O registo c4 contém quatro campos float. O seguinte código High Level Shading Language (HLSL) mostra como este registo é utilizado. O nextPixelUV valor representa o pixel seguinte à 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 seguinte mostra como o registo especificado para DdxUvDdyUvRegisterIndex é preenchido.
| Constante de registo | Valor Derivado |
|---|---|
| Componente x | DDX(U) |
| Componente y | DDX(V) |
| Componente z | ddy(u) |
| Componente W | ddy(v) |
As coordenadas da textura são denotadas por (u, v).
ddx(u) é a derivada parcial constante do componente u de coordenadas de textura em relação à coordenada x do espaço de ecrã.
ddy(u) é a derivada parcial da coordenada u da textura em relação à coordenada y-space do ecrã. De forma semelhante, ddx(v) e ddy(v) são as derivadas correspondentes do espaço de ecrã para o componente vde coordenadas de textura .
Note
O HLSL tem as instruções ddx e ddy para calcular estes valores, mas estas instruções não estão disponíveis em todo o hardware PixelShader 2.0.
Pode pensar nestas constantes da seguinte forma. Se avançares 1 píxel para a direita no espaço do ecrã (na direção x), então ddx(u) é a quantidade que u muda no espaço da textura, e ddx(v) é a quantidade que v muda no espaço da textura. Se o efeito estiver alinhado com os eixos quando é renderizado, então ddx(v) é 0. Se o efeito for rodado quando é renderizado, então ddx(v) é diferente de zero.