D3DTEXTUREOP-Enumeration
Definiert Texturmischungsvorgänge pro Phase.
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 dies als Farbvorgang für die erste Texturstufe (Phase 0) fest. Alphavorgänge können nicht deaktiviert werden, wenn Farbvorgänge aktiviert sind. Das Festlegen des Alphavorgangs auf D3DTOP_DISABLE, wenn die Farbmischung aktiviert ist, führt zu undefiniertem Verhalten.
-
D3DTOP_SELECTARG1
-
Verwenden Sie das erste Farb- oder Alphaargument dieser Texturstufe ( unverändert) als Ausgabe. Dieser Vorgang wirkt sich auf das Farbargument aus, wenn es mit dem zustand der D3DTSS_COLOROP Texturphase verwendet wird, und auf das Alphaargument, wenn es mit D3DTSS_ALPHAOP verwendet wird.
-
D3DTOP_SELECTARG2
-
Verwenden Sie das zweite Farb- oder Alphaargument dieser Texturstufe( unverändert) als Ausgabe. Dieser Vorgang wirkt sich auf das Color-Argument aus, wenn es mit dem Zustand der D3DTSS_COLOROP Texturphase verwendet wird, und auf das Alphaargument, wenn es mit D3DTSS_ALPHAOP verwendet wird.
-
D3DTOP_MODULATE
-
Multiplizieren Sie die Komponenten der Argumente.
-
D3DTOP_MODULATE2X
-
Multiplizieren Sie die Komponenten der Argumente, und verschieben Sie die Produkte 1 Bit nach links (effektiv multipliziert mit 2), um sie aufzuhellen.
-
D3DTOP_MODULATE4X
-
Multiplizieren Sie die Komponenten der Argumente, und verschieben Sie die Produkte 2 Bits nach links (effektiv multipliziert sie mit 4), um sie aufzuhellen.
-
D3DTOP_ADD
-
Fügen Sie die Komponenten der Argumente hinzu.
-
D3DTOP_ADDSIGNED
-
Fügen Sie die Komponenten der Argumente mit einer -0,5-Abweichung hinzu, sodass der effektive Wertebereich von - 0,5 bis 0,5 festgelegt wird.
-
D3DTOP_ADDSIGNED2X
-
Fügen Sie die Komponenten der Argumente mit einer -0,5-Abweichung hinzu, und verschieben Sie die Produkte 1 Bit nach links.
-
D3DTOP_SUBTRACT
-
Subtrahieren Sie die Komponenten des zweiten Arguments von denen des ersten Arguments.
-
D3DTOP_ADDSMOOTH
-
Fügen Sie das erste und das zweite Argument hinzu. dann ihr Produkt von der Summe subtrahieren.
-
D3DTOP_BLENDDIFFUSEALPHA
-
Blende diese Texturphase linear unter Verwendung des interpolierten Alphas von jedem Scheitelpunkt aus.
-
D3DTOP_BLENDTEXTUREALPHA
-
Blende diese Texturphase linear ein, indem du das Alpha aus der Textur dieser Phase verwendest.
-
D3DTOP_BLENDFACTORALPHA
-
Fügen Sie diese Texturphase linear über, indem Sie einen Skalar-Alphasatz mit dem D3DRS_TEXTUREFACTOR Renderzustand verwenden.
-
D3DTOP_BLENDTEXTUREALPHAPM
-
Lineares Mischen einer Texturphase, die ein prämultipliziertes Alpha verwendet.
-
D3DTOP_BLENDCURRENTALPHA
-
Blende diese Texturphase linear unter Verwendung des Alphas aus der vorherigen Texturphase ein.
-
D3DTOP_PREMODULATE
-
D3DTOP_PREMODULATE wird in Phase n festgelegt. Die Ausgabe von Phase n ist arg1. Wenn in Phase n + 1 eine Textur vorhanden ist, wird jede D3DTA_CURRENT in Phase n + 1 mit der Textur in Phase n + 1 vormultipliziert.
-
D3DTOP_MODULATEALPHA_ADDCOLOR
-
Modulieren Sie die Farbe des zweiten Arguments, indem Sie das Alpha des ersten Arguments verwenden. fügen Sie dann das Ergebnis dem ersten Argument hinzu. Dieser Vorgang wird nur für Farbvorgänge (D3DTSS_COLOROP) unterstützt.
-
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.
-
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.
-
D3DTOP_MODULATEINVCOLOR_ADDALPHA
-
Ähnlich wie D3DTOP_MODULATECOLOR_ADDALPHA, aber verwenden Sie die Inverse der Farbe des ersten Arguments. Dieser Vorgang wird nur für Farbvorgänge (D3DTSS_COLOROP) unterstützt.
-
D3DTOP_BUMPENVMAP
-
Führen Sie eine Pixel-Bump-Zuordnung aus, indem Sie die Umgebungskarte in der nächsten Texturphase ohne Leuchtdichte verwenden. Dieser Vorgang wird nur für Farbvorgänge (D3DTSS_COLOROP) unterstützt.
-
D3DTOP_BUMPENVMAPLUMINANCE
-
Führen Sie eine Pixel-Bump-Zuordnung aus, indem Sie die Umgebungskarte in der nächsten Texturstufe mit Leuchtdichte verwenden. Dieser Vorgang wird nur für Farbvorgänge (D3DTSS_COLOROP) unterstützt.
-
D3DTOP_DOTPRODUCT3
-
Modulieren Sie die Komponenten jedes Arguments als signierte Komponenten, fügen Sie deren Produkte hinzu. replizieren Sie dann die Summe auf alle Farbkanäle, einschließlich Alpha. Dieser Vorgang wird für Farb- und Alphavorgänge unterstützt.
In DirectX 6 und DirectX 7 werden multitexture-Vorgänge die oben genannten Eingaben alle um die Hälfte (y = x - 0,5) nach unten verschoben, bevor sie zum Simulieren signierter Daten verwendet werden, und das Skalarergebnis wird automatisch in positive Werte eingespannt und in alle drei Ausgabekanäle repliziert. Beachten Sie auch, dass dies als Farbvorgang das Alpha nicht aktualisiert, es aktualisiert nur die RGB-Komponenten.
In DirectX 8.1-Shadern können Sie jedoch angeben, dass die Ausgabe an die RGB- oder A-Komponenten oder beide (Standard) weitergeleitet wird. Sie können auch einen separaten Skalarvorgang für den Alphakanal angeben.
-
D3DTOP_MULTIPLYADD
-
Führt einen Multikumulationsvorgang aus. Sie nimmt die letzten beiden Argumente, multipliziert sie zusammen, fügt sie dem verbleibenden Eingabe-/Quellargument hinzu und platziert diese im Ergebnis.
SRGBA = Arg1 + Arg2 * Arg3
-
D3DTOP_LERP
-
Interpoliert linear zwischen dem zweiten und dritten Quellargument nach einem im ersten Quellargument angegebenen Verhältnis.
SRGBA = (Arg1) * Arg2 + (1- Arg1) * Arg3.
-
D3DTOP_FORCE_DWORD
-
Erzwingt, dass diese Enumeration in eine Größe von 32 Bits kompiliert wird. Ohne diesen Wert erlauben einige Compiler es dieser Enumeration, eine andere Größe als 32 Bits zu kompilieren. Dieser Wert wird nicht verwendet.
Bemerkungen
Die Member dieses Typs werden beim Festlegen von Farb- oder Alphavorgängen mithilfe der D3DTSS_COLOROP- oder D3DTSS_ALPHAOP-Werte mit der IDirect3DDevice9::SetTextureStageState-Methode verwendet.
In den obigen Formeln ist SRGBA die RGBA-Farbe, die durch einen Texturvorgang erzeugt wird, und Arg1, Arg2 und Arg3 stellen die vollständige RGBA-Farbe der Texturargumente dar. Einzelne Komponenten eines Arguments werden mit Tiefschreibungen angezeigt. Die Alphakomponente für Argument 1 wird beispielsweise als Arg1A angezeigt.
Anforderungen
Anforderung | Wert |
---|---|
Header |
|
Weitere Informationen