Partilhar via


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

 

Instruções de sombreador de pixel