Freigeben über


D3DRENDERSTATETYPE-Aufzählung (d3d9types.h)

Der D3DRENDERSTATETYPE Aufzählungstyp listet eine Vielzahl von Attributen oder Renderzuständen auf. Die Enumerationen 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 Tiefenpufferzustand 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 Element kann eine Anwendung verhindern, dass der Tiefenpuffer vom System mit neuen Tiefenwerten aktualisiert wird. Wenn FALSE, werden Tiefenvergleiche weiterhin gemäß dem Renderzustand D3DRS_ZFUNC durchgeführt, vorausgesetzt, dass tiefenpufferung stattfindet, aber Tiefenwerte werden nicht in den Puffer geschrieben.
D3DRS_ALPHATESTENABLE
TRUE, um Alphatests pro Pixel zu aktivieren. Wenn der Test bestanden wird, wird das Pixel vom Framepuffer verarbeitet. Andernfalls wird die gesamte Framepufferverarbeitung für das Pixel übersprungen.
D3DRS_LASTPIXEL
Der Standardwert ist TRUE, wodurch das Zeichnen des letzten Pixels in einer Zeile ermöglicht wird. Um die Zeichnung 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 umgekehrt ausgerichtete Dreiecke überhaupt gekullt werden.
D3DRS_ZFUNC
Ein D3DCMPFUNC Enumerationstyp, der es einer Anwendung ermöglicht, ein Pixel basierend auf seinem Abstand von der Kamera zu akzeptieren 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 dann in den Tiefenpuffer geschrieben, wenn der Renderzustand WAHR ist.
D3DRS_ALPHAREF
Wert, der einen Referenz-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 zwischen 0x00000000 und 0x000000FF liegen. Der Standardwert ist 0.
D3DRS_ALPHAFUNC
Ein D3DCMPFUNC Enumerationstyp, der es einer Anwendung ermöglicht, ein Pixel basierend auf seinem Alphawert zu akzeptieren oder abzulehnen.
D3DRS_DITHERENABLE
TRUE, um dithering zu aktivieren. Der Standardwert ist FALSE.
D3DRS_ALPHABLENDENABLE
TRUE, um alphavermischungte Transparenz zu aktivieren. Der Standardwert ist FALSE.

Der Typ der Alphamischung wird durch die D3DRS_SRCBLEND und D3DRS_DESTBLEND Renderzustände bestimmt.
D3DRS_FOGENABLE
TRUE zum Aktivieren der Nebelmischung. 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 objekt, das beleuchtet wird, am Ursprung des Objekts befindet. Dies gibt die erwarteten Ergebnisse, solange das Objekt um den Ursprung modelliert wird und der Abstand zwischen Licht und Objekt relativ groß ist. In anderen Fällen sind die Ergebnisse nicht definiert.

Wenn dieses Element 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, bei der Pixel- oder Vertex-Nebeleffekte für den linearen Nebelmodus beginnen. Der Standardwert ist 0,0f. Die Tiefe wird im Weltraum für Vertex-Nebel und entweder Geräteraum [0,0, 1,0] oder Weltraum für Pixelnebel angegeben. Bei Pixelnebel befinden sich diese Werte im Gerätebereich, wenn das System Z für Nebelberechnungen und weltweltenbasierten Raum verwendet, wenn das System augenrelativen Nebel (w-fog) verwendet.
D3DRS_FOGEND
Tiefe, bei der Pixel- oder Vertex-Nebeleffekte für den linearen Nebelmodus enden. Der Standardwert ist 1,0f. Die Tiefe wird im Weltraum für Vertex-Nebel und entweder Geräteraum [0,0, 1,0] oder Weltraum für Pixelnebel angegeben. Bei Pixelnebel befinden sich diese Werte im Gerätebereich, wenn das System Z für Nebelberechnungen und im Weltraum verwendet, wenn das System augenrelativen Nebel (w-fog) verwendet.
D3DRS_FOGDENSITY
Nebeldichte für Pixel- oder Vertex-Nebel in exponentiellen Nebelmodi (D3DFOG_EXP und D3DFOG_EXP2). Gültige Dichtewerte reichen von 0,0 bis 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 Bereich anstelle der Tiefe in den Berechnungen verwenden.

Der Bereich ist der richtige Faktor, der für Nebelberechnungen verwendet werden soll, aber die Tiefe wird häufig verwendet, da der Bereich zeitaufwändig ist, um zu berechnen und tiefe ist allgemein bereits verfügbar. Die Verwendung von Tiefen zum Berechnen des Nebels hat die unerwünschte Wirkung, dass sich die Nebeligkeit der peripheren Objekte ändert, während sich das Auge des Betrachters bewegt – in diesem Fall ändert sich die Tiefe, und der Bereich bleibt konstant.

Da derzeit keine Hardware pro Pixel-bereichsbasiertem Nebel unterstützt, wird die Bereichskorrektur nur für Vertex-Nebel angeboten.
D3DRS_STENCILENABLE
TRUE, um schablonen zu aktivieren, oder FALSE zum Deaktivieren der Schablonen. Der Standardwert ist FALSE.
D3DRS_STENCILFAIL
Ein D3DSTENCILOP Enumerationstyp, der den auszuführenden Schablonenvorgang angibt, wenn der Schablonentest fehlschlägt. Der Standardwert ist D3DSTENCILOP_KEEP.
D3DRS_STENCILZFAIL
Ein D3DSTENCILOP Enumerationstyp, der den auszuführenden Schablonenvorgang angibt, wenn der Schablonentest bestanden wird und der Tiefentest (Z-Test) fehlschlägt.
D3DRS_STENCILPASS
Ein D3DSTENCILOP Enumerationstyp, der den auszuführenden Schablonenvorgang angibt, wenn sowohl die Schablone als auch die Tiefentests (z) bestehen.
D3DRS_STENCILFUNC
Die Vergleichsfunktion wird verwendet, um den Referenzwert mit einem Schablonenpuffereintrag zu vergleichen. Dieser Vergleich gilt nur für die Bits im Referenzwert und den Schablonenpuffereintrag, die im Schablonenformat festgelegt sind (durch den D3DRS_STENCILMASK Renderzustand festgelegt). Wenn TRUE, besteht der Schablonentest.
D3DRS_STENCILREF
Ein Int-Bezugswert für den Schablonentest. Der Standardwert ist 0.
D3DRS_STENCILMASK
Maske, die auf den Referenzwert und jeden Schablonenpuffereintrag angewendet wird, um die signifikanten Bits für den Schablonentest zu bestimmen. Die Standardmaske ist 0xFFFFFFFF.
D3DRS_STENCILWRITEMASK
Schreibformat, das auf Werte angewendet wird, die in den Schablonenpuffer geschrieben wurden. Die Standardmaske ist 0xFFFFFFFF.
D3DRS_TEXTUREFACTOR
Farbe, die für die Mehrfachtextvermischung mit dem Argument D3DTA_TFACTOR Texturmischung oder dem D3DTOP_BLENDFACTORALPHA Texturmischungsvorgang verwendet wird.
D3DRS_WRAP0
Texturumbruchverhalten für mehrere 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. Dies führt dazu, dass das System in richtung der ersten, zweiten, dritten und vierten Dimension umgebrochen wird, die manchmal als "s", "t", "r" und "q" bezeichnet wird, für eine bestimmte Textur. 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 den primitiven Clipping durch Direct3D oder FALSE zu aktivieren, um ihn zu deaktivieren. Der Standardwert ist TRUE.
D3DRS_LIGHTING
TRUE, um direct3D-Beleuchtung oder FALSE zu aktivieren, um sie zu deaktivieren. Der Standardwert ist TRUE. Nur Scheitelpunkte, die einen Scheitelpunkt normal enthalten, sind ordnungsgemäß beleuchtet; Scheitelpunkte, die keine normale Verwendung eines Punktprodukts von 0 in allen Beleuchtungsberechnungen enthalten.
D3DRS_AMBIENT
Umgebungslichtfarbe.
D3DRS_FOGVERTEXMODE
Nebelformel, die für Scheitelpunkt-Nebel verwendet werden soll.
D3DRS_COLORVERTEX
TRUE, um die Farbe pro Scheitelpunkt oder FALSE zu aktivieren, um sie zu deaktivieren. Der Standardwert ist TRUE. Die Aktivierung der Farbe pro Scheitelpunkt ermöglicht es dem System, die für einzelne Scheitelpunkte definierte Farbe in seine Beleuchtungsberechnungen einzuschließen.
D3DRS_LOCALVIEWER
TRUE, um kamerarelative Glanzlichter oder FALSE zu ermöglichen, orthogonale Glanzlichter zu verwenden. Der Standardwert ist TRUE. Anwendungen, die orthogonale Projektion verwenden, sollten FALSE angeben.
D3DRS_NORMALIZENORMALS
TRUE, um die automatische Normalisierung von Vertexnormalen oder FALSE zu aktivieren, um sie zu deaktivieren. Der Standardwert ist FALSE. Wenn Sie dieses Feature aktivieren, wird das System die Vertexnormalen für Scheitelpunkte normalisieren, nachdem sie in den Kameraraum umgewandelt wurden, was rechenaufwändig 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 Ausführen der Geometriemischung verwendet werden sollen, falls vorhanden.
D3DRS_CLIPPLANEENABLE
Aktiviert oder deaktiviert benutzerdefinierte Clippingebenen. Gültige Werte sind alle DWORD-Werte, in denen der Status jedes Bits (festgelegt oder nicht festgelegt) den Aktivierungszustand einer entsprechenden benutzerdefinierten Beschneidungsebene 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 Float-Wert, der die für die Punktgrößenberechnung zu verwendende Größe angibt, in Fällen, in denen die Punktgröße für jeden Scheitelpunkt nicht angegeben ist. Dieser Wert wird nicht verwendet, wenn der Scheitelpunkt die Punktgröße enthält. Dieser Wert befindet sich in Bildschirmraumeinheiten, wenn D3DRS_POINTSCALEENABLE FALSCH ist; andernfalls befindet sich 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, wodurch die Softwarepunktgrößenemulation ermöglicht wird.
D3DRS_POINTSIZE_MIN
Ein Float-Wert, der die Mindestgröße von Punktgrundtypen angibt. Punktgrundtypen werden während des Renderings an diese Größe geklemmt. Wenn Sie dies auf Werte festlegen, die kleiner als 1,0 sind, wird ein Punkt abgebrochen, wenn der Punkt kein Pixelzentrum abdeckt und Antialiasing deaktiviert oder mit reduzierter 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
Wenn WAHR, werden Texturkoordinaten von Punktgrundtypen festgelegt, sodass vollständige Texturen auf jedem Punkt zugeordnet werden. Wenn FALSE, werden die Vertextextkoordinaten für den gesamten Punkt verwendet. Der Standardwert ist FALSE. Sie können DirectX 7-Punkt im Stil mit einem Pixel erreichen, indem Sie D3DRS_POINTSCALEENABLE auf FALSE und D3DRS_POINTSIZE auf 1,0 festlegen, bei denen es sich um die Standardwerte handelt.
D3DRS_POINTSCALEENABLE
Ein boolescher Wert, der die Berechnung der Größe für Punktgrundtypen steuert. Wenn WAHR, wird die Punktgröße als Kameraraumwert interpretiert und von der Entfernungsfunktion und dem Frustum skaliert, um die Skalierung der y-Achse zu sehen, um die endgültige Größe des Bildschirmraumpunkts zu berechnen. Wenn FALSE, wird die Punktgröße als Bildschirmbereich interpretiert und direkt verwendet. Der Standardwert ist FALSE.
D3DRS_POINTSCALE_A
Ein Float-Wert, der die Entfernungsgrößendämpfung für Punktgrundtypen steuert. Nur aktiv, wenn D3DRS_POINTSCALEENABLE WAHR 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 Entfernungsgrößendämpfung für Punktgrundtypen steuert. Nur aktiv, wenn D3DRS_POINTSCALEENABLE WAHR 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 Entfernungsgrößendämpfung für Punktgrundtypen steuert. Nur aktiv, wenn D3DRS_POINTSCALEENABLE WAHR ist. Der Standardwert ist 0,0f. Der Bereich für diesen Wert ist größer oder gleich 0,0f.
D3DRS_MULTISAMPLEANTIALIAS
Ein Boolwert, der bestimmt, wie einzelne Beispiele bei Verwendung eines Multisample-Renderzielpuffers berechnet werden. Bei Festlegung auf TRUE werden die mehrfachen Beispiele berechnet, sodass die Antialiasing in voller Szene durch Sampling an unterschiedlichen Beispielpositionen für jedes mehrfache Beispiel durchgeführt wird. Wenn dieser Wert auf FALSE festgelegt ist, werden alle mehrere Beispiele mit demselben Beispielwert geschrieben, der in der Pixelmitte durchsucht wird, wodurch das Rendern ohne Antialiasen in einen Multisamplepuffer ermöglicht wird. Dieser Renderzustand hat keine Auswirkung beim Rendern in einem einzelnen Beispielpuffer. Der Standardwert ist TRUE.
D3DRS_MULTISAMPLEMASK
Jedes Bit in dieser Maske, beginnend mit dem geringsten signifikanten Bit (LSB), steuert die Änderung eines der Beispiele in einem Multisample-Renderziel. Daher enthält das niedrige Byte für ein 8-Beispiel-Renderziel die acht Schreibvorgänge für jedes der acht Beispiele. Dieser Renderzustand hat keine Auswirkung beim Rendern in einem einzelnen Beispielpuffer. Der Standardwert ist 0xFFFFFFFF.

Dieser Renderzustand ermöglicht die Verwendung eines Multisamplepuffers als Akkumulationspuffer, wodurch das Rendern von Geometrie mit mehreren Durchlaufvorgängen eine Teilmenge von Beispielen aktualisiert wird.
Wenn n Multisamples und k aktivierte Proben vorhanden sind, sollte die resultierende Intensität des gerenderten Bilds k/n sein. Jede RGB-Komponente jedes Pixels wird durch k/n factored.
D3DRS_PATCHEDGESTYLE
Legt fest, ob Patchränder float-Formatvorlagen-Tessellation verwenden.
D3DRS_DEBUGMONITORTOKEN
Wird nur für das Debuggen des Monitors festgelegt.
D3DRS_POINTSIZE_MAX
Ein Float-Wert, der die maximale Größe angibt, an die Sprites des Punkts geklemmt werden. Der Wert muss kleiner oder gleich dem MaxPointSize-Element von D3DCAPS9 und größer oder gleich D3DRS_POINTSIZE_MIN sein. Der Standardwert ist 64,0.
D3DRS_INDEXEDVERTEXBLENDENABLE
Ein boolescher Wert, der die indizierte Vertexmischung aktiviert oder deaktiviert. Der Standardwert ist FALSE. Bei Festlegung auf TRUE ist die indizierte Vertexmischung aktiviert. Bei Festlegung auf FALSE ist die indizierte Vertexmischung deaktiviert. Wenn dieser Renderzustand aktiviert ist, muss der Benutzer Matrixindizes als verpacktes DWORD mit jedem Scheitelpunkt übergeben. Wenn der Renderzustand deaktiviert ist und die Vertexmischung über den D3DRS_VERTEXBLEND Zustand aktiviert ist, entspricht es matrixindizes 0, 1, 2, 3 in jedem Scheitelpunkt.
D3DRS_COLORWRITEENABLE
UINT-Wert, der einen Kanal-Schreibvorgang für den Renderzielfarbpuffer ermöglicht. Ein festgelegtes Bit führt dazu, dass der Farbkanal während des 3D-Renderings aktualisiert wird. Ein klares Bit führt dazu, dass der Farbkanal nicht betroffen ist.
D3DRS_TWEENFACTOR
Ein Float-Wert, der den Tween-Faktor steuert.
D3DRS_BLENDOP
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 werden.
D3DRS_NORMALDEGREE
N-Patch normaler Interpolationsgrad. Die Werte können D3DDEGREE_LINEAR (Standard) oder D3DDEGREE_QUADRATIC werden.
D3DRS_SCISSORTESTENABLE
TRUE, um Scherentests und FALSE zu aktivieren, um es zu deaktivieren. Der Standardwert ist FALSE.
D3DRS_SLOPESCALEDEPTHBIAS
Wird verwendet, um zu bestimmen, wie viel Bias auf koplanare Grundtypen angewendet werden kann, um Z-Kampf zu reduzieren. Der Standardwert ist 0.
D3DRS_ANTIALIASEDLINEENABLE
TRUE, um die Zeilen-Antialiasierung zu aktivieren, FALSE zum Deaktivieren der Zeilen-Antialiasierung. 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
Beträgt adaptives Tessellate in x-Richtung. Der Standardwert ist 0,0f.
D3DRS_ADAPTIVETESS_Y
Beträgt adaptives Tessellate in y-Richtung. Der Standardwert ist 0,0f.
D3DRS_ADAPTIVETESS_Z
Beträgt adaptives Tessellate in z-Richtung. Der Standardwert ist 1,0f.
D3DRS_ADAPTIVETESS_W
Beträgt adaptives Tessellate in w-Richtung. Der Standardwert ist 0,0f.
D3DRS_ENABLEADAPTIVETESSELLATION
TRUE, um adaptive Tessellation zu aktivieren, FALSE zum Deaktivieren.
D3DRS_TWOSIDEDSTENCILMODE
TRUE aktiviert zweiseitige Schablonen, FALSE deaktiviert sie. Der Standardwert ist FALSE. Die Anwendung sollte D3DRS_CULLMODE auf D3DCULL_NONE festlegen, um den zweiseitigen Schablonenmodus zu aktivieren. Wenn die Wicklungsreihenfolge des Dreiecks im Uhrzeigersinn ist, werden die D3DRS_STENCIL*-Vorgänge verwendet. Wenn die Wicklungsreihenfolge gegen den Uhrzeigersinn erfolgt, werden die D3DRS_CCW_STENCIL*-Vorgänge verwendet.
D3DRS_CCW_STENCILFAIL
Ausführen des Schablonenvorgangs, wenn der CCW-Schablonentest fehlschlägt.
D3DRS_CCW_STENCILZFAIL
Schablonenvorgang, der ausgeführt werden soll, wenn ccW-Schablonentest bestanden wird und z-Test fehlschlägt.
D3DRS_CCW_STENCILPASS
Schablonenvorgang, der ausgeführt werden soll, wenn sowohl die CCW-Schablone als auch die Z-Tests bestehen.
D3DRS_CCW_STENCILFUNC
Die Vergleichsfunktion. CCW-Schablonentest bestanden, wenn die Schablonenfunktion (Ref & Mask) (Schablonen-& Maske)) WAHR 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 Renderziel-Schreibvorgänge, um gammakorrektur auf sRGB zu werden. Das Format muss D3DUSAGE_SRGBWRITE verfügbar machen. Der Standardwert ist 0.
D3DRS_DEPTHBIAS
Ein Gleitkommawert, der für den 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 Blendmodus für den Alphakanal. Der Standardwert ist FALSE.

Wenn dieser Wert auf FALSE festgelegt ist, müssen die auf Alpha angewendeten Renderzielmischungsfaktoren und -operationen mit denen übereinstimmen, die für Die Farbe definiert sind. Dieser Modus ist effektiv auf FALSE für Implementierungen ausgelegt, die die Obergrenze nicht D3DPMISCCAPS_SEPARATEALPHABLEND festlegen.
D3DRS_SRCBLENDALPHA
Dieser Wert wird ignoriert, es sei denn, D3DRS_SEPARATEALPHABLENDENABLE ist WAHR.
D3DRS_DESTBLENDALPHA
Dieser Wert wird ignoriert, es sei denn, D3DRS_SEPARATEALPHABLENDENABLE ist WAHR.
D3DRS_BLENDOPALPHA
Wert, der verwendet wird, um den arithmetischen Vorgang auszuwählen, der auf separate Alphamischung angewendet wird, wenn der Renderzustand D3DRS_SEPARATEALPHABLENDENABLE auf TRUE festgelegt ist.
D3DRS_FORCE_DWORD
Erzwingt die Kompilierung dieser Aufzählung zu einer Größe von 32 Bit. Ohne diesen Wert würden einige Compiler die Kompilierung auf eine andere Größe als 32 Bit zulassen. Dieser Wert wird nicht verwendet.

Bemerkungen

Diese Renderzustände dienen nur zur internen Verwendung:

D3DRENDERSTATE_EVICTMANAGEDTEXTURES

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

Dieser Renderzustand bestimmt, ob der Treiber Texturen entfernt, die er verwaltet (im Gegensatz zu Texturen, die von der Direct3D-Laufzeit verwaltet werden) aus dem Videospeicher. Wenn der Renderzustandswert TRUEist, entfernt der Treiber die Texturen. Andernfalls entfernt der Treiber diese Texturen nicht.

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 Informationen zur Szenenaufnahme zu erkennen.

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

Es muss darauf geachtet werden, einen Treiber zu aktualisieren, der die legacy D3DHALCallbacksimplementiert –>D3dSceneCapture Rückrufroutine mithilfe des D3DRENDERSTATE_SCENECAPTURE Renderzustands. Die D3dSceneCapture Callbackroutine verwendet die Konstanten D3DHAL_SCENE_CAPTURE_START bzw. 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, entspricht die Bedeutung genau 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 der Handle für den betroffenen Patch. Alle zwischengespeicherten Informationen sollten freigegeben werden, und der Handle sollte aus der Patchhandle-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 Pixelshaderassembler ausführen kann.

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

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 nahezu unbegrenzten Betrag dar.

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

Die Laufzeit legt den MaxVShaderInstructionsExecuted Member der D3DCAPS9 Struktur auf diese maximale Zahl fest.

D3DRS_MAXVERTEXSHADERINST

nur DirectX 9.0 und höhere Versionen.

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

Der Treiber verwendet einen DWORD-Datentyp mit einem Standardwert von 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 dargestellt.

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

D3DINFINITEINSTRUCTIONS stellt einen nahezu unbegrenzten Betrag dar.

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

Die Laufzeit legt den MaxVShaderInstructionsExecuted Member der D3DCAPS9 Struktur auf diese maximale Zahl fest.

Der Treiber verwendet diese Renderzustände, wenn grafikrendert wird. Nur Renderzustände, die für Treiber spezifisch sind, sind in der Dokumentation zum Windows Driver Kit (WDK) enthalten. Die für DirectX-Anwendungen zugänglichen Renderzustände sind in der DirectX SDK-Dokumentation enthalten. Zu diesen Renderzuständen auf Anwendungsebene gehören z. B. Merkmale, z. B. ob die Alphamischung aktiviert ist, ob die Dithering aktiviert ist, ob Direct3D-Beleuchtung verwendet wird und welche Art von Schattierung verwendet werden soll.

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

  • Legen Sie fest, dass ein oder mehrere Renderzustände aktualisiert werden sollen.

  • Ermitteln Sie, welche Renderzustände aktualisiert werden sollen, und welche werte für den neuen Renderzustand verwendet werden sollen.

Beachten Sie, dass für bestimmte zu berücksichtigende Renderzustände der Treiber zuvor Funktionskennzeichnungen im relevanten Element der D3DPRIMCAPS-Struktur festgelegt haben muss.

Um eine bestimmte Aktualisierung des Renderzustands anzugeben, fügt Direct3D eine D3DHAL_DP2COMMAND Struktur in den Befehlspuffer ein, wobei das bCommand Member dieser Struktur auf D3DDP2OP_RENDERSTATE festgelegt wird (siehe Beschreibung für D3DDP2OP_RENDERSTATE in D3DHAL_DP2OPERATION), und das wStateCount Member derselben Struktur auf die Anzahl der zu aktualisierenden Renderzustände festlegen.

Direkt nach der D3DHAL_DP2COMMAND Struktur fügt Direct3D eine D3DHAL_DP2RENDERSTATE Struktur in den Befehlspuffer ein, damit jeder Renderzustand aktualisiert werden kann. Das RenderState Mitglied 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 mit einem D3DDP2OP_RENDERSTATE Befehl und zwei D3DHAL_DP2RENDERSTATE Strukturen. 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

In der DirectX SDK-Dokumentation finden Sie die D3DTEXTURESTAGESTATETYPE, D3DTEXTUREOP und D3DTEXTUREFILTER aufgezählten Typen, um vollständige Auflistungen aller aktivierten Renderzustandstypen zu erhalten.

Einige Änderungen wurden am D3DRENDERSTATETYPE Aufzählungstyp für DirectX 5.0 und darüber hinaus vorgenommen. D3DRENDERSTATE_BLENDENABLE wurde vollständig entfernt, obwohl sie in der d3dtypes.h Headerdatei als D3DRENDERSTATE_ALPHABLENDENABLE definiert ist. Eine Erläuterung finden Sie unter D3DRENDERSTATE_COLORKEYENABLE. Die 128 ganzzahligen Werte im Intervall [128, 255] sind für Texturkoordinatenumbruchkennzeichnungen reserviert. Diese werden mit den makros D3DWRAP_U und D3DWRAP_V erstellt. Die Verwendung eines Kennzeichenworts behält die Vorwärtskompatibilität mit Texturkoordinaten höherer Dimension als 2D bei.

Multitexture-Makro ops und D3DRENDERSTATE_TEXTUREFACTOR außer Kraft setzen alle Steuerelemente für die Mischung pro Texturstufe (COLOR{OP,ARG1,ARG2} & ALPHA{OP,ARG1,ARG2}).

Anforderungen

Anforderung Wert
Header- d3d9types.h (include D3dhal.h)