Freigeben über


Multipass Texture Blending (Direct3D 9)

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. Weitere Informationen finden Sie unter Lichtzuordnung mit Texturen (Direct3D 9).

Anmerkung

Einige Geräte können mehrere Texturen auf Grundtypen in einem einzigen Durchlauf anwenden. Ausführliche Informationen finden Sie unter Texture Blending (Direct3D 9).

 

Wenn die Hardware des Benutzers nicht mehrere Texturmischungen unterstützt, kann Ihre Anwendung die Multipass-Texturmischung verwenden, um die gleichen visuellen Effekte zu erzielen. Die Anwendung kann jedoch nicht die Frameraten unterstützen, die bei Verwendung mehrerer Texturmischungen möglich sind.

So führen Sie die Multipass-Texturmischung in einer C/C++-Anwendung durch.

  1. Legen Sie eine Textur in Texturstufe 0 fest, indem Sie die IDirect3DDevice9::SetTexture-Methode aufrufen.
  2. Wählen Sie die gewünschten Farb- und Alphamischungsargumente und -vorgänge mit der IDirect3DDevice9::SetTextureStageState-Methode aus. Die Standardeinstellungen eignen sich gut für die Multipass-Texturvermischung.
  3. Rendern Sie die entsprechenden Objekte in der Szene.
  4. Legen Sie die nächste Textur in Texturstufe 0 fest.
  5. Legen Sie die D3DRS_SRCBLEND und D3DRS_DESTBLEND Renderzustände fest, um die Faktoren für die Quell- und Zielmischung nach Bedarf anzupassen. Das System blendet die neuen Texturen mit den vorhandenen Pixeln in der Renderzieloberfläche entsprechend diesen Parametern ein.
  6. Wiederholen Sie die Schritte 3, 4 und 5 mit beliebig vielen Texturen.

Texturmischung