Freigeben über


Löst, verblasst und wischt (Direct3D 9)

In zunehmendem Maße verwenden Anwendungen Spezialeffekte, die häufig in Filmen und Videos verwendet werden, z. B. Auflösungen, Wischen und Einblendungen.

In einer Auflösung wird ein Bild schrittweise durch ein anderes in einer glatten Sequenz von Frames ersetzt. Obwohl Direct3D Methoden zur Verwendung mehrerer Texturmischungen bietet, um denselben Effekt zu erzielen, können Anwendungen, die den Schablonenpuffer für Auflösungen verwenden, Texturmischungsfunktionen für andere Effekte verwenden, während sie eine Auflösung ausführen.

Wenn Ihre Anwendung eine Auflösung ausführt, müssen zwei verschiedene Bilder gerendert werden. Es verwendet den Schablonenpuffer, um zu steuern, welche Pixel aus den einzelnen Bildern auf die Renderingzieloberfläche gezeichnet werden. Sie können eine Reihe von Schablonenmasken definieren und diese in den Schablonenpuffer auf aufeinander folgenden Frames kopieren. Alternativ können Sie eine Basisschablonenmaske für den ersten Frame definieren und inkrementell ändern.

Am Anfang der Auflösung legt Ihre Anwendung die Schablonenfunktion und schablonenmaske so fest, dass die meisten Pixel aus dem Startbild den Schablonentest bestehen. Die meisten Pixel aus dem Endbild sollten beim Schablonentest fehlschlagen. Bei aufeinanderfolgenden Frames wird die Schablonenmaske aktualisiert, sodass immer weniger Pixel im Startbild den Test bestehen. Wenn die Frames voranschreiten, schlagen immer weniger Pixel im Endbild den Test fehl. Auf diese Weise kann Ihre Anwendung eine Auflösung mithilfe eines beliebigen Auflösungsmusters ausführen.

Das Ein- oder Ausblenden ist ein Sonderfall des Auflösens. Beim Ausblenden wird der Schablonenpuffer verwendet, um von einem Schwarz- oder Weißbild auf ein Rendering einer 3D-Szene aufzulösen. Das Ausblenden ist das Gegenteil, Ihre Anwendung beginnt mit einem Rendering einer 3D-Szene und löst sich in Schwarz oder Weiß auf. Die Einblendung kann mit jedem beliebigen Muster erfolgen, das Sie verwenden möchten.

Direct3D-Anwendungen verwenden eine ähnliche Technik für Wischvorgänge. Wenn eine Anwendung beispielsweise einen Wisch von links nach rechts ausführt, wird das endende Bild nach und nach über dem Startbild von links nach rechts gleiten. Wie in einer Auflösung müssen Sie eine Reihe von Schablonenmasken definieren, die in aufeinanderfolgenden Frames in den Schablonenpuffer geladen werden, oder die Startschablonenmaske sukzessive ändern. Die Schablonenmasken werden verwendet, um das Schreiben von Pixeln aus dem Startbild zu deaktivieren und das Schreiben von Pixeln aus dem Endbild zu ermöglichen.

Ein Wischen ist etwas komplexer als eine Auflösung, da Ihre Anwendung Pixel aus dem Endbild in umgekehrter Reihenfolge lesen muss. Das heißt, wenn sich das Wischen von links nach rechts bewegt, muss Ihre Anwendung Pixel aus dem Endbild von rechts nach links lesen.

Schablonenpuffertechniken