D3DTEXTUREOP-Enumeration

Definiert Texturmischungsvorgänge pro Stufe.

Syntax

typedef enum D3DTEXTUREOP { 
  D3DTOP_DISABLE                    = 1,
  D3DTOP_SELECTARG1                 = 2,
  D3DTOP_SELECTARG2                 = 3,
  D3DTOP_MODULATE                   = 4,
  D3DTOP_MODULATE2X                 = 5,
  D3DTOP_MODULATE4X                 = 6,
  D3DTOP_ADD                        = 7,
  D3DTOP_ADDSIGNED                  = 8,
  D3DTOP_ADDSIGNED2X                = 9,
  D3DTOP_SUBTRACT                   = 10,
  D3DTOP_ADDSMOOTH                  = 11,
  D3DTOP_BLENDDIFFUSEALPHA          = 12,
  D3DTOP_BLENDTEXTUREALPHA          = 13,
  D3DTOP_BLENDFACTORALPHA           = 14,
  D3DTOP_BLENDTEXTUREALPHAPM        = 15,
  D3DTOP_BLENDCURRENTALPHA          = 16,
  D3DTOP_PREMODULATE                = 17,
  D3DTOP_MODULATEALPHA_ADDCOLOR     = 18,
  D3DTOP_MODULATECOLOR_ADDALPHA     = 19,
  D3DTOP_MODULATEINVALPHA_ADDCOLOR  = 20,
  D3DTOP_MODULATEINVCOLOR_ADDALPHA  = 21,
  D3DTOP_BUMPENVMAP                 = 22,
  D3DTOP_BUMPENVMAPLUMINANCE        = 23,
  D3DTOP_DOTPRODUCT3                = 24,
  D3DTOP_MULTIPLYADD                = 25,
  D3DTOP_LERP                       = 26,
  D3DTOP_FORCE_DWORD                = 0x7fffffff
} D3DTEXTUREOP, *LPD3DTEXTUREOP;

Konstanten

D3DTOP _ DISABLE

Deaktiviert die Ausgabe dieser Texturphase und aller Phasen mit einem höheren Index. Um die Texturzuordnung zu deaktivieren, legen Sie diese als Farbvorgang für die erste Texturphase (Phase 0) fest. Alphavorgänge können nicht deaktiviert werden, wenn Farbvorgänge aktiviert sind. Das Festlegen des Alpha-Vorgangs auf D3DTOP DISABLE, wenn Farbblending aktiviert ist, führt zu _ nicht definiertem Verhalten.

D3DTOP _ SELECTARG1

Verwenden Sie die erste Farbe oder das alpha-Argument dieser Texturphase als Ausgabe unverändert. Dieser Vorgang wirkt sich auf das Farbargument aus, wenn es mit dem D3DTSS COLOROP-Texturphasenzustand verwendet wird, und das Alphaargument bei Verwendung mit _ D3DTSS _ ALPHAOP.

Gleichung dieses Arguments (s(rgba) = arg1)

D3DTOP _ SELECTARG2

Verwenden Sie die zweite Farbe oder das alpha-Argument dieser Texturphase , unverändert, als Ausgabe. Dieser Vorgang wirkt sich auf das Farbargument aus, wenn es mit dem D3DTSS COLOROP-Texturphasenzustand verwendet wird, und das Alphaargument bei Verwendung mit _ D3DTSS _ ALPHAOP.

Gleichung dieses Arguments (s(rgba) = arg2)

D3DTOP _ MODULATE

Multiplizieren Sie die Komponenten der Argumente.

Gleichung des modulierten Vorgangs (s(rgba) = arg1 x arg 2)

D3DTOP _ MODULATE2X

Multiplizieren Sie die Komponenten der Argumente, und verschieben Sie die Produkte zur Aufheiterung auf das linke 1-Bit (multiplizieren sie effektiv mit 2).

Gleichung des modulate2x-Vorgangs (s(rgba) = (arg1 x arg 2) und anschließende Verschiebung nach links 1)

D3DTOP _ MODULATE4X

Multiplizieren Sie die Komponenten der Argumente, und verschieben Sie die Produkte zur Aufheiterung um 2 Bits nach links (multiplizieren sie effektiv mit 4).

Gleichung des modulate4x-Vorgangs (s(rgba) = (arg1 x arg 2) und anschließende Verschiebung nach links 2)

D3DTOP _ ADD

Fügen Sie die Komponenten der Argumente hinzu.

Gleichung des Add-Vorgangs (s(rgba) = arg1 + arg 2)

D3DTOP _ ADDSIGNED

Fügen Sie die Komponenten der Argumente mit einem -0,5-Bias hinzu, wodurch der effektive Wertebereich zwischen 0,5 und 0,5 liegt.

Gleichung des add signed-Vorgangs (s(rgba) = arg1 + arg 2 – 0,5)

D3DTOP _ ADDSIGNED2X

Fügen Sie die Komponenten der Argumente mit einem -0,5-Bias hinzu, und verschieben Sie die Produkte 1 Bit nach links.

Gleichung des add signed 2x-Vorgangs ((s(rgba) = arg1 + arg 2 - 0,5) und dann nach links 1 verschieben)

D3DTOP _ SUBTRACT

Subtrahieren Sie die Komponenten des zweiten Arguments von denen des ersten Arguments.

Gleichung des Subtrakt-Vorgangs (s(rgba) = arg1 - arg 2)

D3DTOP _ ADDSMOOTH

Fügen Sie das erste und das zweite Argument hinzu. subtrahiert dann das Produkt von der Summe.

Gleichung des add smooth-Vorgangs (s(rgba) = arg1 + arg 2 x (1 - arg1))

D3DTOP _ BLENDDIFFUSEALPHA

Blenden Sie diese Texturphase linear unter Verwendung des interpolierten Alphas aus jedem Scheitelpunkt.

Gleichung der blend diffusen Alphaoperation (s(rgba) = arg1 x alpha + arg 2 x (1 - alpha))

D3DTOP _ BLENDTEXTUREALPHA

Mischen Sie diese Texturphase linear, indem Sie das Alpha aus der Textur dieser Phase verwenden.

Gleichung des Blendtextur-Alpha-Vorgangs (s(rgba) = arg1 x alpha + arg 2 x (1 - alpha))

D3DTOP _ BLENDFACTORALPHA

Mischen Sie diese Texturphase linear, indem Sie ein skalares Alphaset mit dem D3DRS _ TEXTUREFACTOR-Renderzustand verwenden.

Gleichung des Blendfaktor-Alpha-Vorgangs (s(rgba) = arg1 x alpha + arg 2 x (1 - alpha))

D3DTOP _ BLENDTEXTUREALPHAPM

Lineares Mischen einer Texturphase, die ein prämultiplisiertes Alpha verwendet.

Gleichung der Operation blend texture alpha pm (s(rgba) = arg1 + arg 2 x (1 - alpha))

D3DTOP _ BLENDCURRENTALPHA

Blenden Sie diese Texturphase linear unter Verwendung des Alphas aus der vorherigen Texturphase.

Gleichung des Blend current alpha-Vorgangs (s(rgba) = arg1 x alpha + arg2 x (1 - alpha))

D3DTOP _ PREMODULATE

D3DTOP _ PREMODULATE wird in Phase n festgelegt. Die Ausgabe von Phase n ist arg1. Wenn sich außerdem eine Textur in Phase n + 1 befindet, wird jede D3DTA CURRENT-Struktur in Phase n + 1 von der Textur in Phase _ n + 1 vorab multipliiert.

D3DTOP _ MODULATEALPHA _ ADDCOLOR

Modulieren Sie die Farbe des zweiten Arguments mithilfe des Alphas des ersten Arguments. fügen Sie dann das Ergebnis zu Argument 1 hinzu. Dieser Vorgang wird nur für Farbvorgänge (D3DTSS _ COLOROP) unterstützt.

Gleichung des Add Color Modulate Alpha-Vorgangs (s(rgba) = arg1(rgb) + arg1(a) x arg2(rgb))

D3DTOP _ MODULATECOLOR _ ADDALPHA

Modulieren Sie die Argumente. fügen Sie dann das Alpha des ersten Arguments hinzu. Dieser Vorgang wird nur für Farbvorgänge (D3DTSS _ COLOROP) unterstützt.

Gleichung des Add alpha modulate color-Vorgangs (s(rgba) = arg1(rgb) x arg2(rgb) + arg1(a))

D3DTOP _ MODULATEINVALPHA _ ADDCOLOR

Ähnlich wie D3DTOP MODULATEALPHA ADDCOLOR, aber verwenden Sie die _ _ Umkehrung des Alphas des ersten Arguments. Dieser Vorgang wird nur für Farbvorgänge (D3DTSS _ COLOROP) unterstützt.

Gleichung des add color modulate inverse alpha-Vorgangs (s(rgba) = (1 - arg1(a)) x arg2(rgb) + arg1(rgb))

D3DTOP _ MODULATEINVCOLOR _ ADDALPHA

Ähnlich wie D3DTOP _ MODULATECOLOR ADDALPHA, aber verwenden Sie die Umkehrung der Farbe _ des ersten Arguments. Dieser Vorgang wird nur für Farbvorgänge (D3DTSS _ COLOROP) unterstützt.

Gleichung des Add alpha modulate inverse color-Vorgangs (s(rgba) = (1 - arg1(rgb)) x arg2(rgb) + arg1(a))

D3DTOP _ BUMPENVMAP

Führen Sie mithilfe der Umgebungszuordnung in der nächsten Texturphase ohne Leuchtdichte eine Pixel-Bumpzuordnung durch. Dieser Vorgang wird nur für Farbvorgänge (D3DTSS _ COLOROP) unterstützt.

D3DTOP _ BUMPENVMAPLUDOMINANZ

Führen Sie mithilfe der Umgebungszuordnung in der nächsten Texturphase mit Leuchtdichte eine Pixel-Bumpzuordnung durch. Dieser Vorgang wird nur für Farbvorgänge (D3DTSS _ COLOROP) unterstützt.

D3DTOP _ DOTPRODUCT3

Modulieren Sie die Komponenten der einzelnen Argumente als signierte Komponenten, fügen Sie ihre Produkte hinzu. replizieren Sie dann die Summe in allen Farbkanälen, einschließlich Alpha. Dieser Vorgang wird für Farb- und Alphavorgänge unterstützt.

Gleichung des Punktprodukts 3-Vorgangs (s(rgba) = arg1(r) x arg2(r) + arg1(g) x arg2(g) + arg1(b) x arg2(b))

In DirectX 6 und DirectX 7 werden multitexture-Vorgänge alle um die Hälfte (y = x - 0,5) nach unten verschoben, bevor signierte Daten simuliert werden. Das Skalarergebnis wird automatisch an positive Werte geklammert und an alle drei Ausgabekanäle repliziert. Beachten Sie außerdem, dass als Farbvorgang das Alpha nicht aktualisiert wird, sondern nur die RGB-Komponenten aktualisiert werden.

In DirectX 8.1-Shadern können Sie jedoch angeben, dass die Ausgabe an die RGB- oder A-Komponenten oder beides (Standard) geroutet werden soll. Sie können auch einen separaten Skalarvorgang für den Alphakanal angeben.

D3DTOP _ MULTIPLYADD

Führt einen Multiplikationsvorgang aus. Die letzten beiden Argumente werden verwendet, multipliziert und dem verbleibenden Eingabe-/Quellargument addiert und im Ergebnis platziert.

SRGBA = Arg1 + Arg2 * Arg3

D3DTOP _ LERP

Interpoliert linear zwischen dem zweiten und dritten Quellargument um einen Im ersten Quellargument angegebenen Anteil.

SRGBA = (Arg1) * Arg2 + (1- Arg1) * Arg3.

D3DTOP _ FORCE _ DWORD

Erzwingt, dass diese Enumeration auf eine Größe von 32 Bits kompiliert wird. Ohne diesen Wert würden einige Compiler zulassen, dass diese Enumeration in eine andere Größe als 32 Bits kompiliert wird. Dieser Wert wird nicht verwendet.

Hinweise

Die Member dieses Typs werden verwendet, wenn Farb- oder Alphavorgänge mithilfe der _ D3DTSS COLOROP- oder D3DTSS ALPHAOP-Werte mit der _ IDirect3DDevice9::SetTextureStageState-Methode festgelegt werden.

In den obigen Formeln ist SRGBA die RGBA-Farbe, die von einem Texturvorgang erzeugt wird, und Arg1, Arg2 und Arg3 stellen die vollständige RGBA-Farbe der Texturargumente dar. Einzelne Komponenten eines Arguments werden mit Inskripts angezeigt. Beispielsweise würde die Alphakomponente für Argument 1 als Arg1A angezeigt werden.

Anforderungen

Anforderung Wert
Header
D3D9Types.h

Weitere Informationen

Direct3D-Enumerationen

D3DTEXTURESTAGESTATETYPE