vs_3_0
Un vertex shader programmabile è costituito da un set di istruzioni che operano sui dati dei vertici. Registra i dati in e fuori dall'ALU. È possibile applicare un controllo aggiuntivo per modificare l'istruzione, i risultati o i dati scritti.
La versione del vertex shader vs_3_0 estende il set di funzionalità supportato da vs_2_x. Ognuna delle funzionalità di vs_2_X che richiede un limite da impostare, è disponibile in vs_3_0 senza richiedere il limite.
- Istruzioni: vs_3_0 contiene un elenco delle istruzioni disponibili.
- Registri: vs_3_0 elenca i diversi tipi di registri usati dall'ALU del vertex shader.
- I modificatori del registro vertex shader vengono usati per modificare il modo in cui funziona un'istruzione.
- I modificatori del registro origine Vertex Shader modificano i dati del registro di origine prima dell'esecuzione dell'istruzione.
- Lo swizzling del registro di origine fornisce un controllo aggiuntivo sui componenti di registrazione letti, copiati o scritti.
- Registro di destinazione Maschera determina quali componenti del registro di destinazione vengono scritti.
Nuove funzioni e caratteristiche
Le nuove funzionalità della versione del vertex shader vs_3_0 sono elencate nelle sezioni seguenti.
Registri di indicizzazione
Nei modelli di shader precedenti è possibile indicizzare solo la banca di registrazione costante. In questo modello è possibile indicizzare le banche di registrazione seguenti usando il registro del contatore del ciclo (aL):
- Registro di input (v#)
- Registro di output (o#)
Trame del vertice
Questo modello shader supporta la ricerca della trama nel vertex shader usando texldl. Il motore del vertice include quattro fasi di esempio trama (distinte dall'sampler mappa di spostamento e dagli esempi di trama nel motore pixel) che possono essere usate per campioni di trame impostate in queste fasi. Vedere Trame vertex in vs_3_0 (DirectX HLSL).
Frequenza di flusso vertex
Questa funzionalità consente l'inizializzazione di un subset dei registri di input a una frequenza diversa da una volta per vertice. Vedere Disegno di geometria non indicizzata.
Shader Output
Analogamente a vs_2_0, l'output del shader può variare con il controllo flusso statico. Prestare attenzione al ramo dinamico in quanto ciò può causare la variazione degli output shader per vertice. Ciò produrrà risultati imprevedibili su hardware diverso.
Controllo flusso dinamico
Sono supportate tutte le istruzioni di controllo del flusso dinamico. Il valore massimo di profondità annidamento consentito è 24. Per informazioni dettagliate, vedere Limiti di annidamento del flusso .
Registri temporanei
È supportato un totale di 32 registri temporanei (r#).
Controllo flusso statico
La profondità massima di annidamento per il ciclo - vs/rep - vs è 4. La profondità massima di annidamento per la chiamata- vs callnz bool - vs/callnz pred - vs/ è 4. Per se bool - vs, il valore massimo di profondità di annidamento consentito è 24. Per informazioni dettagliate, vedere Limiti di annidamento del flusso .
Predicazione
La predicazione delle istruzioni è supportata. Usare setp_comp - vs per impostare il registro predicato.
Conteggio istruzioni
Ogni vertex shader è consentito ovunque da 512 fino al numero di slot in MaxVertexShader30InstructionSlots in D3DCAPS9. Il numero di istruzioni eseguite può essere molto più alto a causa del supporto ciclo/rep; tuttavia, questo è limitato da MaxVShaderInstructionsExecuted in D3DCAPS9 che deve essere almeno 0xFFFF.
Maiuscole dispositivo
Se vertex Shader 3_0 è supportato, i limiti seguenti sono supportati nell'hardware (almeno):
Cap | Funzionalità |
---|---|
Maiuscole shader |
|
GuardBandLeft, GuardBandTop, GuardBandRight, GuardBandBottom | 8 K |
VertexShaderVersion | 3_0 |
MaxVertexShaderConst | 256 |
MaxVertexShader30InstructionSlots | 512 |
Supporto per la nebbia | D3DPRASTERCAPS_FOGVERTEX |
VertexTextureFilterCaps | |
D3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET | Gli elementi vertex in una dichiarazione di vertice possono condividere lo stesso offset di flusso. |
Formati di vertice |
|
Argomenti correlati