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:
|
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 |
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de