Alphatexturmischung (Direct3D 9)
Die Lichtmaschine kombiniert Materialfarbe, Vertexfarbe und Beleuchtungsinformationen, um eine Farbe pro Vertex zu generieren. Nach der Interpolation generiert dies eine Pixelfarbe, die in den Framepuffer geschrieben wird. Wenn eine Anwendung die Texturmischung aktiviert, wird die Pixelfarbe zu einer Kombination aus dem aktuellen Pixel im Framepuffer und einer Texturfarbe.
Diese Formel bestimmt die endgültige Gemischte Pixelfarbe:
Color = TexelColor x SourceBlend + CurrentPixelColor x DestBlend
Hierbei gilt:
- Farbe ist die Ausgabepixelfarbe.
- TexelColor ist die Eingabefarbe nach der Texturfilterung.
- SourceBlend ist der Prozentsatz der endgültigen Pixelfarbe, die aus der Quellfarbe texel besteht.
- CurrentPixelColor ist die Farbe des aktuellen Pixels.
- DestBlend ist der Prozentsatz der endgültigen Pixelfarbe, die sich aus der aktuellen Pixelfarbe zusammensetzt.
Die endgültige Mischungsgleichung wird festgelegt, indem IDirect3DDevice9::SetRenderState aufgerufen und der Mischrenderzustand (D3DRS_BLENDXXX) mit einem entsprechenden Mischfaktor (D3DBLEND) angegeben wird. Die Werte von SourceBlend und DestBlend reichen von 0,0 (transparent) bis einschließlich 1,0 (undurchsichtig). Darüber hinaus kann eine Anwendung die Transparenz eines Pixels steuern, indem sie den Alphawert in einer Textur festlegt. Verwenden Sie in diesem Fall Folgendes:
SourceBlend = D3DBLEND_ZERO
DestBlend = D3DBLEND_ONE
Die Mischungsgleichung bewirkt, dass das gerenderte Pixel transparent ist. Die Standardwerte lauten wie folgt:
SourceBlend = D3DBLEND_SRCALPHA
DestBlend = D3DBLEND_INVSRCALPHA
Zugehörige Themen