texld: ps_2_0 y arriba

Muestree una textura en un sampler determinado mediante coordenadas de textura proporcionadas. Esta instrucción es diferente de la instrucción texld: ps_1_4 que se usa en la versión 1_4 del sombreador de píxeles.

Sintaxis

texld dst, src0, src1

 

Donde:

  • dst es un registro de destino.
  • src0 es un registro de origen que proporciona las coordenadas de textura para el ejemplo de textura.
  • src1 identifica el sampler (Direct3D 9 asm-ps) (s#), donde # especifica qué número de muestra de textura se va a muestrear. El sampler se ha asociado a ella una textura y un estado de muestreo definido por D3DSAMPLERSTATETYPE.

ps_2_0 y ps_2_x

dst debe ser un registro temporal (r#) y solo se permite la máscara .xyzw (máscara predeterminada).

src0 debe ser un registro de coordenadas de textura (t#) o un registro temporal (r#), sin ningún modificador ni swizzle.

src1 debe ser un Sampler (Direct3D 9 asm-ps) (s#), sin modificador ni swizzle.

Si el bit de límite de D3DD3DPSHADERCAPS2_0_NODEPENDENTREADLIMIT no se establece (en D3DPSHADERCAPS2_0), una instrucción de textura determinada (texld, texldp, texldb - ps, texldd ) puede depender, como máximo, de un tercer orden. Una instrucción de textura dependiente del primer orden es una instrucción de textura en la que:

  • src0 es un registro temporal (r#).
  • dst se escribió anteriormente y ahora se vuelve a escribir.

Una instrucción de textura dependiente del segundo orden se define como una instrucción de textura que lee o escribe en un registro temporal (r#) cuyo contenido, antes de ejecutar la instrucción de textura, depende (quizás indirectamente) del resultado de una instrucción de textura dependiente del primer orden. Una instrucción de textura dependiente del orden (n)th deriva de una instrucción de textura de orden ésimo (n - 1).

ps_3_0

src1 debe ser un Sampler (Direct3D 9 asm-ps) (s#), sin ningún modificador. Swizzle se permite en src0 o src1. El swizzle se aplica a las coordenadas de textura antes de la búsqueda de texturas.

Comentarios

Esta instrucción se admite en las siguientes versiones:

Versiones del sombreador de píxeles 1_1 1_2 1_3 1_4 2_0 2_x 2_sw 3_0 3_sw
texld x x x x x

 

El número de coordenadas necesarias para que src0 realice la muestra de textura depende de cómo se declaró src1, además del componente .w. Los tipos de sampler se declaran con dcl_samplerType (sm2, sm3 - ps asm). Si src1 se declara como un sampler 2D, src0 debe contener coordenadas .xy; Si src1 se declara como un sampler de cubo o un sampler de volumen, src0 debe contener coordenadas .xyz. Se permite el muestreo de una textura con menos dimensiones de las que están presentes en la coordenada de textura, ya que se omiten los componentes de coordenadas de textura adicionales.

Si la textura de origen contiene menos de cuatro componentes, los valores predeterminados se colocan en los componentes que faltan. Los valores predeterminados dependen del formato de textura, como se muestra en la tabla siguiente:

Formato de textura Valores predeterminados
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 los formatos de galería de símbolos y profundidad R = B = 0,0, A = 1,0

 

Instrucciones del sombreador de píxeles