D3DTEXTURESTAGESTATETYPE-Enumeration

Texturphasenstatus definieren Texturvorgänge mit mehreren Blendern. Einige Samplerstatus richten die Vertex- und einige die Pixelverarbeitung ein. Texturphasenstatus können mithilfe von Statusblöcken gespeichert und wiederhergestellt werden (siehe Statusblöcke zum Speichern und Wiederherstellen des Status (Direct3D 9)).

Syntax

typedef enum D3DTEXTURESTAGESTATETYPE { 
  D3DTSS_COLOROP                = 1,
  D3DTSS_COLORARG1              = 2,
  D3DTSS_COLORARG2              = 3,
  D3DTSS_ALPHAOP                = 4,
  D3DTSS_ALPHAARG1              = 5,
  D3DTSS_ALPHAARG2              = 6,
  D3DTSS_BUMPENVMAT00           = 7,
  D3DTSS_BUMPENVMAT01           = 8,
  D3DTSS_BUMPENVMAT10           = 9,
  D3DTSS_BUMPENVMAT11           = 10,
  D3DTSS_TEXCOORDINDEX          = 11,
  D3DTSS_BUMPENVLSCALE          = 22,
  D3DTSS_BUMPENVLOFFSET         = 23,
  D3DTSS_TEXTURETRANSFORMFLAGS  = 24,
  D3DTSS_COLORARG0              = 26,
  D3DTSS_ALPHAARG0              = 27,
  D3DTSS_RESULTARG              = 28,
  D3DTSS_CONSTANT               = 32,
  D3DTSS_FORCE_DWORD            = 0x7fffffff
} D3DTEXTURESTAGESTATETYPE, *LPD3DTEXTURESTAGESTATETYPE;

Konstanten

D3DTSS_COLOROP

Bei diesem Texturphasenstatus handelt es sich um einen Vorgang zum Mischen von Texturfarben, der durch einen Member des Enumerationstyps D3DTEXTUREOP identifiziert wird. Der Standardwert für die erste Texturphase (Phase 0) lautet D3DTOP_MODULATE. Für alle anderen Phasen lautet der Standardwert D3DTOP_DISABLE.

D3DTSS_COLORARG1

Bei diesem Texturphasenstatus handelt es sich um das erste Farbargument für die Phase, das durch eine der D3DTA-Konstanten identifiziert wird. Das Standardargument lautet D3DTA_TEXTURE.

Geben Sie D3DTA_TEMP an, um eine temporäre Registerfarbe für den Lese- oder Schreibzugriff auszuwählen. Die Konstante D3DTA_TEMP wird unterstützt, wenn die Gerätefunktion D3DPMISCCAPS_TSSARGTEMP vorhanden ist. Der Standardwert für das Register lautet (0,0, 0,0, 0,0, 0,0).

D3DTSS_COLORARG2

Bei diesem Texturphasenstatus handelt es sich um das zweite Farbargument für die Phase, das durch die D3DTA-Konstante identifiziert wird. Das Standardargument lautet D3DTA_CURRENT. Geben Sie D3DTA_TEMP an, um eine temporäre Registerfarbe für den Lese- oder Schreibzugriff auszuwählen. Die Konstante D3DTA_TEMP wird unterstützt, wenn die Gerätefunktion D3DPMISCCAPS_TSSARGTEMP vorhanden ist. Der Standardwert für das Register lautet (0,0, 0,0, 0,0, 0,0).

D3DTSS_ALPHAOP

Bei diesem Texturphasenstatus handelt es sich um einen Vorgang zum Mischen von Texturalphas, der durch einen Member des Enumerationstyps D3DTEXTUREOP identifiziert wird. Der Standardwert für die erste Texturphase (Phase 0) lautet D3DTOP_SELECTARG1. Für alle anderen Phasen lautet der Standardwert D3DTOP_DISABLE.

D3DTSS_ALPHAARG1

Bei diesem Texturphasenstatus handelt es sich um das erste Alphaargument für die Phase, das durch die D3DTA-Konstante identifiziert wird. Das Standardargument lautet D3DTA_TEXTURE. Wenn für diese Phase keine Textur festgelegt ist, lautet das Standardargument D3DTA_DIFFUSE. Geben Sie D3DTA_TEMP an, um eine temporäre Registerfarbe für den Lese- oder Schreibzugriff auszuwählen. Die Konstante D3DTA_TEMP wird unterstützt, wenn die Gerätefunktion D3DPMISCCAPS_TSSARGTEMP vorhanden ist. Der Standardwert für das Register lautet (0,0, 0,0, 0,0, 0,0).

D3DTSS_ALPHAARG2

Bei diesem Texturphasenstatus handelt es sich um das zweite Alphaargument für die Phase, das durch die D3DTA-Konstante identifiziert wird. Das Standardargument lautet D3DTA_CURRENT. Geben Sie D3DTA_TEMP an, um eine temporäre Registerfarbe für den Lese- oder Schreibzugriff auszuwählen. Die Konstante D3DTA_TEMP wird unterstützt, wenn die Gerätefunktion D3DPMISCCAPS_TSSARGTEMP vorhanden ist. Der Standardwert für das Register lautet (0,0, 0,0, 0,0, 0,0).

D3DTSS_BUMPENVMAT00

Bei diesem Texturphasenstatus handelt es sich um einen Gleitkommawert für den [0][0]-Koeffizienten in einer Bumpmappingmatrix. Der Standardwert ist 0,0.

D3DTSS_BUMPENVMAT01

Bei diesem Texturphasenstatus handelt es sich um einen Gleitkommawert für den [0][1]-Koeffizienten in einer Bumpmappingmatrix. Der Standardwert ist 0,0.

D3DTSS_BUMPENVMAT10

Bei diesem Texturphasenstatus handelt es sich um einen Gleitkommawert für den [1][0]-Koeffizienten in einer Bumpmappingmatrix. Der Standardwert ist 0,0.

D3DTSS_BUMPENVMAT11

Bei diesem Texturphasenstatus handelt es sich um einen Gleitkommawert für den [1][1]-Koeffizienten in einer Bumpmappingmatrix. Der Standardwert ist 0,0.

D3DTSS_TEXCOORDINDEX

Bei diesem Texturphasenstatus handelt es sich um den Index der Texturkoordinate, die für diese Texturphase verwendet werden soll. Sie können bis zu acht Texturkoordinatenpaare pro Vertex angeben. Wenn ein Vertex kein Texturkoordinatenpaar am angegebenen Index enthält, verwendet das System standardmäßig die u- und v-Koordinaten (0,0).

Beim Rendern mit Vertexshadern muss der Texturkoordinatenindex jeder Phase auf den Standardwert festgelegt werden. Der Standardindex jeder Phase entspricht dem Phasenindex. Legen Sie diesen Status auf den nullbasierten Index des Koordinatenpaars für jeden Vertex fest, den diese Texturphase verwendet.

Außerdem können Anwendungen eine der Konstanten als logisches ODER mit festgelegtem Index enthalten, um anzufordern, dass Direct3D automatisch die Eingabetexturkoordinaten für eine Texturtransformation generiert. Eine Liste aller Konstanten finden Sie unter D3DTSS_TCI.

Außer für das Flag D3DTSS_TCI_PASSTHRUdas in null aufgelöst wird, verwendet das System den Index streng, um den Texture-Wrapping-Modus zu bestimmen, wenn einer der folgenden Werte im festgelegten Index eingeschlossen ist. Diese Flags sind beim Durchführen der Environment-Mapping-Methode am hilfreichsten.

D3DTSS_BUMPENVLSCALE

Bei diesem Texturphasenstatus handelt es sich um den Gleitkommaskalawert für die Bumpmappingbeleuchtung. Der Standardwert ist 0,0.

D3DTSS_BUMPENVLOFFSET

Bei diesem Texturphasenstatus handelt es sich um den Gleitkommaoffsetwert für die Bumpmappingbeleuchtung. Der Standardwert ist 0,0.

D3DTSS_TEXTURETRANSFORMFLAGS

Bei diesem Texturphasenstatus handelt es sich um einen Member des Enumerationstyps D3DTEXTURETRANSFORMFLAGS, der die Transformation von Texturkoordinaten für diese Texturphase steuert. Der Standardwert lautet D3DTTFF_DISABLE.

D3DTSS_COLORARG0

Bei diesem Texturphasenstatus handelt es sich um die Einstellungen für den dritten Farboperand für triadische Vorgänge (Multiplizieren, Addieren und lineares Interpolieren), die durch die D3DTA-Konstante definiert werden. Diese Einstellung wird unterstützt, wenn die Gerätefunktionen D3DTEXOPCAPS_MULTIPLYADD oder D3DTEXOPCAPS_LERP vorhanden sind. Das Standardargument lautet D3DTA_CURRENT. Geben Sie D3DTA_TEMP an, um eine temporäre Registerfarbe für den Lese- oder Schreibzugriff auszuwählen. Die Konstante D3DTA_TEMP wird unterstützt, wenn die Gerätefunktion D3DPMISCCAPS_TSSARGTEMP vorhanden ist. Der Standardwert für das Register lautet (0,0, 0,0, 0,0, 0,0).

D3DTSS_ALPHAARG0

Bei diesem Texturphasenstatus handelt es sich um die Einstellungen für den Operand des Alphakanalselektors für triadische Vorgänge (Multiplizieren, Addieren und lineares Interpolieren), die durch die D3DTA-Konstante definiert werden. Diese Einstellung wird unterstützt, wenn die Gerätefunktionen D3DTEXOPCAPS_MULTIPLYADD oder D3DTEXOPCAPS_LERP vorhanden sind. Das Standardargument lautet D3DTA_CURRENT. Geben Sie D3DTA_TEMP an, um eine temporäre Registerfarbe für den Lese- oder Schreibzugriff auszuwählen. Die Konstante D3DTA_TEMP wird unterstützt, wenn die Gerätefunktion D3DPMISCCAPS_TSSARGTEMP vorhanden ist. Das Standardargument lautet (0,0, 0,0, 0,0, 0,0).

D3DTSS_RESULTARG

Bei diesem Texturphasenstatus handelt es sich um die Einstellung zum Auswählen des Zielregisters für das Ergebnis dieser Phase, die durch die D3DTA-Konstante identifiziert wird. Dieser Wert kann auf D3DTA_CURRENT (Standardwert) oder D3DTA_TEMP festgelegt werden. Dabei handelt es sich um ein einzelnes temporäres Register, das als Eingabeargument in nachfolgende Phasen eingelesen werden kann. Die letzte Farbe, die an den Nebelblender und Framebuffer übergeben wird, wird aus dem Wert D3DTA_CURRENT übernommen. Dadurch muss der letzte aktive Texturphasenstatus so festgelegt werden, dass er in den aktuellen Status schreibt. Diese Einstellung wird unterstützt, wenn die Gerätefunktion D3DPMISCCAPS_TSSARGTEMP vorhanden ist.

D3DTSS_CONSTANT

Bei diesem Texturphasenstatus handelt es sich um eine Konstantenfarbe pro Phase. Um zu sehen, ob ein Gerät eine Konstantenfarbe pro Phase unterstützt, betrachten Sie die Konstante D3DPMISCCAPS_PERSTAGECONSTANT im Flag D3DPMISCCAPS. Das Flag D3DTSS_CONSTANT wird von der Konstanten D3DTA_CONSTANT verwendet. Weitere Informationen finden Sie unter D3DTA.

D3DTSS_FORCE_DWORD

Dieser Texturphasenstatus erzwingt die Kompilierung dieser Enumeration zu einer Größe von 32 Bits. Ohne diesen Wert würden einige Compiler die Kompilierung auf eine andere Größe als 32 Bits zulassen. Dieser Wert wird nicht verwendet.

Hinweise

Member dieses Aufzählungstyps werden mit den Methoden IDirect3DDevice9::GetTextureStageState und IDirect3DDevice9::SetTextureStageState verwendet, um Texturstatuswerte abzurufen und festzulegen.

Der gültige Wertebereich für die Bumpmappingmatrixkoeffizienten D3DTSS_BUMPENVMAT00, D3DTSS_BUMPENVMAT01, D3DTSS_BUMPENVMAT10 und D3DTSS_BUMPENVMAT11 liegt zwischen mindestens -8,0 und unter 8,0. Dieser Bereich lautet in mathematischer Schreibweise (-8,0,8,0).

Anforderungen

Anforderung Wert
Header
D3D9Types.h

Siehe auch

Direct3D-Enumerationen

IDirect3DDevice9::GetTextureStageState

IDirect3DDevice9::SetTextureStageState