vs_3_0
Un sombreador de vértices programable se compone de un conjunto de instrucciones que operan en los datos de vértices. Registra la transferencia de datos dentro y fuera de la ALU. Se puede aplicar un control adicional para modificar la instrucción, los resultados o los datos que se escriben.
La versión del sombreador de vértices vs_3_0 amplía el conjunto de características admitido por vs_2_x. Cada una de las características de vs_2_X que requiere que se establezca un límite, está disponible en vs_3_0 sin necesidad del límite.
- Instrucciones: vs_3_0 contiene una lista de las instrucciones disponibles.
- Registros: vs_3_0 enumera los distintos tipos de registros usados por el sombreador de vértices ALU.
- Los modificadores de registro del sombreador de vértices se usan para modificar la forma en que funciona una instrucción.
- Los modificadores de registro de origen del sombreador de vértices modifican los datos de registro de origen antes de que se ejecute la instrucción.
- Source Register Swizzling proporciona un control adicional sobre qué componentes de registro se leen, copian o escriben.
- El enmascaramiento de registros de destino determina qué componentes del registro de destino se escriben.
Características nuevas
En las secciones siguientes se enumeran las nuevas características de la versión del sombreador de vértices vs_3_0.
Registros de indexación
En los modelos de sombreador anteriores, solo se podría indexar el banco de registro constante. En este modelo, se pueden indexar los siguientes bancos de registro mediante el registro del contador de bucles (aL):
- Registro de entrada (v#)
- Registro de salida (o#)
Texturas de vértices
Este modelo de sombreador admite la búsqueda de texturas en el sombreador de vértices mediante texldl. El motor de vértices tiene cuatro fases del muestreador de texturas (distintas del muestreador de mapa de desplazamiento y los muestreadores de textura del motor de píxeles) que se pueden usar para muestrear texturas establecidas en esas fases. Consulte Texturas de vértices en vs_3_0 (DirectX HLSL).
Frecuencia de flujo de vértices
Esta característica permite inicializar un subconjunto de los registros de entrada a una velocidad diferente de una vez por vértice. Consulte Dibujo de geometría no indizada.
Salida del sombreador
De forma similar a vs_2_0, la salida del sombreador puede variar con el control de flujo estático. Tenga cuidado con la bifurcación dinámica, ya que esto puede hacer que las salidas del sombreador varían por vértice. Esto generará resultados impredecibles en diferentes hardware.
Control de flujo dinámico
Se admiten todas las instrucciones de control de flujo dinámico. El valor máximo de profundidad de anidamiento permitido es 24. (Consulte Límites de anidamiento de control de flujo para obtener más información).
Registros temporales
Se admite un total de 32 registros temporales (r#).
Control de flujo estático
La profundidad de anidamiento máxima del bucle - vs/rep - vs es 4. Profundidad de anidamiento máxima para la llamada - vs/callnz bool - vs/callnz pred - vs es 4. Para si bool: frente a, el valor máximo de profundidad de anidamiento permitido es 24. (Consulte Límites de anidamiento de control de flujo para obtener más información).
Predicación
Se admite la predicación de instrucciones. Use setp_comp : frente a para establecer el registro de predicado.
Recuento de instrucciones
Cada sombreador de vértices se permite desde 512 hasta el número de ranuras de MaxVertexShader30InstructionSlots en D3DCAPS9. El número de instrucciones ejecutadas puede ser mucho mayor debido a la compatibilidad con bucles o representantes; Sin embargo, maxVShaderInstructionsExecuted en D3DCAPS9, que debe ser al menos 0xFFFF.
Límites de dispositivos
Si se admite el sombreador de vértices 3_0, se admiten los siguientes límites en hardware (como mínimo):
Tapa | Capacidad |
---|---|
Tapones de sombreador |
|
GuardBandLeft, GuardBandTop, GuardBandRight, GuardBandBottom | 8 K |
VertexShaderVersion | 3_0 |
MaxVertexShaderConst | 256 |
MaxVertexShader30InstructionSlots | 512 |
Compatibilidad con niebla | D3DPRASTERCAPS_FOGVERTEX |
VertexTexTextureFilterCaps | |
D3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET | Los elementos de vértice de una declaración de vértice pueden compartir el mismo desplazamiento de flujo. |
Formatos de vértice |
|
Temas relacionados