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.

diagramma della fusione dei vertici indicizzati usando 4 di 256 matrici disponibili

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.

diagramma della fusione dei vertici indicizzati per un triangolo usando 12 di 256 matrici disponibili

L'equazione seguente determina il caso generale per il modo in cui le matrici influisce su un vertice.

equazione del vertice indicizzato

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).

Geometry Blending