Indizierte Vertexmischung (Direct3D 9)

Durch die indizierte Vertexmischung wird die Unterstützung für die Vertexmischung in Direct3D erweitert, sodass Matrizen für das Mischen verwendet werden können. Auf diese Matrizen wird mithilfe eines Matrixindexes verwiesen. Diese Indizes werden pro Vertex bereitgestellt und beziehen sich auf eine Palette von bis zu 256 Matrizen. Jeder Index ist 8 Bits, und jeder Scheitelpunkt kann bis zu vier Indizes aufweisen, wodurch vier Matrizen pro Scheitelpunkt gemischt werden können. Die Indizes werden in ein DWORD gepackt. Da Indizes pro Scheitelpunkt angegeben werden, können sich bis zu 12 Matrizen auf ein einzelnes Dreieck auswirken, und jede Matrix in der Palette kann die Scheitelpunkte eines Zeichnungsaufrufs beeinflussen. Dieser Ansatz hat die folgenden Vorteile:

  • Es ermöglicht mehr Matrizen, sich auf ein einzelnes Dreieck zu auswirken.
  • Dadurch können mehr gemischte Dreiecke im gleichen Zeichnungsaufruf übergeben werden.
  • Dadurch wird die Vertexmischung unabhängig von Dreiecksindizes. Dadurch können progressive Gitter in Verbindung mit Vertexmischungen verwendet werden.

Ein Nachteil dieses Ansatzes besteht darin, dass er nicht mit Primitiven für gekrümmte Oberflächen funktioniert, wenn die Tessellation vor der Vertexverarbeitung erfolgt.

Das folgende Diagramm zeigt, wie sich vier Matrizen auf einen Scheitelpunkt auswirken können. Jeder Scheitelpunkt hat bis zu vier Indizes, sodass vier Matrizen pro Scheitelpunkt gemischt werden können. Das Diagramm verwendet die Matrizen, die bei 0, 2, 5 und 6 indiziert sind.

Diagramm der indizierten Vertexmischung unter Verwendung von 4 von 256 verfügbaren Matrizen

Das folgende Diagramm zeigt, wie sich bis zu 12 Matrizen auf ein Dreieck auswirken können. Bei Verwendung von Indizes, die pro Scheitelpunkt angegeben werden, können bis zu 12 Matrizen das Dreieck beeinflussen.

Diagramm der indizierten Vertexmischung für ein Dreieck unter Verwendung von 12 von 256 verfügbaren Matrizen

Die folgende Gleichung bestimmt den allgemeinen Fall, wie Matrizen einen Scheitelpunkt beeinflussen.

Formel der indizierten Vertexmischung

V-Modell ist die Vertexposition des Eingabemodells. Index0.. Index3 sind die Indizes pro Vertexmatrix, die in ein DWORD gepackt sind. M[] ist das Array von Weltmatrizen, die indiziert werden. b₀.. b² sind die Mischungsgewichte. V-Welt ist die Vertexposition der Ausgabewelt.

Weitere Informationen zur indizierten Vertexmischung finden Sie unter Verwenden der indizierten Vertexmischung (Direct3D 9).

Geometriemischung