Multipass-Texturmischung (Direct3D 9)

Direct3D-Anwendungen können zahlreiche Sondereffekte erzielen, indem sie im Laufe mehrerer Renderingdurchläufe verschiedene Texturen auf einen Primitiven anwenden. Der allgemeine Begriff hierfür ist die Mehrpasstexturmischung. Eine typische Verwendung für die Mehrpass-Texturmischung besteht darin, die Auswirkungen komplexer Beleuchtungs- und Schattierungsmodelle zu emulieren, indem mehrere Farben aus mehreren verschiedenen Texturen angewendet werden. Eine solche Anwendung wird als Lichtzuordnung bezeichnet. Weitere Informationen finden Sie unter Light Mapping with Textures (Direct3D 9) (Lichtzuordnung mit Texturen (Direct3D 9)).

Hinweis

Einige Geräte können mehrere Texturen in einem einzigen Durchlauf auf Primitive anwenden. Weitere Informationen finden Sie unter Texturmischung (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 die Frameraten nicht aufrechterhalten, die möglich sind, wenn mehrere Texturmischungen verwendet werden.

So führen Sie eine Mehrfachpasstexturmischung in einer C/C++-Anwendung aus.

  1. Legen Sie eine Textur in Texturphase 0 fest, indem Sie die IDirect3DDevice9::SetTexture-Methode aufrufen.
  2. Wählen Sie mit der IDirect3DDevice9::SetTextureStageState-Methode die gewünschten Farb- und Alphamischungsargumente und -vorgänge aus. Die Standardeinstellungen eignen sich gut für das Mischen von Mehrpasstextur.
  3. Rendert die entsprechenden Objekte in der Szene.
  4. Legen Sie die nächste Textur in Texturstufe 0 fest.
  5. Legen Sie die Renderzustände D3DRS _ SRCBLEND und D3DRS _ DESTBLEND fest, um die Quell- und Zielmischungsfaktoren nach Bedarf anzupassen. Das System kombiniert die neuen Texturen gemäß diesen Parametern mit den vorhandenen Pixeln auf der Renderzieloberfläche.
  6. Wiederholen Sie die Schritte 3, 4 und 5 mit so vielen Texturen wie erforderlich.

Texturmischung