Blending vertex indicizzato (Direct3D 9)
La fusione dei vertici indicizzati estende il supporto della fusione dei vertici in Direct3D per consentire l'uso delle matrici per la fusione. Queste matrici vengono definite usando un indice matrice. Questi indici vengono forniti in base a un vertice e fanno riferimento a una tavolozza di fino a 256 matrici. Ogni indice è a 8 bit e ogni vertice può avere fino a quattro indici, che consente la fusione di quattro matrici per vertice. Gli indici vengono inseriti in una DWORD. Poiché gli indici vengono specificati in base a un vertice, fino a 12 matrici possono influire su un singolo triangolo e qualsiasi matrice nella tavolozza può influire sui vertici di una chiamata di disegno. Questo approccio presenta i vantaggi seguenti.
- Consente a più matrici di influire su un singolo triangolo.
- Consente di passare più triangoli misti nella stessa chiamata di disegno.
- Rende la fusione dei vertici indipendentemente da indici di triangolo. In questo modo, le mesh progressive funzionano insieme alla fusione dei vertici.
Uno svantaggio di questo approccio è che non funziona con le primitive di superficie curva quando si verifica la tessellazione prima dell'elaborazione del vertice.
Il diagramma seguente illustra come quattro matrici possono influire su un vertice. Ogni vertice ha fino a quattro indici, quindi quattro matrici possono essere combinate per vertice. Il diagramma usa le matrici indicizzate a 0, 2, 5 e 6.
Il diagramma seguente illustra come un massimo di 12 matrici può influire su un triangolo. L'uso di indici specificati su base di vertice può influire su un massimo di 12 matrici.
L'equazione seguente determina il caso generale per il modo in cui le matrici influisce su un vertice.
Il modello V è la posizione del vertice del modello di input. Index0.. Index3 è l'indice matrice per vertice compresso in un DWORD. M[] è la matrice di matrici mondiali che vengono indicizzate. b₀.. b₂ sono i pesi di miscela. Ilmondo V è la posizione del vertice dello spazio mondiale di output.
Per altre informazioni sulla fusione dei vertici indicizzati, vedere Using Indexed Vertex Blending (Direct3D 9).
Argomenti correlati