Sampler (Direct3D 9 asm-ps)

Um sampler é um pseudo-registro de entrada para um sombreador de pixel, que é usado para identificar o estágio de amostragem. Há registros de estágio de amostragem de sombreador de 16 pixels: s0 a s15. Portanto, até 16 superfícies de textura podem ser lidas em uma única passagem de sombreador. As instruções que usam um registro de amostra são texld e texldp.

O sampler deve ser declarado antes do uso com a instrução dcl_samplerType (sm2, sm3 - ps asm).

Versões do sombreador de pixel 1_1 1_2 1_3 1_4 2_0 2_sw 2_x 3_0 3_sw
Exemplo x x x x x

 

Exemplos são pseudo-registros porque você não pode ler ou gravar diretamente neles.

Uma unidade de amostragem corresponde ao estágio de amostragem de textura, encapsulando o estado específico da amostragem fornecido por SetSamplerState. Cada amostrador identifica exclusivamente uma única superfície de textura, que é definida como o sampler correspondente usando SetTexture. No entanto, a mesma superfície de textura pode ser definida em vários samplers.

No momento do desenho, uma textura não pode ser definida simultaneamente como um destino de renderização e uma textura em um estágio.

Um sampler pode aparecer como o único argumento na instrução de carga de textura: texldl - ps.

Em ps_3_0, se um sampler for usado, ele precisará ser declarado no início do programa de sombreador usando a instrução dcl_samplerType (sm2, sm3 - ps asm).

A amostragem de uma textura com uma dimensão maior do que a presente nas coordenadas de textura é inválida. A amostragem de uma textura com uma dimensão inferior à presente nas coordenadas de textura ignorará as coordenadas de textura extras.

Registros