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.
Tópicos relacionados