vs_3_0
Um sombreador de vértice programável é composto por um conjunto de instruções que operam em dados de vértice. Registra dados de transferência dentro e fora da ALU. Controle adicional pode ser aplicado para modificar a instrução, os resultados ou quais dados são gravados.
A versão do sombreador de vértice vs_3_0 estende o conjunto de recursos compatível com vs_2_x. Cada um dos recursos em vs_2_X que requer um limite a ser definido, está disponível em vs_3_0 sem a necessidade do limite.
- Instruções – vs_3_0 contém uma lista das instruções disponíveis.
- Registros – vs_3_0 lista os diferentes tipos de registros usados pela ALU do sombreador de vértice.
- Os Modificadores de Registro do Sombreador de Vértice são usados para modificar a maneira como uma instrução funciona.
- Os Modificadores de Registro de Origem do Sombreador de Vértice alteram os dados de registro de origem antes da execução da instrução.
- O Registro de Origem Swizzling fornece controle adicional sobre quais componentes de registro são lidos, copiados ou gravados.
- Máscara de Registro de Destino determina quais componentes do registro de destino são gravados.
Novos recursos
Novos recursos da versão do sombreador de vértice vs_3_0 estão listados nas seções a seguir.
Registros de indexação
Nos modelos de sombreador anteriores, somente o banco de registro constante poderia ser indexado. Nesse modelo, os bancos de registro a seguir podem ser indexados usando o registro do contador de loop (aL):
- Registro de entrada (v#)
- Registro de saída (o#)
Texturas de vértice
Esse modelo de sombreador dá suporte à pesquisa de textura no sombreador de vértice usando texldl. O mecanismo de vértice tem quatro estágios de amostragem de textura (diferentes do amostrador de mapa de deslocamento e dos amostradores de textura no mecanismo de pixel) que podem ser usados para amostrar texturas definidas nesses estágios. Consulte Texturas de vértice em vs_3_0 (DirectX HLSL).
Frequência de fluxo de vértice
Esse recurso permite que um subconjunto dos registros de entrada seja inicializado a uma taxa diferente de uma vez por vértice. Consulte Desenho de geometria não indexada.
Saída do sombreador
Semelhante a vs_2_0, a saída do sombreador pode variar com o controle de fluxo estático. Tenha cuidado com a ramificação dinâmica, pois isso pode fazer com que as saídas do sombreador variem por vértice. Isso produzirá resultados imprevisíveis em hardwares diferentes.
Controle de fluxo dinâmico
Há suporte para todas as instruções de controle de fluxo dinâmico. O valor máximo de profundidade de aninhamento permitido é 24. (Consulte Limites de aninhamento de controle de fluxo para obter detalhes.)
Registros Temporários
Há suporte para um total de 32 registros temporários (r#).
Controle de fluxo estático
A profundidade máxima de aninhamento para loop - vs/rep - vs é 4. A profundidade máxima de aninhamento para chamada - vs/callnz bool - vs/callnz pred - vs é 4. Para se bool - vs, o valor máximo de profundidade de aninhamento permitido é 24. (Consulte Limites de aninhamento de controle de fluxo para obter detalhes.)
Predicação
Há suporte para a pré-indicação de instrução. Use setp_comp - vs para definir o registro de predicado.
Contagem de instruções
Cada sombreador de vértice é permitido em qualquer lugar de 512 até o número de slots em MaxVertexShader30InstructionSlots em D3DCAPS9. O número de instruções executadas pode ser muito maior devido ao suporte a loop/rep; no entanto, isso é limitado por MaxVShaderInstructionsExecuted em D3DCAPS9, que deve ser pelo menos 0xFFFF.
Tampas de dispositivo
Se houver suporte para o Sombreador de Vértice 3_0, as seguintes tampas serão compatíveis com o hardware (no mínimo):
Tampa | Funcionalidade |
---|---|
Tampas do sombreador |
|
GuardBandLeft, GuardBandTop, GuardBandRight, GuardBandBottom | 8 K |
VertexShaderVersion | 3_0 |
MaxVertexShaderConst | 256 |
MaxVertexShader30InstructionSlots | 512 |
Suporte à neblina | D3DPRASTERCAPS_FOGVERTEX |
VertexTextureFilterCaps | |
D3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET | Elementos de vértice em uma declaração de vértice podem compartilhar o mesmo deslocamento de fluxo. |
Formatos de vértice |
|
Tópicos relacionados