Texturvermischung

Direct3D kann in einem einzigen Durchgang bis zu acht Texturen mit Primitiven kombinieren. Die Verwendung mehrerer Texturmischungen kann die Bildrate einer Direct3D-Anwendung erheblich erhöhen. Eine Anwendung verwendet mehrere Texturmischungen, um Texturen, Schatten, spiegelförmige Beleuchtung, diffuse Beleuchtung und andere Spezialeffekte in einem einzigen Durchgang anzuwenden.

Um Texturmischungen zu verwenden, sollte Ihre Anwendung zuerst überprüfen, ob die Hardware des Benutzers dies unterstützt.

Texturphasen und die Texturmischungskaskade

Direct3D unterstützt single-pass Multiple Texture Blending durch die Verwendung von Texturstufen. Eine Texturphase übernimmt zwei Argumente und führt einen Füllvorgang für diese aus, wobei das Ergebnis für die weitere Verarbeitung oder für die Rasterung übergeben wird. Sie können eine Texturphase wie im folgenden Diagramm dargestellt visualisieren.

Diagramm einer Texturphase

Wie das obige Diagramm zeigt, mischen Texturphasen zwei Argumente mithilfe eines angegebenen Operators. Zu den gängigen Vorgängen gehören einfache Modulation oder Hinzufügen der Farb- oder Alphakomponenten der Argumente, aber mehr als zwei Dutzend Vorgänge werden unterstützt. Die Argumente für eine Phase können eine zugeordnete Textur, die iterierte Farbe oder alpha (während der Gouraud-Schattierung iteriert), beliebige Farbe und Alpha oder das Ergebnis aus der vorherigen Texturphase sein.

Hinweis Direct3D unterscheidet Farbmischungen von Alpha-Blending. Anwendungen legen Füllvorgänge und Argumente für Farbe und Alpha einzeln fest, und die Ergebnisse dieser Einstellungen sind unabhängig voneinander.

 

Die Kombination von Argumenten und Vorgängen, die von mehreren Mischphasen verwendet werden, definiert eine einfache flussbasierte Mischsprache. Die Ergebnisse von einer Phase fließen in eine andere Phase, von dieser Phase zur nächsten usw. Das Konzept der Ergebnisse, die von Phase zu Phase fließen, um schließlich auf einem Polygon gerastert zu werden, wird häufig als Texturmischungskaskade bezeichnet. Das folgende Diagramm zeigt, wie einzelne Texturphasen die Texturmischungskaskade bilden.

Diagramm der Texturphasen in der Texturmischungskaskade

Jede Stufe in einem Gerät verfügt über einen nullbasierten Index. Direct3D ermöglicht bis zu acht Mischphasen, obwohl Sie immer die Gerätefunktionen überprüfen sollten, um zu bestimmen, wie viele Stufen die aktuelle Hardware unterstützt. Die erste Mischphase befindet sich bei Index 0, die zweite bei 1 usw. bis Index 7. Das System mischt Phasen in erhöhter Indexreihenfolge.

Verwenden Sie nur die Anzahl von Phasen, die Sie benötigen. Die nicht verwendeten Mischphasen sind standardmäßig deaktiviert. Wenn Ihre Anwendung also nur die ersten beiden Phasen verwendet, müssen nur Vorgänge und Argumente für Die Phase 0 und 1 festgelegt werden. Das System kombiniert die beiden Phasen und ignoriert die deaktivierten Phasen.

Wenn Ihre Anwendung die Anzahl der Phasen variiert, die sie für verschiedene Situationen verwendet , z. B. vier Phasen für einige Objekte und nur zwei für andere, müssen Sie nicht alle zuvor verwendeten Phasen explizit deaktivieren. Eine Option besteht darin, den Farbvorgang für die erste nicht verwendete Phase zu deaktivieren, dann werden alle Phasen mit einem höheren Index nicht angewendet. Eine weitere Option besteht darin, die Texturzuordnung vollständig zu deaktivieren, indem Sie den Farbvorgang für die erste Texturphase (Stufe 0) auf einen deaktivierten Zustand festlegen.

In diesem Abschnitt

Thema BESCHREIBUNG

Vermischungsstufen

Eine Mischphase ist eine Reihe von Texturvorgängen und deren Argumente, die definieren, wie Texturen gemischt werden.

Mehrstufige Texturvermischung

Direct3D-Anwendungen können zahlreiche Spezialeffekte erzielen, indem sie im Verlauf mehrerer Renderingdurchläufe verschiedene Texturen auf ein Primitive anwenden. Der gebräuchliche Begriff dafür ist multipass texture blending. Eine typische Verwendung für die Multipass-Texturmischung besteht darin, die Auswirkungen komplexer Beleuchtungs- und Schattierungsmodelle zu emulieren, indem mehrere Farben aus verschiedenen Texturen angewendet werden. Eine solche Anwendung heißt Lichtmapping.

 

Texturen