Share via


enumeración D3DSHADER_INSTRUCTION_OPCODE_TYPE (d3d9types.h)

En esta sección se enumeran los códigos de operación del sombreador que se pueden contener en los primeros 16 bits (0 - 15) de un token de instrucción. Las secciones siguientes describen el formato de token de las instrucciones que corresponden a los códigos de operación.

Syntax

typedef enum _D3DSHADER_INSTRUCTION_OPCODE_TYPE {
  D3DSIO_NOP,
  D3DSIO_MOV,
  D3DSIO_ADD,
  D3DSIO_SUB,
  D3DSIO_MAD,
  D3DSIO_MUL,
  D3DSIO_RCP,
  D3DSIO_RSQ,
  D3DSIO_DP3,
  D3DSIO_DP4,
  D3DSIO_MIN,
  D3DSIO_MAX,
  D3DSIO_SLT,
  D3DSIO_SGE,
  D3DSIO_EXP,
  D3DSIO_LOG,
  D3DSIO_LIT,
  D3DSIO_DST,
  D3DSIO_LRP,
  D3DSIO_FRC,
  D3DSIO_M4x4,
  D3DSIO_M4x3,
  D3DSIO_M3x4,
  D3DSIO_M3x3,
  D3DSIO_M3x2,
  D3DSIO_CALL,
  D3DSIO_CALLNZ,
  D3DSIO_LOOP,
  D3DSIO_RET,
  D3DSIO_ENDLOOP,
  D3DSIO_LABEL,
  D3DSIO_DCL,
  D3DSIO_POW,
  D3DSIO_CRS,
  D3DSIO_SGN,
  D3DSIO_ABS,
  D3DSIO_NRM,
  D3DSIO_SINCOS,
  D3DSIO_REP,
  D3DSIO_ENDREP,
  D3DSIO_IF,
  D3DSIO_IFC,
  D3DSIO_ELSE,
  D3DSIO_ENDIF,
  D3DSIO_BREAK,
  D3DSIO_BREAKC,
  D3DSIO_MOVA,
  D3DSIO_DEFB,
  D3DSIO_DEFI,
  D3DSIO_TEXCOORD,
  D3DSIO_TEXKILL,
  D3DSIO_TEX,
  D3DSIO_TEXBEM,
  D3DSIO_TEXBEML,
  D3DSIO_TEXREG2AR,
  D3DSIO_TEXREG2GB,
  D3DSIO_TEXM3x2PAD,
  D3DSIO_TEXM3x2TEX,
  D3DSIO_TEXM3x3PAD,
  D3DSIO_TEXM3x3TEX,
  D3DSIO_RESERVED0,
  D3DSIO_TEXM3x3SPEC,
  D3DSIO_TEXM3x3VSPEC,
  D3DSIO_EXPP,
  D3DSIO_LOGP,
  D3DSIO_CND,
  D3DSIO_DEF,
  D3DSIO_TEXREG2RGB,
  D3DSIO_TEXDP3TEX,
  D3DSIO_TEXM3x2DEPTH,
  D3DSIO_TEXDP3,
  D3DSIO_TEXM3x3,
  D3DSIO_TEXDEPTH,
  D3DSIO_CMP,
  D3DSIO_BEM,
  D3DSIO_DP2ADD,
  D3DSIO_DSX,
  D3DSIO_DSY,
  D3DSIO_TEXLDD,
  D3DSIO_SETP,
  D3DSIO_TEXLDL,
  D3DSIO_BREAKP,
  D3DSIO_PHASE,
  D3DSIO_COMMENT,
  D3DSIO_END,
  D3DSIO_FORCE_DWORD
} D3DSHADER_INSTRUCTION_OPCODE_TYPE;

Constantes

 
D3DSIO_NOP
La instrucción NOP realiza una operación sin operación o ninguna.


Formato

token de instrucción que contiene D3DSIO_NOP.
D3DSIO_MOV
La instrucción MOV mueve datos entre registros.


Formato

token de instrucción que contiene D3DSIO_MOV. La longitud de la instrucción es 2.

token de parámetro de destino.

token de parámetro de origen.


Comentarios

Se puede usar para los datos de punto flotante y para actualizar los registros de direcciones. Cuando se usa para actualizar los registros de direcciones, los valores se convierten de punto flotante mediante redondeo a más cercano.
D3DSIO_ADD
La instrucción ADD agrega dos vectores de origen y almacena el resultado en el destino.


Formato

token de instrucción que contiene D3DSIO_ADD.

token de parámetro de destino.

primer token de parámetro de origen.

segundo token de parámetro de origen.
D3DSIO_SUB
La instrucción SUB resta dos vectores de origen y almacena el resultado en el destino.


Formato

token de instrucción que contiene D3DSIO_SUB. La longitud de la instrucción es 3.

token de parámetro de destino.

primer token de parámetro de origen.

segundo token de parámetro de origen.
D3DSIO_MAD
La instrucción MAD multiplica los orígenes primero y segundo y agrega el tercer origen.


Formato

token de instrucción que contiene D3DSIO_MAD. La longitud de la instrucción es 4.

token de parámetro de destino.

primer token de parámetro de origen.

segundo token de parámetro de origen.

tercer token de parámetro de origen.
D3DSIO_MUL
La instrucción MUL multiplica dos vectores de origen y almacena el resultado en el destino.


Formato

token de instrucción que contiene D3DSIO_MUL. La longitud de la instrucción es 3.

token de parámetro de destino.

primer token de parámetro de origen.

segundo token de parámetro de origen.
D3DSIO_RCP
La instrucción RCP calcula la recíproca del origen y almacena el resultado en el destino.


Formato

token de instrucción que contiene D3DSIO_RCP. La longitud de la instrucción es 2.

token de parámetro de destino.

token de parámetro de origen. Requiere el uso explícito de replicación de swizzle, es decir, se debe especificar el componente X, Y, Z o W swizzle (o R, G, B o A equivalente).
D3DSIO_RSQ
La instrucción RSQ calcula la raíz cuadrada recíproca del origen y almacena el resultado en el destino.


Formato

token de instrucción que contiene D3DSIO_RSQ. La longitud de la instrucción es 2.

token de parámetro de destino.

token de parámetro de origen. Requiere el uso explícito de replicación de swizzle, es decir, se debe especificar el componente X, Y, Z o W swizzle (o R, G, B o A equivalente).
D3DSIO_DP3
La instrucción DP3 calcula el producto de punto de tres componentes (RGB) de los registros de origen y almacena el resultado en el destino.


Formato

token de instrucción que contiene D3DSIO_DP3. La longitud de la instrucción es 3.

token de parámetro de destino.

primer token de parámetro de origen.

segundo token de parámetro de origen.
D3DSIO_DP4
La instrucción DP4 calcula el producto de punto de cuatro componentes (RGBA) de los registros de origen y almacena el resultado en el destino.


Formato

token de instrucción que contiene D3DSIO_DP4. La longitud de la instrucción es 3.

token de parámetro de destino.

primer token de parámetro de origen.

segundo token de parámetro de origen.
D3DSIO_MIN
La instrucción MIN determina el mínimo de los orígenes y almacena el origen mínimo en el destino.


Formato

token de instrucción que contiene D3DSIO_MIN. La longitud de la instrucción es 3.

token de parámetro de destino.

primer token de parámetro de origen.

segundo token de parámetro de origen.
D3DSIO_MAX
La instrucción MAX determina el máximo de los orígenes y almacena el origen máximo en el destino.


Formato

token de instrucción que contiene D3DSIO_MAX. La longitud de la instrucción es 3.

token de parámetro de destino.

primer token de parámetro de origen.

segundo token de parámetro de origen.
D3DSIO_SLT
La instrucción SLT determina si el primer origen es menor que el segundo origen y almacena el signo (1,0f para TRUE y 0,0f para FALSE) en el destino.


Formato

token de instrucción que contiene D3DSIO_SLT. La longitud de la instrucción es 3.

token de parámetro de destino.

primer token de parámetro de origen.

segundo token de parámetro de origen.
D3DSIO_SGE
La instrucción SGE determina si el primer origen es mayor o igual que el segundo origen y almacena el signo (1,0f para TRUE y 0,0f para FALSE) en el destino.


Formato

token de instrucción que contiene D3DSIO_SGE. La longitud de la instrucción es 3.

token de parámetro de destino.

primer token de parámetro de origen.

segundo token de parámetro de origen.
D3DSIO_EXP
La instrucción EXP proporciona una precisión completa exponencial 2x.


Formato

token de instrucción que contiene D3DSIO_EXP. La longitud de la instrucción es 2.

token de parámetro de destino.

token de parámetro de origen. Requiere el uso explícito de replicación de swizzle, es decir, se debe especificar el componente X, Y, Z o W swizzle (o R, G, B o A equivalente).


Comentarios

La instrucción EXP proporciona al menos 21 bits de precisión.
D3DSIO_LOG
La instrucción LOG calcula el registro de precisión completa LOG(x).


Formato

token de instrucción que contiene D3DSIO_LOG. La longitud de la instrucción es 2.

token de parámetro de destino.

token de parámetro de origen. El token de parámetro de origen requiere el uso explícito de swizzle de replicación, es decir, el componente X, Y, Z o W swizzle (o el componente R, G, B o A equivalente) se deben especificar.


Comentarios

La instrucción LOG proporciona al menos 21 bits de precisión.
D3DSIO_LIT
La instrucción LIT proporciona compatibilidad parcial para la iluminación mediante el cálculo de coeficientes de iluminación de dos productos de puntos y un exponente.


Formato

token de instrucción que contiene D3DSIO_LIT. La longitud de la instrucción es 2.

token de parámetro de destino.

token de parámetro de origen.


Comentarios

La aritmética de precisión reducida es aceptable para evaluar el componente Y de destino (en máscara de escritura). Una implementación debe admitir al menos ocho bits de fracción en el argumento power. Los productos de puntos se calculan con vectores normalizados y los límites de restricción son de -128 a 128. El error debe corresponder a una combinación de LOGP y EXPP , o no más de un bit menos significativo (LSB) para un componente de color de 8 bits.
D3DSIO_DST
La instrucción DST calcula un vector de distancia y almacena el resultado en el destino.


Formato

token de instrucción que contiene D3DSIO_DST. La longitud de la instrucción es 3.

token de parámetro de destino.

primer token de parámetro de origen.

segundo token de parámetro de origen.
D3DSIO_LRP
La instrucción LRP interpola linealmente entre la segunda y la tercera fuente por una proporción especificada en el primer origen y almacena el resultado en el destino.


Formato

token de instrucción que contiene D3DSIO_LRP. La longitud de la instrucción es 4.

token de parámetro de destino.

primer token de parámetro de origen.

segundo token de parámetro de origen.

tercer token de parámetro de origen


Comentarios

La instrucción LRP se puede usar con datos de punto flotante o datos enteros.

Cuando se usa la instrucción LRP para actualizar los registros enteros, los valores se convierten de punto flotante mediante redondeo al entero más cercano.

La instrucción LRP debe usarse para actualizar los registros de direcciones.
D3DSIO_FRC
La instrucción FRC devuelve la parte fraccionarcional de cada componente de entrada.


Formato

token de instrucción que contiene D3DSIO_FRC. La longitud de la instrucción es 2.

token de parámetro de destino.

token de parámetro de origen.


Comentarios

Cada componente del resultado está comprendido entre 0,0 y 1,0.

Para la versión de vértice o píxel versión 1_1, las máscaras de escritura permitidas son Y y XY (no se permite X).
D3DSIO_M4x4
La instrucción M4x4 calcula el producto de un vector de 4 componentes y una matriz 4x4, y almacena el resultado en el destino.


Formato

token de instrucción que contiene D3DSIO_M4x4. La longitud de la instrucción es 3.

token de parámetro de destino. Se requiere la máscara XYZW.

primer token de parámetro de origen.

segundo token de parámetro de origen. Los componentes de Swizzle y los modificadores negate no son válidos.
D3DSIO_M4x3
La instrucción M4x3 calcula el producto de un vector de 4 componentes y una matriz 4x3, y almacena el resultado en el destino.


Formato

token de instrucción que contiene D3DSIO_M4x3. La longitud de la instrucción es 3.

token de parámetro de destino. Se requiere la máscara XYZ.

primer token de parámetro de origen.

segundo token de parámetro de origen. Los componentes de Swizzle y los modificadores negate no son válidos.
D3DSIO_M3x4
La instrucción M3x4 calcula el producto de un vector de 3 componentes y una matriz 3x4, y almacena el resultado en el destino.


Formato

token de instrucción que contiene D3DSIO_M3x4. La longitud de la instrucción es 3.

token de parámetro de destino. Se requiere la máscara XYZW.

primer token de parámetro de origen.

segundo token de parámetro de origen. Los componentes de Swizzle y los modificadores negate no son válidos.
D3DSIO_M3x3
La instrucción M3x3 calcula el producto de un vector de 3 componentes y una matriz 3x3, y almacena el resultado en el destino.


Formato

token de instrucción que contiene D3DSIO_M3x3. La longitud de la instrucción es 3.

token de parámetro de destino. Se requiere la máscara XYZ.

primer token de parámetro de origen.

segundo token de parámetro de origen. Los componentes de Swizzle y los modificadores negate no son válidos.
D3DSIO_M3x2
La instrucción M3x2 calcula el producto de un vector de 3 componentes y una matriz 3x2, y almacena el resultado en el destino.


Formato

token de instrucción que contiene D3DSIO_M3x2. La longitud de la instrucción es 3.

token de parámetro de destino. Se requiere la máscara XY.

primer token de parámetro de origen.

segundo token de parámetro de origen. Los componentes de Swizzle y los modificadores negate no son válidos.
D3DSIO_CALL
La instrucción CALL realiza una llamada de función a la instrucción marcada con el índice de etiqueta proporcionado.


Formato

token de instrucción que contiene D3DSIO_CALL.

token de etiqueta (token de parámetro de origen mediante el tipo de registro D3DSPR_LABEL).
D3DSIO_CALLNZ
La instrucción CALLNZ realiza una llamada condicional (si no es cero) a la instrucción marcada por el índice de etiqueta.


Formato

token de instrucción que contiene D3DSIO_CALLNZ.

token de etiqueta (token de parámetro de origen mediante el tipo de registro D3DSPR_LABEL).

token de parámetro de origen mediante el tipo de registro D3DSPR_CONSTBOOL.
D3DSIO_LOOP
La instrucción LOOP inicia un LOOP... Bloque ENDLOOP .


Formato

token de instrucción que contiene D3DSIO_LOOP.

primer token de parámetro de origen mediante el tipo de registro D3DSPR_LOOP. El componente X especifica el recuento de iteraciones; el componente Y especifica el valor inicial del registro del contador de bucle actual; y el componente Z especifica el incremento del registro del contador de bucle actual. Este registro requiere un uso explícito de la replicación de swizzle, es decir, . Se deben especificar máscaras de componenteS XYZW (RGBA).


Comentarios

Solo se pueden usar registros enteros en la instrucción LOOP. La instrucción LOOP se proporciona para la iteración y admite un registro de contadores de bucles incrementados automáticamente que se puede usar para indexar la matriz de constantes. Cuando se anida, cada vez que se usa el registro del contador de bucles, hace referencia al bucle actual.
D3DSIO_RET
La instrucción RET devuelve de una subrutina o marca el final de la función principal.


Formato

token de instrucción que contiene D3DSIO_RET.


Comentarios

Si un sombreador no contiene subrutinas, el uso de RET al final del programa principal es opcional.
D3DSIO_ENDLOOP
La instrucción ENDLOOP marca el final de un bloque LOOP.


Formato

token de instrucción que contiene D3DSIO_ENDLOOP.
D3DSIO_LABEL
La instrucción LABEL marca la siguiente instrucción con un índice de etiqueta.


Formato

token de instrucción que contiene D3DSIO_LABEL.

token de parámetro de origen mediante el tipo de registro D3DSPR_LABEL y un número de registro.
D3DSIO_DCL
Especifica el token de instrucción dcL.
D3DSIO_POW
La instrucción POW calcula la precisión completa (primer origen)segundo origen y almacena el resultado en el destino.


Formato

token de instrucción que contiene D3DSIO_POW. La longitud de la instrucción es 3.

token de parámetro de destino.

primer token de parámetro de origen.

segundo token de parámetro de origen.


Comentarios

Ambos orígenes requieren el uso explícito de swizzle de replicación, es decir, el componente X, Y, Z o W swizzle (o el componente R, G, B o A equivalente) deben especificarse.

La instrucción POW proporciona al menos 15 bits de precisión.
D3DSIO_CRS
La instrucción CRS calcula un producto cruzado mediante la regla de la derecha.


Formato

token de instrucción que contiene D3DSIO_CRS.

token de parámetro de destino.

primer token de parámetro de origen.

segundo token de parámetro de origen.
D3DSIO_SGN
La instrucción SGN determina el signo del origen y almacena el signo (-1 para negativo, 0 para 0 y 1 para positivo) en el destino.


Formato

token de instrucción que contiene D3DSIO_SGN. La longitud de la instrucción es 4.

token de parámetro de destino.

primer token de parámetro de origen.

segundo token de parámetro de origen mediante el tipo de registro D3DSPR_TEMP.

tercer token de parámetro de origen mediante el tipo de registro D3DSPR_TEMP.


Comentarios

Los orígenes segundo y tercero podrían usarse como registros temporales.
D3DSIO_ABS
La instrucción ABS calcula el valor absoluto del origen y almacena el resultado en el destino.


Formato

token de instrucción que contiene D3DSIO_ABS.

token de parámetro de destino.

token de parámetro de origen.
D3DSIO_NRM
La instrucción NRM normaliza un vector 4D.


Formato

token de instrucción que contiene D3DSIO_NRM. La longitud de la instrucción es 2.

token de parámetro de destino.

token de parámetro de origen.
D3DSIO_SINCOS
La instrucción SINCOS calcula el seno y el coseno del origen.
D3DSIO_REP
La instrucción REP inicia un REPEAT... Bloque ENDREP .


Formato

token de instrucción que contiene D3DSIO_REP.

token de parámetro de origen mediante el tipo de registro D3DSPR_CONSTINT. El componente X especifica el recuento de iteraciones.


Comentarios

Solo se pueden usar registros enteros en la instrucción REP .
D3DSIO_ENDREP
La instrucción ENDREP marca el final de un bloque REP .


Formato

token de instrucción que contiene D3DSIO_ENDREP.
D3DSIO_IF
La instrucción IF inicia un bloque IF.


Formato

token de instrucción que contiene D3DSIO_IF.

token de parámetro de origen mediante el tipo de registro D3DSPR_CONSTBOOL.


Comentarios

Si el registro booleano de origen es TRUE, se ejecuta el código incluido en la instrucción IF y la instrucciónELSE coincidente (o ENDIF si no se usa ELSE); de lo contrario, la ejecución pasa al código incluido en las instrucciones ELSE-ENDIF (ELSE existe) o fuera del bloque IF (ELSE no existe).
D3DSIO_IFC
La instrucción IFC inicia un bloque IF con una comparación.


Formato

token de instrucción que contiene D3DSIO_IFC.

primer token de parámetro de origen.

segundo token de parámetro de origen.


Comentarios

La instrucción IFC omite un bloque de código, en función de la comparación entre orígenes.

Ambos orígenes requieren el uso explícito de swizzle de replicación, es decir, el componente X, Y, Z o W swizzle (o el componente R, G, B o A equivalente) deben especificarse.

Si la comparación entre todos los componentes de origen es TRUE, se ejecuta el código incluido en la instrucción IF y la instrucción ELSE coincidente (o instrucción ENDIF si no se usa ELSE ); de lo contrario, la ejecución pasa al código incluido en las instrucciones ELSE-ENDIF (ELSE existe) o fuera del bloque IF (ELSE no existe).
D3DSIO_ELSE
La instrucción ELSE inicia un bloque ELSE.


Formato

token de instrucción que contiene D3DSIO_ELSE.


Comentarios

Si el registro booleano de origen en la instrucción IF correspondiente es true, el código que se incluye en if y el ELSE coincidente se ejecuta; de lo contrario, la ejecución pasa al código que se incluye en las instrucciones ELSE y ENDIF .
D3DSIO_ENDIF
La instrucción ENDIF finaliza un IF... BLOQUE ELSE .


Formato

token de instrucción que contiene D3DSIO_ENDIF.
D3DSIO_BREAK
La instrucción BREAK se interrumpe del bucle actual en el endloop o endrep más cercano.


Formato

token de instrucción que contiene D3DSIO_BREAK.
D3DSIO_BREAKC
La instrucción BREAKC se divide en el bucle actual en el endloop o endrep más cercano, en función de los criterios de comparación entre dos orígenes.


Formato

token de instrucción que contiene D3DSIO_BREAKC.

primer token de parámetro de origen.

segundo token de parámetro de origen.
D3DSIO_MOVA
La instrucción MOVA mueve los datos del registro de punto flotante al registro entero.


Formato

token de instrucción que contiene D3DSIO_MOVA. La longitud de la instrucción es 2.

token de parámetro de destino.

token de parámetro de origen.


Comentarios

Los valores se convierten de punto flotante mediante redondeo al más cercano.

El registro de direcciones es el único registro de destino permitido.
D3DSIO_DEFB
La instrucción DEFB define un valor constante booleano, que se debe cargar cada vez que un sombreador se establece en un dispositivo. Esta instrucción se puede usar en el sombreador de vértices 2_0 y versiones posteriores. Las constantes booleanas establecidas por el sombreador de vértices actual tienen prioridad sobre las constantes establecidas por la operación de D3DDP2OP_SETVERTEXSHADERCONSTB.


Formato

token de instrucción que contiene D3DSIO_DEFB. La longitud de la instrucción es 2.

token de parámetro de destino. El tipo de registro debe ser D3DSPR_CONSTBOOL.

El token DWORD contiene el valor booleano, donde distinto de cero indica TRUE; cero indica FALSE.
D3DSIO_DEFI
La instrucción DEFI define un valor constante entero, que se debe cargar cada vez que un sombreador se establece en un dispositivo. Las constantes establecidas por el sombreador de vértices actual tienen prioridad sobre las constantes establecidas por la operación de D3DDP2OP_SETVERTEXSHADERCONSTI.


Formato

token de instrucción que contiene D3DSIO_DEFI. La longitud de la instrucción es 5.

token de parámetro de destino. El tipo de registro debe ser D3DSPR_CONSTINT.

4 El token DWORD contiene cuatro enteros con signo de 32 bits.
D3DSIO_TEXCOORD
La instrucción TEXCOORD copia los datos de coordenadas de textura (UVW1) como datos de color (RGBA).


Formato

token de instrucción que contiene D3DSIO_TEXCOORD.

token de parámetro de destino.

token de parámetro de origen. El token de parámetro de origen es solo para la versión 1_4 del sombreador de píxeles.


Comentarios

Las instrucciones del ensamblador texcoord y texcrd usan el código de operación de D3DSIO_TEXCOORD.

La instrucción texcoord se aplica a las versiones del sombreador de píxeles 1_0 a 1_3; tiene un token de parámetro de destino y ningún token de parámetro de origen asociado a él.

La instrucción texcrd se aplica a la versión 1_4 del sombreador de píxeles; tiene un token de parámetro de destino y un token de parámetro de origen asociado.
D3DSIO_TEXKILL
La instrucción TEXKILL cancela la representación del píxel actual si alguno de los tres primeros componentes (UVW) de las coordenadas de textura es menor que cero.


Formato

token de instrucción que contiene D3DSIO_TEXKILL.

token de parámetro de destino (se comporta de forma similar a un token de origen).


Comentarios

Si alguno de los componentes del token de destino es menor que cero, finalice el sombreador de píxeles y descarte las salidas.


Las siguientes características se aplican al token de destino:

  • Se debe usar un tipo de registro temporal (D3DSPR_TEMP) o textura (D3DSPR_TEXTURE).

  • Si se usa un registro temporal, todos los componentes deben haberse escrito previamente.

  • Si se usa un registro de textura, se deben declarar todos los componentes que se leen.

  • Se debe especificar una máscara de escritura completa.

D3DSIO_TEX
La instrucción TEX carga el destino con datos de color (RGBA) que se muestrea a partir de la textura de origen.


Formato

token de instrucción que contiene D3DSIO_TEX.

token de parámetro de destino mediante el tipo de registro D3DSPR_PREDICATE.

Los siguientes tokens de origen son solo para la versión 1_4 del sombreador de píxeles y versiones posteriores:

: el primer token de parámetro de origen proporciona las coordenadas de textura para el ejemplo de textura.

: segundo token de parámetro de origen mediante el tipo de registro D3DSPR_SAMPLER. El segundo token de parámetro de origen identifica el número del sampler de textura que se va a muestrear.


Comentarios

Las instrucciones del ensamblador tex y texld usan el código de operación de D3DSIO_TEX.

La instrucción tex se aplica a las versiones del sombreador de píxeles 1_0 a 1_3; tiene un token de parámetro de destino y ningún token de parámetro de origen asociado a él.

La instrucción texld se aplica a la versión 1_4 del sombreador de píxeles y versiones posteriores; tiene un token de parámetro de destino y dos tokens de parámetro de origen asociados.
D3DSIO_TEXBEM
La instrucción TEXBEM aplica una transformación de mapa de entorno de aumento mediante la modificación de los datos de dirección de textura del registro de destino, mediante los datos de perturbación de direcciones (U,V) y una matriz de entorno de parachoques 2D.


Formato

token de instrucción que contiene D3DSIO_TEXBEM.

token de parámetro de destino.

token de parámetro de origen.
D3DSIO_TEXBEML
La instrucción TEXBEML aplica una transformación de mapa del entorno con corrección de luminancia.


Formato

token de instrucción que contiene D3DSIO_TEXBEML.

token de parámetro de destino.

token de parámetro de origen.


Comentarios

La transformación de mapa del entorno de aumento con corrección de luminancia se logra modificando los datos de dirección de textura del registro de destino, utilizando los datos de perturbación de direcciones (U.V), una matriz de entorno de golpes 2D y la luminancia.
D3DSIO_TEXREG2AR
La instrucción TEXREG2AR interpreta los componentes de color alfa y rojo del origen como datos de dirección de textura (U,V) para muestrear la textura en la fase correspondiente al número de registro de destino. El resultado se almacena en el destino.


Formato

token de instrucción que contiene D3DSIO_TEXREG2AR.

token de parámetro de destino.

token de parámetro de origen.


Comentarios

La instrucción TEXREG2AR es útil para las operaciones de reasignación de espacio de colores. Admite coordenadas bidimensionales (2D).

El registro de origen debe usar datos sin firmar; Si el registro de origen usa datos firmados o mixtos, la operación genera resultados no válidos.
D3DSIO_TEXREG2GB
La instrucción TEXREG2GB interpreta los componentes de color verde y azul del origen como datos de dirección de textura (U,V) para muestrear la textura en la fase correspondiente al número de registro de destino. El resultado se almacena en el destino.


Formato

token de instrucción que contiene D3DSIO_TEXREG2GB.

token de parámetro de destino.

token de parámetro de origen.


Comentarios

La instrucción TEXREG2GB es útil para las operaciones de reasignación de espacio de colores. Admite coordenadas bidimensionales (2D).

El registro de origen debe usar datos sin firmar; Si el registro de origen usa datos firmados o mixtos, la operación genera resultados no válidos.
D3DSIO_TEXM3x2PAD
La instrucción TEXM3x2PAD realiza la multiplicación de la primera fila de una matriz de dos filas.


Formato

token de instrucción que contiene D3DSIO_TEXM3x2PAD.

token de parámetro de destino.

token de parámetro de origen.


Comentarios

La instrucción TEXM3x2PAD no se puede usar por sí misma; debe combinarse con las instrucciones TEXM3x2TEX o TEXM3x2DEPTH .
D3DSIO_TEXM3x2TEX
La instrucción TEXM3x2TEX realiza la fila final de una matriz de 3x2 multiplicada y usa el resultado en una búsqueda de texturas.


Formato

token de instrucción que contiene D3DSIO_TEXM3x2TEX.

token de parámetro de destino.

token de parámetro de origen.


Comentarios

La instrucción TEXM3x2TEX debe usarse con la instrucción TEXM3x2PAD .
D3DSIO_TEXM3x3PAD
La instrucción TEXM3x3PAD realiza la multiplicación de la primera o segunda fila de una matriz de tres filas.


Formato

token de instrucción que contiene D3DSIO_TEXM3x3PAD.

token de parámetro de destino.

token de parámetro de origen.


Comentarios

La instrucción TEXM3x3PAD no se puede usar por sí misma; debe combinarse con la instrucción TEXM3x3 , la instrucción TEXM3x3SPEC , la instrucción TEXM3x3VSPEC o la instrucción TEXM3x3TEX .
D3DSIO_TEXM3x3TEX
La instrucción TEXM3x3TEX realiza una multiplicación de matriz 3x3 y usa el resultado en una búsqueda de texturas.


Formato

token de instrucción que contiene D3DSIO_TEXM3x3TEX.

token de parámetro de destino.

token de parámetro de origen.


Comentarios

La instrucción TEXM3x3TEX debe usarse con dos instrucciones TEXM3x3PAD .

Se usa como final de tres instrucciones que representan una operación de multiplicación de matriz 3x3, seguida de una búsqueda de texturas. La matriz 3x3 se compone de las coordenadas de textura de la tercera fase de textura y las dos fases de textura anteriores. El vector de tres componentes resultante (U,V,W) se usa para muestrear la textura en la fase 3. Se omite cualquier textura asignada a las dos fases de textura anteriores. La multiplicación de matriz 3x3 suele ser útil para orientar un vector normal al espacio tangente correcto para la superficie que se representa.
D3DSIO_RESERVED0
Esta instrucción está reservada para uso interno.
D3DSIO_TEXM3x3SPEC
La instrucción TEXM3x3SPEC realiza una multiplicación de matriz 3x3 y usa el resultado en una búsqueda de texturas. Se usa para la reflexión especular y la asignación del entorno.


Formato

token de instrucción que contiene D3DSIO_TEXM3x3SPEC.

token de parámetro de destino.

primer token de parámetro de origen.

segundo token de parámetro de origen.


Comentarios

La instrucción TEXM3x3SPEC debe usarse con dos instrucciones TEXM3x3PAD . Este conjunto de instrucciones se puede usar para la reflexión especular y la asignación del entorno.

La instrucción TEXM3x3SPEC realiza la fila final de una multiplicación de matriz 3x3, usa el vector resultante como vector normal para reflejar un vector de rayos oculares y, a continuación, usa el vector reflejado para realizar una búsqueda de textura. El sombreador lee el vector de rayos oculares de un registro constante. La multiplicación de matriz 3x3 suele ser útil para orientar un vector normal al espacio tangente correcto para la superficie que se representa.

La matriz 3x3 se compone de las coordenadas de textura de la tercera fase de textura y las dos fases de textura anteriores. El vector posterior a la reflexión (U,V,W) resultante se usa para muestrear la textura en la fase final de textura. Se omite cualquier textura asignada a las dos fases de textura anteriores.
D3DSIO_TEXM3x3VSPEC
La instrucción TEXM3x3VSPEC realiza una multiplicación de matriz 3x3 y usa el resultado en una búsqueda de texturas.


Formato

token de instrucción que contiene D3DSIO_TEXM3x3VSPEC.

token de parámetro de destino.

token de parámetro de origen.


Comentarios

La instrucción TEXM3x3VSPEC debe usarse con dos instrucciones TEXM3x3PAD . Este conjunto de instrucciones se puede usar para la reflexión especular y la asignación del entorno donde el vector de rayos oculares no es constante. Si el vector de rayos oculares es constante, la instrucción TEXM3x3SPEC realiza la misma multiplicación de matriz y búsqueda de texturas.

La instrucción TEXM3x3VSPEC realiza la fila final de una operación de multiplicación de matriz 3x3, interpreta el vector resultante como un vector normal para reflejar un vector de rayos oculares y, a continuación, usa el vector reflejado como una dirección de textura para una búsqueda de textura. Funciona igual que TEXM3X3SPEC, salvo que el vector de rayos oculares se toma del cuarto componente de las coordenadas de textura. La multiplicación de matriz 3x3 suele ser útil para orientar un vector normal al espacio tangente correcto para la superficie que se representa.

La matriz 3x3 se compone de las coordenadas de textura de la tercera fase de textura y las dos fases de textura anteriores. El vector de postrefleción resultante (UVW) se usa para muestrear la textura en la fase 3. Se omite cualquier textura asignada a las dos fases de textura anteriores.
D3DSIO_EXPP
La instrucción EXPP proporciona una precisión parcial exponencial 2x.


Formato

token de instrucción que contiene D3DSIO_EXPP. La longitud de la instrucción es 2.

token de parámetro de destino.

token de parámetro de origen. Requiere el uso explícito de replicación de swizzle, es decir, se debe especificar el componente X, Y, Z o W swizzle (o R, G, B o A equivalente).


Comentarios

La instrucción EXPP proporciona al menos 10 bits de precisión.
D3DSIO_LOGP
La instrucción LOGP calcula el registro de precisión parcial(x).


Formato

token de instrucción que contiene D3DSIO_LOGP. La longitud de la instrucción es 2.

token de parámetro de destino.

token de parámetro de origen. Requiere el uso explícito de replicación de swizzle, es decir, se debe especificar el componente X, Y, Z o W swizzle (o R, G, B o A equivalente).


Comentarios

La instrucción LOGP proporciona al menos 10 bits de precisión.
D3DSIO_CND
La instrucción CND elige entre los orígenes segundo y tercero, en función del primer origen que sea mayor que 0,5 y almacena el resultado en el destino.


Formato

token de instrucción que contiene D3DSIO_CND.

token de parámetro de destino.

primer token de parámetro de origen.

segundo token de parámetro de origen.

tercer token de parámetro de origen.
D3DSIO_DEF
La instrucción DEF define un valor constante, que se debe cargar cada vez que se establece un sombreador en un dispositivo. Esta instrucción se puede usar en todas las versiones del sombreador de vértices. Las constantes establecidas por el sombreador de vértices actual tienen prioridad sobre las constantes establecidas por la operación de D3DDP2OP_SETVERTEXSHADERCONST.


Formato

token de instrucción que contiene D3DSIO_DEF. La longitud de la instrucción es 5.

token de parámetro de destino. El tipo de registro debe ser D3DSPR_CONST, D3DSPR_CONST2, D3DSPR_CONST3 o D3DSPR_CONST4.

4 tokens DWORD. Número de punto flotante 4D o número entero 4D.
D3DSIO_TEXREG2RGB
La instrucción TEXREG2RGB interpreta los componentes de color rojo, verde y azul (RGB) del origen como datos de dirección de textura (U,V,W) para muestrear la textura en las fases correspondientes al número de registro de destino. El resultado se almacena en el destino.


Formato

token de instrucción que contiene D3DSIO_TEXREG2RGB.

token de parámetro de destino.

token de parámetro de origen.


Comentarios

La instrucción TEXREG2RGB es útil para las operaciones de reasignación de espacio de color. Admite coordenadas bidimensionales (2D) y tridimensionales (3D). Se puede usar igual que la instrucción TEXREG2AR o TEXREG2GB instrucción para reasignar datos 2D. Sin embargo, la instrucción TEXREG2RGB también admite datos 3D para que se pueda usar con mapas de cubo y texturas de volumen 3D.
D3DSIO_TEXDP3TEX
La instrucción TEXDP3TEX realiza un producto de punto de tres componentes y usa el resultado para realizar una búsqueda de textura 1D.


Formato

token de instrucción que contiene D3DSIO_TEXDP3TEX.

token de parámetro de destino.

token de parámetro de origen.
D3DSIO_TEXM3x2DEPTH
La instrucción TEXM3x2DEPTH calcula el valor de profundidad que se usará en pruebas de profundidad para un píxel.


Formato

token de instrucción que contiene D3DSIO_TEXM3x2DEPTH.

token de parámetro de destino.

token de parámetro de origen.


Comentarios

La instrucción TEXM3x2DEPTH debe usarse con la instrucción TEXM3x2PAD .
D3DSIO_TEXDP3
La instrucción TEXDP3 realiza un producto de punto de tres componentes entre los datos del número de registro de textura y el conjunto de coordenadas de textura correspondiente al número de registro de destino.


Formato

token de instrucción que contiene D3DSIO_TEXDP3.

token de parámetro de destino.

token de parámetro de origen.
D3DSIO_TEXM3x3
La instrucción TEXM3x3 realiza la multiplicación de matriz 3x3 cuando se usa junto con dos instrucciones de TEXM3x3PAD .


Formato

token de instrucción que contiene D3DSIO_TEXM3x3.

token de parámetro de destino.

token de parámetro de origen.


Comentarios

La instrucción TEXM3x3 debe usarse con dos instrucciones de TEXM3X3PAD . Se usa como final de tres instrucciones que representan una operación de multiplicación de matriz 3x3. La matriz 3x3 consta de las coordenadas de textura de la tercera fase de textura y de las dos fases de textura anteriores. Se omite cualquier textura asignada a cualquiera de las tres fases de textura.

La instrucción TEXM3x3 es la misma que la instrucción TEXM3x3TEX , sin la búsqueda de texturas.
D3DSIO_TEXDEPTH
La instrucción TEXDEPTH calcula el valor de profundidad que se usará en la prueba de comparación del búfer de profundidad de píxeles.


Formato

token de instrucción que contiene D3DSIO_TEXDEPTH.

token de parámetro de destino.
D3DSIO_CMP
La instrucción CMP elige entre los orígenes segundo y tercero, en función del primer origen que sea mayor o igual que cero, y almacena el resultado en el destino. La comparación se realiza por canal.


Formato

token de instrucción que contiene D3DSIO_CMP.

token de parámetro de destino.

primer token de parámetro de origen.

segundo token de parámetro de origen.

tercer token de parámetro de origen.
D3DSIO_BEM
La instrucción BEM aplica una transformación de mapa de entorno de impacto.


Formato

token de instrucción que contiene D3DSIO_BEM.

token de parámetro de destino.

primer token de parámetro de origen.

segundo token de parámetro de origen.
D3DSIO_DP2ADD
La instrucción DP2ADD realiza un producto de punto 2D y una adición escalar, y almacena el resultado en el destino.


Formato

token de instrucción que contiene D3DSIO_DP2ADD. La longitud de la instrucción es 4.

token de parámetro de destino.

primer token de parámetro de origen.

segundo token de parámetro de origen.

tercer token de parámetro de origen.
D3DSIO_DSX
La instrucción DSX calcula la tasa de cambio del origen en la dirección x y almacena el resultado en el destino.


Formato

token de instrucción que contiene D3DSIO_DSX. La longitud de la instrucción es 2.

token de parámetro de destino. Acepta todas las máscaras de escritura.

token de parámetro de origen. Acepta todos los swizzles.


Comentarios

La instrucción DSX siempre calcula degradados en el contenido actual de los registros en píxeles, independientemente de si los píxeles están activos debido al control de flujo o a que están fuera del borde de un primitivo. Estos píxeles se ejecutan en lockstep.
D3DSIO_DSY
La instrucción DSY calcula la tasa de cambio del origen en la dirección y y almacena el resultado en el destino.


Formato

token de instrucción que contiene D3DSIO_DSY. La longitud de la instrucción es 2.

token de parámetro de destino. Acepta todas las máscaras de escritura.

token de parámetro de origen. Acepta todos los swizzles.


Comentarios

La instrucción DSY siempre calcula degradados en el contenido actual de los registros en píxeles, independientemente de si los píxeles están activos debido al control de flujo o a que están fuera del borde de un primitivo. Estos píxeles se ejecutan en lockstep.
D3DSIO_TEXLDD
La instrucción TEXLDD muestra una textura mediante las coordenadas de textura del primer token de origen, el muestreador especificado por el segundo token de origen y los degradados (DSX y DSY) de los tokens de origen tercero y cuarto.


Formato

token de instrucción que contiene D3DSIO_TEXLDD. La longitud de la instrucción es 5.

token de parámetro de destino. Acepta todas las máscaras de escritura.

primer token de parámetro de origen.

segundo token de parámetro de origen que debe usar el tipo de registro D3DSPR_SAMPLER. Los estados del sampler que se admiten son D3DSAMP_MAXMIPLEVEL y D3DSAMP_MIPMAPLODBIAS.


Comentarios

Todos los orígenes admiten swizzles arbitrarios.

Todas las máscaras de escritura son válidas en el destino.
D3DSIO_SETP
La instrucción SETP establece el registro de predicado.


Formato

token de instrucción que contiene D3DSIO_SETP. La longitud de la instrucción es 3.

token de parámetro de destino mediante el tipo de registro D3DSPR_PREDICATE. Requiere máscaras de escritura.

primer token de parámetro de origen. Se deben especificar componentes de Swizzle.

segundo token de parámetro de origen. Se deben especificar componentes de Swizzle.


Comentarios

Para cada canal que se puede escribir según la máscara de escritura de destino, guarde el resultado booleano de la operación de comparación entre los canales correspondientes de los orígenes (después de que se resuelvan los modificadores de origen).
D3DSIO_TEXLDL
La instrucción TEXLDL muestra una textura en un muestreador determinado mediante las coordenadas de textura proporcionadas. El nivel de detalle determinado (LOD) que se muestrea debe especificarse como el cuarto componente (W) de la coordenada de textura.


Formato

token de instrucción que contiene D3DSIO_TEXLDL. La longitud de la instrucción es 3.

token de parámetro de destino mediante el tipo de registro D3DSPR_PREDICATE.

el primer token de parámetro de origen proporciona las coordenadas de textura para el ejemplo de textura.

segundo token de parámetro de origen mediante el tipo de registro D3DSPR_SAMPLER. Identifica el número del muestreador de textura que se va a muestrear. No se puede especificar el modificador de origen Negate. Se puede especificar Swizzle. El número del muestreador debe declararse al principio del sombreador.


Comentarios

Los valores predeterminados de los componentes que faltan de la máscara de escritura del token de destino son 0 o 1 y dependen del formato de textura.

El número de coordenadas necesarias para realizar la muestra de textura depende de cómo se declaró el número del muestreador. Si se ha declarado como un cubo, se requiere una coordenada de textura de 3 componentes (RGB). La validación exige que las coordenadas proporcionadas a texld sean suficientes para la dimensión de textura declarada para el muestreador. El muestreo de una textura con dimensiones inferiores a las presentes en la coordenada de textura es válida. Por el contrario, el muestreo de una textura con dimensiones más altas de las que están presentes en la coordenada de textura no es válido.

El muestreo de texturas RGB sin signo da como resultado valores flotantes comprendidos entre 0,0 y 1,0.

El muestreo de texturas firmadas da como resultado valores float de -1.0 a 1.0.

El muestreo de texturas de punto flotante da como resultado que float16 se conserve el intervalo de MAX_FLOAT16 o el intervalo Float32 al máximo de la canalización que se conserva.
D3DSIO_BREAKP
La instrucción BREAK PRED se interrumpe del bucle actual en el endloop o endrep más cercano mediante uno de los componentes del registro de predicado como una condición para determinar si se va a realizar la instrucción.


Formato

token de instrucción que contiene D3DSIO_BREAKP.

token de parámetro de origen mediante el tipo de registro D3DSPR_PREDICATE con un swizzle de replicación (cada canal usa el mismo componente de origen). Se permite el modificador de origen NOT (0xd) en bits 27:24.
D3DSIO_PHASE
Solo se aplica a la versión 1_4 del sombreador de píxeles.

La instrucción PHASE marca la transición entre la versión 1 y 2 del sombreador de píxeles. Si no hay ninguna instrucción de fase, todo el sombreador se ejecuta como si fuera un sombreador de fase 2.


Formato

token de instrucción que contiene D3DSIO_PHASE.


Comentarios

Las instrucciones del sombreador que se producen antes de la instrucción PHASE son las instrucciones de la fase 1. Todas las demás instrucciones son las instrucciones de la fase 2. Al tener dos fases para instrucciones, se aumenta el número máximo de instrucciones por sombreador.

El componente alfa de los registros temporales no persiste en la transición de fase. En otras palabras, el componente alfa debe reinicializarse después de la instrucción de fase.
D3DSIO_COMMENT
Especifica el token de comentario.
D3DSIO_END
Especifica el token final.
D3DSIO_FORCE_DWORD
Fuerza un tamaño de 32 bits.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Windows Vista y versiones posteriores de los sistemas operativos Windows.
Encabezado d3d9types.h