Registri di output

  • Registro colori vertice
  • Registro nebbia
  • Position_Register
  • Point_Size_Register
  • Texture_Coordinate_Register

I nomi dei registri sono preceduti da una lettera minuscola o, a indicare che i registri di output sono di sola scrittura.

Vertex Color Register - oD0, oD1

oD0 è il registro colori diffuso. oD1 è il registro dei colori speculari. Il valore oD0 viene interpolato e viene scritto nel registro colori di input 0 (v0) del pixel shader. Il valore oD1 viene interpolato e scritto nel registro colori di input 1 (v1) del pixel shader. Per altre informazioni sui registri dei colori del pixel shader, vedere Registri.

Versioni del vertex shader 1_1 2_0 2_sw 2_x 3_0 3_sw
Registro colori vertice x x x x

 

Registro nebbia - oFog

Il valore di nebbia di output viene registrato. Il valore è il fattore di nebbia da interpolare e quindi instradato alla tabella di nebbia. Viene utilizzato solo il componente x scalare della nebbia. I valori vengono bloccati tra zero e uno prima di passare al rasterizzatore.

Versioni del vertex shader 1_1 2_0 2_sw 2_x 3_0 3_sw
Registro nebbia x x x x

 

Position Register - oPos

La posizione di output registra. Il valore è la posizione nello spazio di ritaglio omogeneo. Questo valore deve essere scritto dal vertex shader.

Versioni del vertex shader 1_1 2_0 2_sw 2_x 3_0 3_sw
Registro posizioni x x x x

 

Registro dimensioni punti - oPt

Registra le dimensioni del punto di output. Viene usato solo il componente x scalare della dimensione del punto.

Versioni del vertex shader 1_1 2_0 2_sw 2_x 3_0 3_sw
Registro dimensioni punto x x x x

 

Registro coordinate trama - da oT0 a oT7

Registra le coordinate della trama di output. In particolare, si tratta di una matrice di registri di dati di output che vengono iterati e usati come coordinate di trama dalle fasi di campionamento delle trame che instradano i dati al pixel shader.

Versioni del vertex shader 1_1 2_0 2_sw 2_x 3_0 3_sw
Registro coordinate trama x x x x

 

Quando si scrive in un registro delle coordinate della trama, è consigliabile passare solo il numero di valori a virgola mobile come dimensione della mappa delle trame corrispondente. Controllare i valori passati con un modificatore. Ad esempio, usare .xy per una mappa trama 2D.

Quando la proiezione di trama è abilitata per una fase di trama, tutti e quattro i valori a virgola mobile devono essere scritti nel registro delle trame corrispondente.

Uno dei flag di trasformazione della trama D3DTTFF* deve essere zero quando viene usata la pipeline programmabile.

Intervallo di coordinate trama

I dati dei vertici dell'oggetto forniscono le coordinate della trama di input. Gli oggetti che non usano trame affiancate hanno in genere coordinate di trama nell'intervallo [0,1]. Gli oggetti che usano trame affiancate, ad esempio il terreno, in genere hanno coordinate di trama che vanno da [-?,+?] Dove? può essere un numero a virgola mobile di grandi dimensioni.

L'interpolazione delle coordinate della trama viene eseguita sui dati dei vertici per la rasterizzazione. Durante la rasterizzazione, le coordinate della trama vengono interpolate tra vertici dell'oggetto, modificate dal wrapping della trama e ridimensionate dalle dimensioni della trama (tenendo conto anche della modalità indirizzo trama) per produrre un indice intero. L'indice viene quindi usato per eseguire una ricerca di trama. MaxTextureRepeat può essere usato per determinare il numero di volte in cui è possibile riquadrire una trama.

Se le coordinate della trama vengono lette direttamente in un pixel shader (usando texcoord o texcrd), l'intervallo di coordinate della trama dipende dall'istruzione e dalla versione del pixel shader.

Registri di Vertex Shader