Freigeben über


Multipass Texture Blending (Direct3D 9)

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

Hinweis

Einige Geräte sind in der Lage, mehrere Texturen in einem einzigen Durchgang auf Primitive anzuwenden. Weitere Informationen finden Sie unter Texture Blending (Direct3D 9).

 

Wenn die Hardware des Benutzers das Mischen mehrerer Texturen nicht unterstützt, kann Ihre Anwendung multipass texture blending verwenden, um die gleichen visuellen Effekte zu erzielen. Die Anwendung kann jedoch nicht die Bildfrequenzen aufrechterhalten, die bei verwendung mehrerer Texturmischungen möglich sind.

So führen Sie multipass texture blending 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 Texturmischung mit mehreren Pässen.
  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 Quell- und Zielmischungsfaktoren nach Bedarf anzupassen. Das System mischt die neuen Texturen mit den vorhandenen Pixeln auf der Renderzieloberfläche gemäß diesen Parametern.
  6. Wiederholen Sie die Schritte 3, 4 und 5 mit so vielen Texturen wie nötig.

Texturmischung