D3DRENDERSTATETYPE-Enumeration (d3d9types.h)

Der D3DRENDERSTATETYPE aufgezählten Typ listet eine Vielzahl von Attributen oder Renderzuständen auf. Die Enumeratoren von D3DRENDERSTATETYPE, die ausschließlich von Treibern verwendet werden, können entweder Renderinginformationen oder ein Texturattribute angeben. Die folgenden Renderzustände werden von Anzeigetreibern verwendet:

Syntax

typedef enum _D3DRENDERSTATETYPE {
  D3DRS_ZENABLE,
  D3DRS_FILLMODE,
  D3DRS_SHADEMODE,
  D3DRS_ZWRITEENABLE,
  D3DRS_ALPHATESTENABLE,
  D3DRS_LASTPIXEL,
  D3DRS_SRCBLEND,
  D3DRS_DESTBLEND,
  D3DRS_CULLMODE,
  D3DRS_ZFUNC,
  D3DRS_ALPHAREF,
  D3DRS_ALPHAFUNC,
  D3DRS_DITHERENABLE,
  D3DRS_ALPHABLENDENABLE,
  D3DRS_FOGENABLE,
  D3DRS_SPECULARENABLE,
  D3DRS_FOGCOLOR,
  D3DRS_FOGTABLEMODE,
  D3DRS_FOGSTART,
  D3DRS_FOGEND,
  D3DRS_FOGDENSITY,
  D3DRS_RANGEFOGENABLE,
  D3DRS_STENCILENABLE,
  D3DRS_STENCILFAIL,
  D3DRS_STENCILZFAIL,
  D3DRS_STENCILPASS,
  D3DRS_STENCILFUNC,
  D3DRS_STENCILREF,
  D3DRS_STENCILMASK,
  D3DRS_STENCILWRITEMASK,
  D3DRS_TEXTUREFACTOR,
  D3DRS_WRAP0,
  D3DRS_WRAP1,
  D3DRS_WRAP2,
  D3DRS_WRAP3,
  D3DRS_WRAP4,
  D3DRS_WRAP5,
  D3DRS_WRAP6,
  D3DRS_WRAP7,
  D3DRS_CLIPPING,
  D3DRS_LIGHTING,
  D3DRS_AMBIENT,
  D3DRS_FOGVERTEXMODE,
  D3DRS_COLORVERTEX,
  D3DRS_LOCALVIEWER,
  D3DRS_NORMALIZENORMALS,
  D3DRS_DIFFUSEMATERIALSOURCE,
  D3DRS_SPECULARMATERIALSOURCE,
  D3DRS_AMBIENTMATERIALSOURCE,
  D3DRS_EMISSIVEMATERIALSOURCE,
  D3DRS_VERTEXBLEND,
  D3DRS_CLIPPLANEENABLE,
  D3DRS_POINTSIZE,
  D3DRS_POINTSIZE_MIN,
  D3DRS_POINTSPRITEENABLE,
  D3DRS_POINTSCALEENABLE,
  D3DRS_POINTSCALE_A,
  D3DRS_POINTSCALE_B,
  D3DRS_POINTSCALE_C,
  D3DRS_MULTISAMPLEANTIALIAS,
  D3DRS_MULTISAMPLEMASK,
  D3DRS_PATCHEDGESTYLE,
  D3DRS_DEBUGMONITORTOKEN,
  D3DRS_POINTSIZE_MAX,
  D3DRS_INDEXEDVERTEXBLENDENABLE,
  D3DRS_COLORWRITEENABLE,
  D3DRS_TWEENFACTOR,
  D3DRS_BLENDOP,
  D3DRS_POSITIONDEGREE,
  D3DRS_NORMALDEGREE,
  D3DRS_SCISSORTESTENABLE,
  D3DRS_SLOPESCALEDEPTHBIAS,
  D3DRS_ANTIALIASEDLINEENABLE,
  D3DRS_MINTESSELLATIONLEVEL,
  D3DRS_MAXTESSELLATIONLEVEL,
  D3DRS_ADAPTIVETESS_X,
  D3DRS_ADAPTIVETESS_Y,
  D3DRS_ADAPTIVETESS_Z,
  D3DRS_ADAPTIVETESS_W,
  D3DRS_ENABLEADAPTIVETESSELLATION,
  D3DRS_TWOSIDEDSTENCILMODE,
  D3DRS_CCW_STENCILFAIL,
  D3DRS_CCW_STENCILZFAIL,
  D3DRS_CCW_STENCILPASS,
  D3DRS_CCW_STENCILFUNC,
  D3DRS_COLORWRITEENABLE1,
  D3DRS_COLORWRITEENABLE2,
  D3DRS_COLORWRITEENABLE3,
  D3DRS_BLENDFACTOR,
  D3DRS_SRGBWRITEENABLE,
  D3DRS_DEPTHBIAS,
  D3DRS_WRAP8,
  D3DRS_WRAP9,
  D3DRS_WRAP10,
  D3DRS_WRAP11,
  D3DRS_WRAP12,
  D3DRS_WRAP13,
  D3DRS_WRAP14,
  D3DRS_WRAP15,
  D3DRS_SEPARATEALPHABLENDENABLE,
  D3DRS_SRCBLENDALPHA,
  D3DRS_DESTBLENDALPHA,
  D3DRS_BLENDOPALPHA,
  D3DRS_FORCE_DWORD
} D3DRENDERSTATETYPE;

Konstanten

 
D3DRS_ZENABLE
Ein D3DZBUFFERTYPE Enumerationstyp, der den Tiefenpufferungszustand darstellt.
D3DRS_FILLMODE
Ein D3DFILLMODE-Enumerationstyp.
D3DRS_SHADEMODE
Ein D3DSHADEMODE-Enumerationstyp.
D3DRS_ZWRITEENABLE
TRUE, damit die Anwendung in den Tiefenpuffer schreiben kann. Der Standardwert ist TRUE. Mit diesem Member kann eine Anwendung verhindern, dass das System den Tiefenpuffer mit neuen Tiefenwerten aktualisiert. Bei FALSE werden Tiefenvergleiche weiterhin entsprechend dem Renderzustand D3DRS_ZFUNC durchgeführt, wobei davon ausgegangen wird, dass tiefenpuffert wird, aber keine Tiefenwerte in den Puffer geschrieben werden.
D3DRS_ALPHATESTENABLE
TRUE, um Alphatests pro Pixel zu aktivieren. Wenn der Test erfolgreich ist, wird das Pixel vom Framepuffer verarbeitet. Andernfalls wird die gesamte Framepufferverarbeitung für das Pixel übersprungen.
D3DRS_LASTPIXEL
Der Standardwert ist TRUE, der das Zeichnen des letzten Pixels in einer Zeile ermöglicht. Um das Zeichnen des letzten Pixels zu verhindern, legen Sie diesen Wert auf FALSE fest.
D3DRS_SRCBLEND
Ein D3DBLEND-Enumerationstyp.
D3DRS_DESTBLEND
Ein D3DBLEND-Enumerationstyp.
D3DRS_CULLMODE
Ein D3DCULL-Enumerationstyp, der angibt, wie rückseitige Dreiecke , wenn überhaupt, gekullt werden.
D3DRS_ZFUNC
Ein D3DCMPFUNC Enumerationstyp, der es einer Anwendung ermöglicht, ein Pixel basierend auf seinem Abstand zur Kamera anzunehmen oder abzulehnen.

Der Tiefenwert des Pixels wird mit dem Tiefenpufferwert verglichen. Wenn der Tiefenwert des Pixels die Vergleichsfunktion übergibt, wird das Pixel geschrieben.

Der Tiefenwert wird nur in den Tiefenpuffer geschrieben, wenn der Renderzustand TRUE ist.
D3DRS_ALPHAREF
Wert, der einen Verweis-Alphawert angibt, mit dem Pixel getestet werden, wenn Alphatests aktiviert sind. Dies ist ein 8-Bit-Wert, der in den niedrigen 8 Bits des DWORD-Renderzustandswerts platziert wird. Werte können von 0x00000000 bis 0x000000FF reichen. Der Standardwert ist 0.
D3DRS_ALPHAFUNC
Ein D3DCMPFUNC Enumerationstyp, der es einer Anwendung ermöglicht, ein Pixel basierend auf seinem Alphawert anzunehmen oder abzulehnen.
D3DRS_DITHERENABLE
TRUE, um dithering zu aktivieren. Der Standardwert ist FALSE.
D3DRS_ALPHABLENDENABLE
TRUE, um Alpha-Blended-Transparenz zu ermöglichen. Der Standardwert ist FALSE.

Die Art der Alphamischung wird durch die D3DRS_SRCBLEND und D3DRS_DESTBLEND Renderzustände bestimmt.
D3DRS_FOGENABLE
TRUE, um die Nebelmischung zu aktivieren. Der Standardwert ist FALSE.
D3DRS_SPECULARENABLE
TRUE, um Glanzlichter zu aktivieren. Der Standardwert ist FALSE.
Glanzlichter werden so berechnet, als ob sich jeder Scheitelpunkt im beleuchteten Objekt am Ursprung des Objekts befindet. Dies liefert die erwarteten Ergebnisse, solange das Objekt um den Ursprung modelliert wird und der Abstand zwischen dem Licht und dem Objekt relativ groß ist. In anderen Fällen sind die Ergebnisse nicht definiert.

Wenn dieser Member auf TRUE festgelegt ist, wird die Glanzfarbe der Basisfarbe nach der Texturkaskade, aber vor der Alphamischung hinzugefügt.
D3DRS_FOGCOLOR
Eine D3DCOLORVALUE-Struktur .
D3DRS_FOGTABLEMODE
Ein D3DFOGMODE aufgezählter Typ, der eine Nebelformel darstellt, die für Pixelnebel verwendet werden soll.
D3DRS_FOGSTART
Tiefe, ab der Pixel- oder Scheitelpunkt-Nebeleffekte für den linearen Nebelmodus beginnen. Der Standardwert ist 0,0f. Die Tiefe wird im Weltraum für Scheitelpunktnebel und entweder Geräteraum [0.0, 1.0] oder Weltraum für Pixelnebel angegeben. Bei Pixelnebel befinden sich diese Werte im Geräteraum, wenn das System z für Nebelberechnungen und weltweltbezogenen Raum verwendet, wenn das System augenbezogener Nebel (w-nebel) verwendet.
D3DRS_FOGEND
Tiefe, mit der Pixel- oder Vertex-Nebeleffekte für den linearen Nebelmodus enden. Der Standardwert ist 1,0f. Die Tiefe wird im Weltraum für Scheitelpunktnebel und entweder Geräteraum [0.0, 1.0] oder Weltraum für Pixelnebel angegeben. Bei Pixelnebel befinden sich diese Werte im Geräteraum, wenn das System z für Nebelberechnungen verwendet, und im Weltraum, wenn das System augenrelativen Nebel (w-Nebel) verwendet.
D3DRS_FOGDENSITY
Nebeldichte für Pixel- oder Scheitelpunktnebel, der in den exponentiellen Nebelmodi (D3DFOG_EXP und D3DFOG_EXP2) verwendet wird. Gültige Dichtewerte liegen zwischen 0,0 und 1,0.
D3DRS_RANGEFOGENABLE
TRUE, um bereichsbasierten Vertex-Nebel zu aktivieren. Der Standardwert ist FALSE. In diesem Fall verwendet das System tiefenbasierten Nebel. Im bereichsbasierten Nebel wird der Abstand eines Objekts vom Viewer verwendet, um Nebeleffekte zu berechnen, nicht die Tiefe des Objekts (d. h. die Z-Koordinate) in der Szene. Im bereichsbasierten Nebel funktionieren alle Nebelmethoden wie gewohnt, mit der Ausnahme, dass sie in den Berechnungen Bereich anstelle der Tiefe verwenden.

Der Bereich ist der richtige Faktor für Nebelberechnungen, aber die Tiefe wird stattdessen häufig verwendet, da der Bereich zeitaufwändig ist und die Tiefe im Allgemeinen bereits verfügbar ist. Die Verwendung der Tiefe zum Berechnen von Nebel hat den unerwünschten Effekt, dass sich die Nebligkeit von peripheren Objekten ändert, wenn sich das Auge des Betrachters bewegt - in diesem Fall ändert sich die Tiefe und der Bereich bleibt konstant.

Da derzeit keine Hardware den bereichsbasierten Nebel pro Pixel unterstützt, wird die Bereichskorrektur nur für Scheitelpunktnebel angeboten.
D3DRS_STENCILENABLE
TRUE, um schablonen zu aktivieren, oder FALSE zum Deaktivieren der Schablone. Der Standardwert ist FALSE.
D3DRS_STENCILFAIL
Ein D3DSTENCILOP Enumerationstyp, der den Schablonenvorgang angibt, der ausgeführt werden soll, wenn der Schablonentest fehlschlägt. Der Standardwert ist D3DSTENCILOP_KEEP.
D3DRS_STENCILZFAIL
Ein D3DSTENCILOP Enumerationstyp, der den Schablonenvorgang angibt, der ausgeführt werden soll, wenn der Schablonentest erfolgreich ist und der Tiefentest (z-test) fehlschlägt.
D3DRS_STENCILPASS
Ein D3DSTENCILOP Enumerationstyp, der den Schablonenvorgang angibt, der ausgeführt werden soll, wenn sowohl die Schablone als auch der Tiefentest (z) erfolgreich sind.
D3DRS_STENCILFUNC
Die Vergleichsfunktion wird verwendet, um den Verweiswert mit einem Schablonenpuffereintrag zu vergleichen. Dieser Vergleich gilt nur für die Bits im Verweiswert und schablonenpuffereintrag, die in der Schablonenmaske festgelegt sind (festgelegt durch den D3DRS_STENCILMASK Renderzustand). True ist der Schablonentest erfolgreich.
D3DRS_STENCILREF
Ein int-Verweiswert für den Schablonentest. Der Standardwert ist 0.
D3DRS_STENCILMASK
Auf den Verweiswert und jeden Schablonenpuffereintrag angewendete Maske, um die signifikanten Bits für den Schablonentest zu bestimmen. Die Standardmaske ist 0xFFFFFFFF.
D3DRS_STENCILWRITEMASK
Schreibmaske, die auf Werte angewendet wird, die in den Schablonenpuffer geschrieben werden. Die Standardmaske ist 0xFFFFFFFF.
D3DRS_TEXTUREFACTOR
Farbe, die für die Mischung mehrerer Texturen mit dem D3DTA_TFACTOR Texturmischungsargument oder dem D3DTOP_BLENDFACTORALPHA Texturmischungsvorgang verwendet wird.
D3DRS_WRAP0
Texturumbruchverhalten für mehrere Sätze von Texturkoordinaten. Gültige Werte für diesen Renderzustand können eine beliebige Kombination aus D3DWRAPCOORD_0 (oder D3DWRAP_U), D3DWRAPCOORD_1 (oder D3DWRAP_V), D3DWRAPCOORD_2 (oder D3DWRAP_W) und D3DWRAPCOORD_3 Flags sein. Diese führen dazu, dass das System in Richtung der ersten, zweiten, dritten und vierten Dimension umschließt, die für eine bestimmte Textur manchmal als s-, t-, r- und q-Richtung bezeichnet wird. Der Standardwert für diesen Renderzustand ist 0 (Umbruch in alle Richtungen deaktiviert).
D3DRS_WRAP1
Siehe D3DRS_WRAP0.
D3DRS_WRAP2
Siehe D3DRS_WRAP0.
D3DRS_WRAP3
Siehe D3DRS_WRAP0.
D3DRS_WRAP4
Siehe D3DRS_WRAP0.
D3DRS_WRAP5
Siehe D3DRS_WRAP0.
D3DRS_WRAP6
Siehe D3DRS_WRAP0.
D3DRS_WRAP7
Siehe D3DRS_WRAP0.
D3DRS_CLIPPING
TRUE, um das primitive Beschneiden durch Direct3D zu aktivieren, oder FALSE, um es zu deaktivieren. Der Standardwert ist TRUE.
D3DRS_LIGHTING
TRUE, um direct3D-Beleuchtung zu aktivieren, oder FALSE, um sie zu deaktivieren. Der Standardwert ist TRUE. Nur Scheitelpunkte, die einen Scheitelpunkt enthalten, werden ordnungsgemäß beleuchtet; Scheitelpunkte, die kein normales enthalten, verwenden bei allen Beleuchtungsberechnungen ein Punktprodukt von 0.
D3DRS_AMBIENT
Umgebungslichtfarbe.
D3DRS_FOGVERTEXMODE
Nebelformel, die für Scheitelpunktnebel verwendet werden soll.
D3DRS_COLORVERTEX
TRUE, um die Farbe pro Scheitelpunkt zu aktivieren, oder FALSE, um sie zu deaktivieren. Der Standardwert ist TRUE. Durch Aktivieren der Farbe pro Scheitelpunkt kann das System die für einzelne Scheitelpunkte definierte Farbe in seine Beleuchtungsberechnungen einbeziehen.
D3DRS_LOCALVIEWER
TRUE, um kamerarelative Glanzlichter zu aktivieren, oder FALSE für die Verwendung orthogonaler Glanzlichter. Der Standardwert ist TRUE. Anwendungen, die orthogonale Projektion verwenden, sollten FALSE angeben.
D3DRS_NORMALIZENORMALS
TRUE, um die automatische Normalisierung von Scheitelpunkten zu aktivieren, oder FALSE, um sie zu deaktivieren. Der Standardwert ist FALSE. Wenn Sie dieses Feature aktivieren, normalisiert das System die Scheitelpunkte für Scheitelpunkte, nachdem sie in den Kameraraum umgewandelt wurden, was rechenaufwendig sein kann.
D3DRS_DIFFUSEMATERIALSOURCE
Diffuse Farbquelle für Beleuchtungsberechnungen.
D3DRS_SPECULARMATERIALSOURCE
Glanzfarbenquelle für Beleuchtungsberechnungen.
D3DRS_AMBIENTMATERIALSOURCE
Umgebungsfarbquelle für Beleuchtungsberechnungen.
D3DRS_EMISSIVEMATERIALSOURCE
Emissive Farbquelle für Beleuchtungsberechnungen.
D3DRS_VERTEXBLEND
Anzahl der Matrizen, die zum Durchführen einer Geometriemischung verwendet werden sollen, sofern vorhanden.
D3DRS_CLIPPLANEENABLE
Aktiviert oder deaktiviert benutzerdefinierte Clippingebenen. Gültige Werte sind alle DWORD-Werte, bei denen der status jedes Bits (festgelegt oder nicht festgelegt) den Aktivierungsstatus einer entsprechenden benutzerdefinierten Clippingebene umschaltet. Das am wenigsten signifikante Bit (Bit 0) steuert die erste Clippingebene bei Index 0, und nachfolgende Bits steuern die Aktivierung von Clippingebenen bei höheren Indizes. Wenn ein Bit festgelegt ist, wendet das System während des Szenenrenderings die entsprechende Clippingebene an. Der Standardwert ist 0.
D3DRS_POINTSIZE
Ein Gleitkommawert, der die Größe angibt, die für die Berechnung der Punktgröße verwendet werden soll, wenn die Punktgröße nicht für jeden Scheitelpunkt angegeben ist. Dieser Wert wird nicht verwendet, wenn der Scheitelpunkt die Punktgröße enthält. Dieser Wert befindet sich in Bildschirmraumeinheiten, wenn D3DRS_POINTSCALEENABLE FALSE ist. Andernfalls ist dieser Wert in Weltraumeinheiten. Der Standardwert ist der Wert, den ein Treiber zurückgibt. Wenn ein Treiber 0 oder 1 zurückgibt, ist der Standardwert 64, was die Emulation der Softwarepunktgröße ermöglicht.
D3DRS_POINTSIZE_MIN
Ein float-Wert, der die Mindestgröße von Punktgrundtypen angibt. Punktgrundtypen werden während des Renderings auf diese Größe geklemmt. Wenn Sie dies auf Werte unter 1,0 festlegen, fallen Punkte aus, wenn der Punkt keinen Pixelpunkt abdeckt und das Antialiasing deaktiviert oder mit verringerter Intensität gerendert wird, wenn antialiasing aktiviert ist. Der Standardwert ist 1,0f. Der Bereich für diesen Wert ist größer oder gleich 0,0f.
D3DRS_POINTSPRITEENABLE
Bei TRUE werden Die Texturkoordinaten von Punktgrundtypen so festgelegt, dass auf jedem Punkt vollständige Texturen zugeordnet werden. Bei FALSE werden die Vertextexturkoordinaten für den gesamten Punkt verwendet. Der Standardwert ist FALSE. Sie können Punkte im DirectX 7-Stil mit einem einzelnen Pixel erreichen, indem Sie D3DRS_POINTSCALEENABLE auf FALSE und D3DRS_POINTSIZE auf 1,0 festlegen, die standardwerte sind.
D3DRS_POINTSCALEENABLE
Ein Bool-Wert, der die Berechnung der Größe für Punktgrundtypen steuert. Bei TRUE wird die Punktgröße als Kameraraumwert interpretiert und von der Entfernungsfunktion und dem Frustum zum Viewport der y-Achsenskalierung skaliert, um die endgültige Größe des Bildschirmraumpunkts zu berechnen. Bei FALSE wird die Punktgröße als Bildschirmbereich interpretiert und direkt verwendet. Der Standardwert ist FALSE.
D3DRS_POINTSCALE_A
Ein float-Wert, der die entfernungsbasierte Größendämpfung für Punktgrundtypen steuert. Nur aktiv, wenn D3DRS_POINTSCALEENABLE TRUE ist. Der Standardwert ist 1,0f. Der Bereich für diesen Wert ist größer oder gleich 0,0f.
D3DRS_POINTSCALE_B
Ein float-Wert, der die entfernungsbasierte Größendämpfung für Punktgrundtypen steuert. Nur aktiv, wenn D3DRS_POINTSCALEENABLE TRUE ist. Der Standardwert ist 0,0f. Der Bereich für diesen Wert ist größer oder gleich 0,0f.
D3DRS_POINTSCALE_C
Ein float-Wert, der die entfernungsbasierte Größendämpfung für Punktgrundtypen steuert. Nur aktiv, wenn D3DRS_POINTSCALEENABLE TRUE ist. Der Standardwert ist 0,0f. Der Bereich für diesen Wert ist größer oder gleich 0,0f.
D3DRS_MULTISAMPLEANTIALIAS
Ein Bool-Wert, der bestimmt, wie einzelne Stichproben bei Verwendung eines Multisample-Renderzielpuffers berechnet werden. Wenn diese Einstellung auf TRUE festgelegt ist, werden die stichprobenbasierten Stichproben berechnet, sodass ein vollständiges Antialiasing durch Sampling an unterschiedlichen Beispielpositionen für jede einzelne Stichprobe durchgeführt wird. Wenn dieser Wert auf FALSE festgelegt ist, werden die stichprobenbasierten Stichproben alle mit demselben Beispielwert geschrieben, der in der Pixelmitte abgetastet wird, wodurch ein nicht antialiasedes Rendern in einen Puffer mit mehreren Stichproben ermöglicht wird. Dieser Renderzustand hat keine Auswirkungen auf das Rendern in einem einzelnen Beispielpuffer. Der Standardwert ist TRUE.
D3DRS_MULTISAMPLEMASK
Jedes Bit in dieser Maske, beginnend mit dem mindestens signifikanten Bit (Least Significant Bit, LSB), steuert die Änderung eines der Stichproben in einem Multisample-Renderziel. Daher enthält das niedrige Byte für ein Renderziel mit 8 Stichproben die acht Schreibberechtigungen für jedes der acht Beispiele. Dieser Renderzustand hat keine Auswirkungen auf das Rendern in einem einzelnen Beispielpuffer. Der Standardwert ist 0xFFFFFFFF.

Dieser Renderzustand ermöglicht die Verwendung eines Multisampelpuffers als Akkumulationspuffer, wobei ein Mehrpass-Rendering der Geometrie durchgeführt wird, wobei jeder Durchlauf eine Teilmenge von Beispielen aktualisiert.
Wenn n Multisamples und k aktivierte Stichproben vorhanden sind, sollte die resultierende Intensität des gerenderten Bilds k/n sein. Jede Rgb-Komponente jedes Pixels wird nach k/n faktoriert.
D3DRS_PATCHEDGESTYLE
Legt fest, ob Patchränder die Gleitkommastil-Tessellation verwenden.
D3DRS_DEBUGMONITORTOKEN
Nur für das Debuggen des Monitors festgelegt.
D3DRS_POINTSIZE_MAX
Ein float-Wert, der die maximale Größe angibt, bis zu der Sprites eingespannt werden. Der Wert muss kleiner oder gleich dem MaxPointSize-Member von D3DCAPS9 und größer oder gleich D3DRS_POINTSIZE_MIN sein. Der Standardwert ist 64,0.
D3DRS_INDEXEDVERTEXBLENDENABLE
Ein Bool-Wert, der die indizierte Vertexmischung aktiviert oder deaktiviert. Der Standardwert ist FALSE. Wenn diese Einstellung auf TRUE festgelegt ist, ist die indizierte Vertexmischung aktiviert. Wenn dieser Wert auf FALSE festgelegt ist, ist die indizierte Vertexmischung deaktiviert. Wenn dieser Renderzustand aktiviert ist, muss der Benutzer Matrixindizes als gepacktes DWORD mit jedem Scheitelpunkt übergeben. Wenn der Renderzustand deaktiviert ist und die Vertexmischung durch den D3DRS_VERTEXBLEND Zustand aktiviert wird, entspricht dies matrixindizes 0, 1, 2, 3 in jedem Scheitelpunkt.
D3DRS_COLORWRITEENABLE
UINT-Wert, der einen Schreibvorgang pro Kanal für den Renderzielfarbpuffer ermöglicht. Ein festgelegtes Bit führt dazu, dass der Farbkanal während des 3D-Renderings aktualisiert wird. Ein deutliches Bit führt dazu, dass der Farbkanal nicht betroffen ist.
D3DRS_TWEENFACTOR
Ein float-Wert, der den Tween-Faktor steuert.
D3DRS_BLENDOP
Der Wert, der verwendet wird, um den arithmetischen Vorgang auszuwählen, der angewendet wird, wenn der Renderzustand der Alphamischung D3DRS_ALPHABLENDENABLE auf TRUE festgelegt ist.

Wenn die D3DPMISCCAPS_BLENDOP-Gerätefunktion nicht unterstützt wird, wird D3DBLENDOP_ADD ausgeführt.
D3DRS_POSITIONDEGREE
Interpolationsgrad der N-Patchposition. Die Werte können D3DDEGREE_CUBIC (Standard) oder D3DDEGREE_LINEAR sein.
D3DRS_NORMALDEGREE
Normaler Interpolationsgrad N-Patch. Die Werte können D3DDEGREE_LINEAR (Standard) oder D3DDEGREE_QUADRATIC sein.
D3DRS_SCISSORTESTENABLE
TRUE, um Scissor-Tests zu aktivieren, und FALSE, um sie zu deaktivieren. Der Standardwert ist FALSE.
D3DRS_SLOPESCALEDEPTHBIAS
Wird verwendet, um zu bestimmen, wie viel Verzerrung auf koplanare Grundtypen angewendet werden kann, um Z-Fighting zu reduzieren. Der Standardwert ist 0.
D3DRS_ANTIALIASEDLINEENABLE
TRUE, um das Zeilen antialiasing zu aktivieren, FALSE zum Deaktivieren der Zeilen antialiasing. Der Standardwert ist FALSE.
D3DRS_MINTESSELLATIONLEVEL
Minimale Tessellationsebene. Der Standardwert ist 1,0f.
D3DRS_MAXTESSELLATIONLEVEL
Maximale Tessellationsebene. Der Standardwert ist 1,0f.
D3DRS_ADAPTIVETESS_X
Der Betrag wird in x-Richtung adaptiv tessellate. Der Standardwert ist 0,0f.
D3DRS_ADAPTIVETESS_Y
Betrag, um adaptive Tessellate in y-Richtung zu tesselieren. Der Standardwert ist 0,0f.
D3DRS_ADAPTIVETESS_Z
Betrag, um adaptive Tessellate in z-Richtung zu tesselieren. Der Standardwert ist 1,0f.
D3DRS_ADAPTIVETESS_W
Betrag, um adaptive Tessellate in w-Richtung zu tesselieren. Der Standardwert ist 0,0f.
D3DRS_ENABLEADAPTIVETESSELLATION
TRUE, um adaptive Tessellation zu aktivieren, FALSE, um sie zu deaktivieren.
D3DRS_TWOSIDEDSTENCILMODE
TRUE ermöglicht die zweiseitige Schablone, FALSE deaktiviert sie. Der Standardwert ist FALSE. Die Anwendung sollte D3DRS_CULLMODE auf D3DCULL_NONE festlegen, um den zweiseitigen Schablonenmodus zu aktivieren. Wenn die Dreieckswicklungsreihenfolge im Uhrzeigersinn erfolgt, werden die D3DRS_STENCIL*-Vorgänge verwendet. Wenn die Wickelreihenfolge gegen den Uhrzeigersinn erfolgt, werden die D3DRS_CCW_STENCIL*-Vorgänge verwendet.
D3DRS_CCW_STENCILFAIL
Schablonenvorgang, der ausgeführt werden soll, wenn der CCW-Schablonentest fehlschlägt.
D3DRS_CCW_STENCILZFAIL
Schablonenvorgang, der ausgeführt werden soll, wenn der CCW-Schablonentest erfolgreich ist und Z-Test fehlschlägt.
D3DRS_CCW_STENCILPASS
Schablonenvorgang, der ausgeführt werden soll, wenn sowohl die CCW-Schablone als auch die Z-Tests erfolgreich sind.
D3DRS_CCW_STENCILFUNC
Die Vergleichsfunktion. CCW-Schablonentest besteht, wenn ((ref & Mask) Schablonenfunktion (Schablone & Maske)) true ist.
D3DRS_COLORWRITEENABLE1
Zusätzliche ColorWriteEnable-Werte für die Geräte.
D3DRS_COLORWRITEENABLE2
Zusätzliche ColorWriteEnable-Werte für die Geräte.
D3DRS_COLORWRITEENABLE3
Zusätzliche ColorWriteEnable-Werte für die Geräte.
D3DRS_BLENDFACTOR
Ein konstanter Mischfaktor während der Alphamischung.
D3DRS_SRGBWRITEENABLE
Aktivieren Sie Renderzielschreibvorgänge, um gamma auf sRGB korrigiert zu werden. Das Format muss D3DUSAGE_SRGBWRITE verfügbar machen. Der Standardwert ist 0.
D3DRS_DEPTHBIAS
Ein Gleitkommawert, der zum Vergleich von Tiefenwerten verwendet wird.
D3DRS_WRAP8
Siehe D3DRS_WRAP0.
D3DRS_WRAP9
Siehe D3DRS_WRAP0.
D3DRS_WRAP10
Siehe D3DRS_WRAP0.
D3DRS_WRAP11
Siehe D3DRS_WRAP0.
D3DRS_WRAP12
Siehe D3DRS_WRAP0.
D3DRS_WRAP13
Siehe D3DRS_WRAP0.
D3DRS_WRAP14
Siehe D3DRS_WRAP0.
D3DRS_WRAP15
Siehe D3DRS_WRAP0.
D3DRS_SEPARATEALPHABLENDENABLE
TRUE aktiviert den separaten Mischmodus für den Alphakanal. Der Standardwert ist FALSE.

Wenn sie auf FALSE festgelegt sind, müssen die Render-Ziel-Mischfaktoren und -vorgänge, die auf Alpha angewendet werden, mit den für Farbe definierten Vorgängen identisch sein. Dieser Modus wird bei Implementierungen, die die Obergrenze nicht D3DPMISCCAPS_SEPARATEALPHABLEND, effektiv mit FALSE verdrahtet.
D3DRS_SRCBLENDALPHA
Dieser Wert wird ignoriert, es sei denn, D3DRS_SEPARATEALPHABLENDENABLE ist TRUE.
D3DRS_DESTBLENDALPHA
Dieser Wert wird ignoriert, es sei denn, D3DRS_SEPARATEALPHABLENDENABLE ist TRUE.
D3DRS_BLENDOPALPHA
Der Wert, der zum Auswählen des arithmetischen Vorgangs verwendet wird, der auf die separate Alphamischung angewendet wird, wenn der Renderzustand D3DRS_SEPARATEALPHABLENDENABLE auf TRUE festgelegt ist.
D3DRS_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.

Hinweise

Diese Renderzustände sind nur für die interne Verwendung bestimmt:

D3DRENDERSTATE_EVICTMANAGEDTEXTURES

Bestimmt, ob Texturen aus dem Arbeitsspeicher entfernt werden. Der Treiber verwendet einen BOOL-Datentyp ohne Standardwert, um zu erkennen, ob entfernt werden soll.

Dieser Renderzustand bestimmt, ob der Treiber die von ihm verwalteten Texturen (im Gegensatz zu Texturen, die von der Direct3D-Runtime verwaltet werden) aus dem Videospeicher entfernt. Wenn der Wert des Renderzustands TRUE ist, räumt der Treiber die Texturen aus. Andernfalls räumt der Treiber diese Texturen nicht aus.

D3DRENDERSTATE_SCENECAPTURE

Gibt entweder Anfangsszeneinformationen oder Endszeneinformationen für geometrische Daten an, die in einem Frame erfasst werden. Der Treiber verwendet einen BOOL-Datentyp mit dem Standardwert TRUE , um Szenenerfassungsinformationen zu erkennen.

Der Treiber antwortet auf D3DRENDERSTATE_SCENECAPTURE zuerst mit TRUE für Szeneninformationen und als nächstes mit FALSE für Endszeneinformationen, um geometrische Daten innerhalb eines Frames zu erfassen. Eine Beispielimplementierung finden Sie im Permedia2-Beispieltreiber , der im Lieferumfang des Windows Driver Development Kit (DDK) enthalten ist. Die Verwendung des D3DRENDERSTATE_SCENECAPTURE Renderzustands in einem D3dDrawPrimitives2-Aufruf ersetzt die Legacy-Rückrufroutine D3DHALCallbacks-D3dSceneCapture>.

Beim Aktualisieren eines Treibers, der die Legacy-Rückrufroutine D3DHALCallbacks-D3dSceneCapture> implementiert, muss auf eine mit dem D3DRENDERSTATE_SCENECAPTURE Renderzustand aktualisiert werden. Die D3dSceneCapture-Rückrufroutine verwendet die Konstanten D3DHAL_SCENE_CAPTURE_START und D3DHAL_SCENE_CAPTURE_END, um den Anfang und das Ende einer Szene anzugeben. Die Werte dieser Konstanten sind jeweils 0 und 1. Wenn Sie diese Konstanten anstelle von TRUE und FALSE in diesem Renderzustand verwenden, ist die Bedeutung das genaue Gegenteil von dem, was Sie beabsichtigen.

D3DRS_DELETERTPATCH

Nur DirectX 8.0 und höhere Versionen.

Löscht entweder einen rechteckigen oder dreieckigen Patch aus dem Arbeitsspeicher. Der Treiber verwendet einen DWORD-Datentyp ohne Standardwert, um den zu löschenden Patch zu erkennen.

Dieser Renderzustand benachrichtigt den Treiber, dass ein Patch gelöscht werden soll. Der Wert dieses Renderzustands ist das Handle für den betroffenen Patch. Alle zwischengespeicherten Informationen sollten freigegeben werden, und das Handle sollte aus der Patch handle-Tabelle des Treibers entfernt werden. Dieser Renderzustand ist für Anwendungen nicht sichtbar, wird aber intern generiert, wenn eine Anwendung die DeletePatch-Funktion aufruft. Dieser Renderzustand wird nur dann an den Treiber gesendet, wenn Patches explizit von DeletePatch gelöscht werden. Alle anderen Patches sollten bereinigt werden, wenn das Gerät zerstört wird.

D3DRS_MAXPIXELSHADERINST

Nur DirectX 9.0 und höhere Versionen.

Bestimmt die maximale Anzahl von Anweisungen, die der Pixel-Shader-Assembler ausführen kann.

Der Treiber verwendet einen DWORD-Datentyp mit dem Standardwert D3DINFINITEINSTRUCTIONS (0xffffffff), um die maximale Anzahl von Pixel-Shader-Anweisungen zu melden. Diese maximale Anzahl hängt von der Version des Pixel-Shaders ab, den das Anzeigegerät unterstützt, wie in der folgenden Tabelle gezeigt.

Version Maximale Anzahl
früher als 2_0 0
2_0 Von 96 bis D3DINFINITEINSTRUCTIONS
3_0 und höher Von 2¹⁶ (0x0000ffff) bis D3DINFINITEINSTRUCTIONS

D3DINFINITEINSTRUCTIONS stellt einen praktisch unbegrenzten Betrag dar.

Gültige Werte für diesen Renderzustand sind Zahlen mit 2; wenn der Treiber eine andere ganze Zahl festlegt, verwendet die Runtime die nächste Leistung von 2 Zahlen.

Die Runtime legt das MaxVShaderInstructionsExecuted-Element der D3DCAPS9-Struktur auf diese maximale Anzahl fest.

D3DRS_MAXVERTEXSHADERINST

Nur DirectX 9.0 und höhere Versionen.

Bestimmt die maximale Anzahl von Anweisungen, die der Vertex-Shaderassen-Assembler ausführen kann.

Der Treiber verwendet einen DWORD-Datentyp mit dem Standardwert D3DINFINITEINSTRUCTIONS (0xffffffff), um die maximale Anzahl von Vertex-Shader-Anweisungen zu melden. Diese maximale Anzahl hängt von der Version des Vertex-Shaders ab, den das Anzeigegerät unterstützt, wie in der folgenden Tabelle gezeigt.

Version Maximale Anzahl
früher als 2_0 0
2_0 und höher Von 2¹⁶ (0x0000ffff) bis D3DINFINITEINSTRUCTIONS

D3DINFINITEINSTRUCTIONS stellt einen praktisch unbegrenzten Betrag dar.

Gültige Werte für diesen Renderzustand sind Zahlen mit 2; wenn der Treiber eine andere ganze Zahl festlegt, verwendet die Runtime die nächste Leistung von 2 Zahlen.

Die Runtime legt das MaxVShaderInstructionsExecuted-Element der D3DCAPS9-Struktur auf diese maximale Anzahl fest.

Der Treiber verwendet diese Renderzustände, wenn er Grafikrendering ausführt. Nur treiberspezifische Renderzustände sind in der Dokumentation zum Windows Driver Kit (WDK) enthalten. Die Renderzustände, auf die DirectX-Anwendungen zugreifen können, sind in der DirectX SDK-Dokumentation enthalten. Diese Renderzustände auf Anwendungsebene umfassen Merkmale wie die Aktivierung der Alphamischung, die Aktivierung des Ditherings, die Verwendung von Direct3D-Beleuchtung und die Art der zu verwendenden Schattierung.

Um einen bestimmten Renderzustand zu aktualisieren, speichert Direct3D Informationen zum Renderzustand und ruft dann die D3dDrawPrimitives2-Rückrufroutine des Treibers auf. Die dem Treiber bereitgestellten Informationen ermöglichen folgendes:

  • Legen Sie fest, dass mindestens ein Renderzustand aktualisiert werden soll.

  • Bestimmen Sie, welche Renderzustände aktualisiert werden sollen und welche neuen Renderzustandswerte lauten sollen.

Beachten Sie, dass der Treiber im relevanten Element der D3DPRIMCAPS-Struktur zuvor Funktionsflags festgelegt haben muss, damit bestimmte Renderzustände berücksichtigt werden können.

Um ein bestimmtes Renderzustandsupdate anzugeben, fügt Direct3D eine D3DHAL_DP2COMMAND-Struktur in den Befehlspuffer ein, legt das bCommand-Element dieser Struktur auf D3DDP2OP_RENDERSTATE fest (siehe beschreibung für D3DDP2OP_RENDERSTATE in D3DHAL_DP2OPERATION), und legt den wStateCount-Member derselben Struktur auf die Anzahl der zu aktualisierenden Renderzustände fest.

Direkt nach der D3DHAL_DP2COMMAND-Struktur fügt Direct3D eine D3DHAL_DP2RENDERSTATE Struktur in den Befehlspuffer ein, damit jeder Renderzustand aktualisiert wird. Das RenderState-Element dieser Struktur identifiziert den zu ändernden Renderzustand. Der neue Wert dieses Renderzustands wird entweder im dwState-Member (für DWORD-Werte) oder im fState-Member (für D3DVALUE Werte) angegeben.

Die folgende Abbildung zeigt einen Teil des Befehlspuffers, der einen D3DDP2OP_RENDERSTATE-Befehl und zwei D3DHAL_DP2RENDERSTATE-Strukturen enthält. Die erste der drei Strukturen gibt an, dass zwei Renderzustände aktualisiert werden sollen. Die zweite Struktur gibt an, dass der D3DRENDERSTATE_FILLMODE Renderzustand in D3DFILL_SOLID geändert werden soll. Die dritte Struktur gibt an, dass der D3DRENDERSTATE_SHADEMODE Renderzustand auf D3DSHADE_GOURAUD aktualisiert werden soll.

Abbildung eines Befehlspuffers mit einem D3DDP2OP_RENDERSTATE Befehl und zwei D3DHAL_DP2RENDERSTATE Strukturen

Zusätzliche Hinweise

Vollständige Auflistungen aller aktivierten Renderzustandstypen finden Sie in der DirectX SDK-Dokumentation im D3DTEXTURESTAGESTATETYPE, D3DTEXTUREOP und D3DTEXTUREFILTER aufgelisteten Typen.

Es wurden einige Änderungen am D3DRENDERSTATETYPE aufgelisteten Typs für DirectX 5.0 und darüber hinaus vorgenommen. D3DRENDERSTATE_BLENDENABLE wurde vollständig entfernt, obwohl es in der Headerdatei d3dtypes.h als D3DRENDERSTATE_ALPHABLENDENABLE definiert ist. Eine Erklärung finden Sie unter D3DRENDERSTATE_COLORKEYENABLE. Die 128 ganzzahligen Werte im Intervall [128, 255] sind für Texturkoordinatenumbruchflags reserviert. Diese werden mit den makros D3DWRAP_U und D3DWRAP_V erstellt. Die Verwendung eines Flags-Worts behält die Vorwärtskompatibilität mit Texturkoordinaten mit höherer Dimension als 2D bei.

Multitexture-Makrovorgänge und -D3DRENDERSTATE_TEXTUREFACTOR überschreiben alle Steuerelemente für die Füllphase pro Textur (COLOR{OP,ARG1,ARG2} & ALPHA{OP,ARG1,ARG2}).

Anforderungen

Anforderung Wert
Header d3d9types.h (einschließlich D3dhal.h)