texld - ps_2_0 e para cima
Amostra uma textura em um sampler específico, usando coordenadas de textura fornecidas. Esta instrução é diferente do texld – ps_1_4 instrução usada no sombreador de pixel versão 1_4.
Sintaxe
texld dst, src0, src1 |
---|
Em que:
- dst é um registro de destino.
- src0 é um registro de origem que fornece as coordenadas de textura para o exemplo de textura.
- src1 identifica o Sampler (Direct3D 9 asm-ps) (s#), em que # especifica qual número de amostra de textura deve ser amostrado. O sampler associou a ele uma textura e um estado de amostra definido por D3DSAMPLERSTATETYPE.
ps_2_0 e ps_2_x
dst deve ser um Registro Temporário (r#) e somente a máscara .xyzw (máscara padrão) é permitida.
src0 deve ser um Registro de Coordenadas de Textura (t#) ou um Registro Temporário (r#), sem modificador ou swizzle.
src1 deve ser um Sampler (Direct3D 9 asm-ps) (s#), sem modificador ou swizzle.
Se o D3DD3DPSHADERCAPS2_0_NODEPENDENTREADLIMIT bit de limite não estiver definido (em D3DPSHADERCAPS2_0), uma instrução de textura específica (texld, texldp, texldb - ps, texldd ) poderá depender, no máximo, da terceira ordem. Uma instrução de textura dependente de primeira ordem é uma instrução de textura na qual:
- src0 é um Registro Temporário (r#).
- dst foi escrito anteriormente, agora sendo escrito novamente.
Uma instrução de textura dependente de segunda ordem é definida como uma instrução de textura que lê ou grava em um Registro Temporário (r#) cujo conteúdo, antes de executar a instrução de textura, depende (talvez indiretamente) do resultado de uma instrução de textura dependente de primeira ordem. Uma instrução de textura dependente (n)ordem deriva de uma instrução de textura (n - 1)ordem.
ps_3_0
src1 deve ser um Sampler (Direct3D 9 asm-ps) (s#), sem modificador. O Swizzle é permitido em src0 ou src1. O swizzle é aplicado às coordenadas de textura antes da pesquisa de textura.
Comentários
Esta instrução tem suporte nas seguintes versões:
Versões do sombreador de pixel | 1_1 | 1_2 | 1_3 | 1_4 | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
---|---|---|---|---|---|---|---|---|---|
texld | x | x | x | x | x |
O número de coordenadas necessárias para que src0 execute a amostra de textura depende de como src1 foi declarado, além do componente .w. Os tipos de amostragem são declarados com dcl_samplerType (sm2, sm3 - ps asm). Se src1 for declarado como um sampler 2D, src0 deverá conter coordenadas .xy; se src1 for declarado como um amostrador de cubo ou um amostrador de volume, src0 deverá conter coordenadas .xyz. A amostragem de uma textura com menos dimensões do que as presentes na coordenada de textura é permitida, pois os componentes de coordenadas de textura extra são ignorados.
Se a textura de origem contiver menos de quatro componentes, os padrões serão colocados nos componentes ausentes. Os padrões dependem do formato de textura, conforme mostrado na tabela a seguir:
Formato de textura | Valores padrão |
---|---|
D3DFMT_R5G6B5, D3DFMT_R8G8B8, D3DFMT_L8, D3DFMT_L16, D3DFMT_R3G3B2, D3DFMT_CxV8U8, D3DFMT_L6V5U5 | A = 1,0 |
D3DFMT_V8U8, D3DFMT_V16U16, D3DFMT_G16R16, D3DFMT_G16R16F, D3DFMT_G32R32F | B = A = 1,0 |
D3DFMT_A8 | R = G = B = 0,0 |
D3DFMT_R16F, D3DFMT_R32F | G = B = A = 1,0 |
Todos os formatos de profundidade/estêncil | R = B = 0,0, A = 1,0 |
Tópicos relacionados