Texturvermischung
Direct3D kann in einem einzigen Durchlauf bis zu acht Texturen auf Grundtypen mischen. Die Verwendung mehrerer Texturmischungen kann die Framerate einer Direct3D-Anwendung erheblich erhöhen. Eine Anwendung verwendet mehrere Texturmischungen, um Texturen, Schatten, Glanzbeleuchtung, diffuse Beleuchtung und andere Spezialeffekte in einem einzigen Durchlauf anzuwenden.
Um Texturmischungen zu verwenden, sollte Ihre Anwendung zuerst überprüfen, ob die Hardware des Benutzers sie unterstützt.
Texturphasen und die Texturmischungskaskade
Direct3D unterstützt single-pass multiple Texture Blending durch die Verwendung von Texturphasen. Eine Texturstufe verwendet zwei Argumente und führt einen Vermischungsvorgang aus, übergibt das Ergebnis zur weiteren Verarbeitung oder zur Rasterung. Sie können eine Texturstufe visualisieren, wie im folgenden Diagramm dargestellt.
Wie im vorherigen Diagramm dargestellt, blenden Texturphasen zwei Argumente mithilfe eines angegebenen Operators zusammen. Häufige Vorgänge umfassen einfache Modulation oder Addition der Farb- oder Alphakomponenten der Argumente, aber mehr als zwei Dutzend Vorgänge werden unterstützt. Die Argumente für eine Stufe 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 Texturstufe sein.
Beachten Sie, dass Direct3D farbvermischungen von Alphamischungen unterscheidet. Anwendungen legen Mischvorgänge und Argumente für Farbe und Alpha einzeln fest, und die Ergebnisse dieser Einstellungen sind voneinander unabhängig.
Die Kombination von Argumenten und Vorgängen, die von mehreren Mischphasen verwendet werden, definieren eine einfache flussbasierte Mischsprache. Die Ergebnisse aus einer Phase fließen nach unten zu einer anderen Stufe, 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.
Jede Stufe in einem Gerät weist einen nullbasierten Index auf. Direct3D ermöglicht bis zu acht Mischphasen. Sie sollten jedoch immer die Gerätefunktionen überprüfen, 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 blendet Phasen in zunehmender Indexreihenfolge ein.
Verwenden Sie nur die Anzahl der benötigten Phasen; 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 Stufe 0 und 1 festgelegt werden. Das System mischt die beiden Stufen und ignoriert die deaktivierten Stufen.
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 explizit alle zuvor verwendeten Phasen deaktivieren. Eine Option besteht darin, den Farbvorgang für die erste nicht verwendete Stufe 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 Texturstufe (Phase 0) auf einen deaktivierten Zustand festlegen.
In diesem Abschnitt
Thema | Beschreibung |
---|---|
Eine Blendungsphase ist eine Reihe von Texturvorgängen und deren Argumente, die definieren, wie Texturen gemischt werden. |
|
Direct3D-Anwendungen können zahlreiche Spezialeffekte erzielen, indem verschiedene Texturen über mehrere Renderingdurchläufe auf einen Grundtyp angewendet werden. Der häufige Begriff hierfür ist die Multipass-Texturvermischung. Eine typische Verwendung für die Multipass-Texturmischung besteht darin, die Effekte komplexer Beleuchtungs- und Schattierungsmodelle zu emulieren, indem mehrere Farben aus verschiedenen Texturen angewendet werden. Eine solche Anwendung wird als Lichtzuordnung bezeichnet. |
Verwandte Themen