D3DRENDERSTATETYPE-Enumeration

Renderzustände definieren Setupzustände für alle Arten der Vertex- und Pixelverarbeitung. Einige Renderzustände richten die Vertexverarbeitung ein, und andere richten die Pixelverarbeitung ein (siehe Renderzustände (Direct3D 9)). Renderzustände können mithilfe von Stateblocks gespeichert und wiederhergestellt werden (siehe Statusblöcke Speichern und Wiederherstellen des Zustands (Direct3D 9)).

Syntax

typedef enum D3DRENDERSTATETYPE { 
  D3DRS_ZENABLE                     = 7,
  D3DRS_FILLMODE                    = 8,
  D3DRS_SHADEMODE                   = 9,
  D3DRS_ZWRITEENABLE                = 14,
  D3DRS_ALPHATESTENABLE             = 15,
  D3DRS_LASTPIXEL                   = 16,
  D3DRS_SRCBLEND                    = 19,
  D3DRS_DESTBLEND                   = 20,
  D3DRS_CULLMODE                    = 22,
  D3DRS_ZFUNC                       = 23,
  D3DRS_ALPHAREF                    = 24,
  D3DRS_ALPHAFUNC                   = 25,
  D3DRS_DITHERENABLE                = 26,
  D3DRS_ALPHABLENDENABLE            = 27,
  D3DRS_FOGENABLE                   = 28,
  D3DRS_SPECULARENABLE              = 29,
  D3DRS_FOGCOLOR                    = 34,
  D3DRS_FOGTABLEMODE                = 35,
  D3DRS_FOGSTART                    = 36,
  D3DRS_FOGEND                      = 37,
  D3DRS_FOGDENSITY                  = 38,
  D3DRS_RANGEFOGENABLE              = 48,
  D3DRS_STENCILENABLE               = 52,
  D3DRS_STENCILFAIL                 = 53,
  D3DRS_STENCILZFAIL                = 54,
  D3DRS_STENCILPASS                 = 55,
  D3DRS_STENCILFUNC                 = 56,
  D3DRS_STENCILREF                  = 57,
  D3DRS_STENCILMASK                 = 58,
  D3DRS_STENCILWRITEMASK            = 59,
  D3DRS_TEXTUREFACTOR               = 60,
  D3DRS_WRAP0                       = 128,
  D3DRS_WRAP1                       = 129,
  D3DRS_WRAP2                       = 130,
  D3DRS_WRAP3                       = 131,
  D3DRS_WRAP4                       = 132,
  D3DRS_WRAP5                       = 133,
  D3DRS_WRAP6                       = 134,
  D3DRS_WRAP7                       = 135,
  D3DRS_CLIPPING                    = 136,
  D3DRS_LIGHTING                    = 137,
  D3DRS_AMBIENT                     = 139,
  D3DRS_FOGVERTEXMODE               = 140,
  D3DRS_COLORVERTEX                 = 141,
  D3DRS_LOCALVIEWER                 = 142,
  D3DRS_NORMALIZENORMALS            = 143,
  D3DRS_DIFFUSEMATERIALSOURCE       = 145,
  D3DRS_SPECULARMATERIALSOURCE      = 146,
  D3DRS_AMBIENTMATERIALSOURCE       = 147,
  D3DRS_EMISSIVEMATERIALSOURCE      = 148,
  D3DRS_VERTEXBLEND                 = 151,
  D3DRS_CLIPPLANEENABLE             = 152,
  D3DRS_POINTSIZE                   = 154,
  D3DRS_POINTSIZE_MIN               = 155,
  D3DRS_POINTSPRITEENABLE           = 156,
  D3DRS_POINTSCALEENABLE            = 157,
  D3DRS_POINTSCALE_A                = 158,
  D3DRS_POINTSCALE_B                = 159,
  D3DRS_POINTSCALE_C                = 160,
  D3DRS_MULTISAMPLEANTIALIAS        = 161,
  D3DRS_MULTISAMPLEMASK             = 162,
  D3DRS_PATCHEDGESTYLE              = 163,
  D3DRS_DEBUGMONITORTOKEN           = 165,
  D3DRS_POINTSIZE_MAX               = 166,
  D3DRS_INDEXEDVERTEXBLENDENABLE    = 167,
  D3DRS_COLORWRITEENABLE            = 168,
  D3DRS_TWEENFACTOR                 = 170,
  D3DRS_BLENDOP                     = 171,
  D3DRS_POSITIONDEGREE              = 172,
  D3DRS_NORMALDEGREE                = 173,
  D3DRS_SCISSORTESTENABLE           = 174,
  D3DRS_SLOPESCALEDEPTHBIAS         = 175,
  D3DRS_ANTIALIASEDLINEENABLE       = 176,
  D3DRS_MINTESSELLATIONLEVEL        = 178,
  D3DRS_MAXTESSELLATIONLEVEL        = 179,
  D3DRS_ADAPTIVETESS_X              = 180,
  D3DRS_ADAPTIVETESS_Y              = 181,
  D3DRS_ADAPTIVETESS_Z              = 182,
  D3DRS_ADAPTIVETESS_W              = 183,
  D3DRS_ENABLEADAPTIVETESSELLATION  = 184,
  D3DRS_TWOSIDEDSTENCILMODE         = 185,
  D3DRS_CCW_STENCILFAIL             = 186,
  D3DRS_CCW_STENCILZFAIL            = 187,
  D3DRS_CCW_STENCILPASS             = 188,
  D3DRS_CCW_STENCILFUNC             = 189,
  D3DRS_COLORWRITEENABLE1           = 190,
  D3DRS_COLORWRITEENABLE2           = 191,
  D3DRS_COLORWRITEENABLE3           = 192,
  D3DRS_BLENDFACTOR                 = 193,
  D3DRS_SRGBWRITEENABLE             = 194,
  D3DRS_DEPTHBIAS                   = 195,
  D3DRS_WRAP8                       = 198,
  D3DRS_WRAP9                       = 199,
  D3DRS_WRAP10                      = 200,
  D3DRS_WRAP11                      = 201,
  D3DRS_WRAP12                      = 202,
  D3DRS_WRAP13                      = 203,
  D3DRS_WRAP14                      = 204,
  D3DRS_WRAP15                      = 205,
  D3DRS_SEPARATEALPHABLENDENABLE    = 206,
  D3DRS_SRCBLENDALPHA               = 207,
  D3DRS_DESTBLENDALPHA              = 208,
  D3DRS_BLENDOPALPHA                = 209,
  D3DRS_FORCE_DWORD                 = 0x7fffffff
} D3DRENDERSTATETYPE, *LPD3DRENDERSTATETYPE;

Konstanten

D3DRS_ZENABLE

Tiefenpufferungszustand als ein Member des aufgezählten D3DZBUFFERTYPE-Typs . Legen Sie diesen Zustand auf D3DZB_TRUE fest, um die Z-Pufferung zu aktivieren, D3DZB_USEW die W-Pufferung zu aktivieren, oder D3DZB_FALSE die Tiefenpufferung zu deaktivieren.

Der Standardwert für diesen Renderzustand ist D3DZB_TRUE, wenn eine Tiefenschablone zusammen mit der Swapchain erstellt wurde, indem der EnableAutoDepthStencil-Member der D3DPRESENT_PARAMETERS-Struktur auf TRUE festgelegt wurde und andernfalls D3DZB_FALSE.

D3DRS_FILLMODE

Mindestens ein Member des aufgezählten D3DFILLMODE-Typs . Der Standardwert ist D3DFILL_SOLID.

D3DRS_SHADEMODE

Mindestens ein Member des aufgezählten D3DSHADEMODE-Typs . Der Standardwert ist D3DSHADE_GOURAUD.

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 vorausgesetzt wird, dass eine Tiefenpufferung stattfindet, 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.

Der Test erfolgt durch Vergleichen des eingehenden Alphawerts mit dem Referenz-Alphawert unter Verwendung der Vergleichsfunktion, die vom D3DRS_ALPHAFUNC Renderzustand bereitgestellt wird. Der Verweis-Alphawert wird durch den für D3DRS_ALPHAREF festgelegten Wert bestimmt. Weitere Informationen finden Sie unter Alphateststatus (Direct3D 9).

Der Standardwert dieses Parameters ist FALSE.

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. Weitere Informationen finden Sie unter Gliederungs- und Füllzustand (Direct3D 9).

D3DRS_SRCBLEND

Ein Member des aufgezählten D3DBLEND-Typs . Der Standardwert ist D3DBLEND_ONE.

D3DRS_DESTBLEND

Ein Member des aufgezählten D3DBLEND-Typs . Der Standardwert ist D3DBLEND_ZERO.

D3DRS_CULLMODE

Gibt an, wie rückseitige Dreiecke gekullt werden, wenn überhaupt. Dies kann auf einen Member des aufgezählten D3DCULL-Typs festgelegt werden. Der Standardwert ist D3DCULL_CCW.

D3DRS_ZFUNC

Ein Member des aufgezählten D3DCMPFUNC-Typs . Der Standardwert ist D3DCMP_LESSEQUAL. Dieses Element ermöglicht es einer Anwendung, 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.

Softwarerasterizer und viele Hardwarebeschleuniger funktionieren schneller, wenn der Tiefentest fehlschlägt, da die Textur nicht gefiltert und moduliert werden muss, wenn das Pixel nicht gerendert wird.

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 Member des aufgezählten D3DCMPFUNC-Typs . Der Standardwert ist D3DCMP_ALWAYS. Dieses Element ermöglicht es einer Anwendung, 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. Weitere Informationen zur Verwendung von Nebelmischungen finden Sie unter Nebel.

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

Wert, dessen Typ D3DCOLOR ist. Der Standardwert ist 0. Weitere Informationen zur Nebelfarbe finden Sie unter Nebelfarbe (Direct3D 9).

D3DRS_FOGTABLEMODE

Die Nebelformel, die für Pixelnebel verwendet werden soll. Legen Sie auf einen der Member des aufgezählten D3DFOGMODE-Typs fest. Der Standardwert ist D3DFOG_NONE. Weitere Informationen zu Pixelnebel finden Sie unter Pixel Fog (Direct3D 9).

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. Weitere Informationen finden Sie unter Fog Parameters (Direct3D 9) and Eye-Relative vs. Z-basierte Tiefe.

Werte für diesen Renderzustand sind Gleitkommawerte. Da die IDirect3DDevice9::SetRenderState-Methode DWORD-Werte akzeptiert, muss Ihre Anwendung eine Variable umwandeln, die den Wert enthält, wie im folgenden Codebeispiel gezeigt.

pDevice9->SetRenderState(D3DRS_FOGSTART, 
                         *((DWORD*) (&fFogStart)));

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 Vertexnebel 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-Fog) verwendet. Weitere Informationen finden Sie unter Fog Parameters (Direct3D 9) and Eye-Relative vs. Z-basierte Tiefe.

Werte für diesen Renderzustand sind Gleitkommawerte. Da die IDirect3DDevice9::SetRenderState-Methode DWORD-Werte akzeptiert, muss Ihre Anwendung eine Variable umwandeln, die den Wert enthält, wie im folgenden Codebeispiel gezeigt.

m_pDevice9->SetRenderState(D3DRS_FOGEND, *((DWORD*) (&fFogEnd)));

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. Der Standardwert ist 1,0. Weitere Informationen finden Sie unter Nebelparameter (Direct3D 9).

Werte für diesen Renderzustand sind Gleitkommawerte. Da die IDirect3DDevice9::SetRenderState-Methode DWORD-Werte akzeptiert, muss Ihre Anwendung eine Variable umwandeln, die den Wert enthält, wie im folgenden Codebeispiel gezeigt.

    m_pDevice9->SetRenderState(D3DRS_FOGDENSITY, *((DWORD*) (&fFogDensity)));

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 die Entfernung eines Objekts vom Viewer verwendet, um Nebeleffekte zu berechnen, nicht die Tiefe des Objekts (d. h. die Z-Koordinate) in der Szene. Bei bereichsbasiertem Nebel funktionieren alle Nebelmethoden wie gewohnt, mit dem Unterschied, dass sie in den Berechnungen Bereich anstelle der Tiefe verwenden.

Bereich ist der richtige Faktor, der für Nebelberechnungen verwendet werden soll, 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 auf Pixelbereich basierenden Nebel unterstützt, wird die Bereichskorrektur nur für Scheitelpunktnebel angeboten.

Weitere Informationen finden Sie unter Vertex Fog (Direct3D 9).

D3DRS_STENCILENABLE

TRUE , um die Schablone zu aktivieren, oder FALSE zum Deaktivieren der Schablonen. Der Standardwert ist FALSE. Weitere Informationen finden Sie unter Schablonenpuffertechniken (Direct3D 9).

D3DRS_STENCILFAIL

Schablonenvorgang, der ausgeführt werden soll, wenn der Schablonentest fehlschlägt. Die Werte stammen aus dem aufgezählten D3DSTENCILOP-Typ . Der Standardwert ist D3DSTENCILOP_KEEP.

D3DRS_STENCILZFAIL

Schablonenvorgang, der ausgeführt werden soll, wenn der Schablonentest erfolgreich ist und der Tiefentest (z-test) fehlschlägt. Die Werte stammen aus dem aufgezählten D3DSTENCILOP-Typ . Der Standardwert ist D3DSTENCILOP_KEEP.

D3DRS_STENCILPASS

Schablonenvorgang, der ausgeführt werden soll, wenn sowohl die Schablonen- als auch die Tiefentests (z) erfolgreich sind. Die Werte stammen aus dem aufgezählten D3DSTENCILOP-Typ . Der Standardwert ist D3DSTENCILOP_KEEP.

D3DRS_STENCILFUNC

Vergleichsfunktion für den Schablonentest. Die Werte stammen aus dem aufgezählten D3DCMPFUNC-Typ . Der Standardwert ist D3DCMP_ALWAYS.

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). Wenn TRUE, besteht der Schablonentest.

D3DRS_STENCILREF

Ein int-Referenzwert für den Schablonentest. Der Standardwert ist 0.

D3DRS_STENCILMASK

Maske, die auf den Verweiswert und jeden Schablonenpuffereintrag angewendet wird, um die wesentlichen Bits für den Schablonentest zu bestimmen. Die Standardmaske ist 0xFFFFFFFF.

D3DRS_STENCILWRITEMASK

Schreibmaske, die auf Werte angewendet wird, die in den Schablonenpuffer geschrieben wurden. Die Standardmaske ist 0xFFFFFFFF.

D3DRS_TEXTUREFACTOR

Farbe, die für das Mischen mehrerer Texturen mit dem D3DTA_TFACTOR Textur-Blending-Argument oder dem D3DTOP_BLENDFACTORALPHA Textur-Blending-Vorgang verwendet wird. Der zugeordnete Wert ist eine D3DCOLOR-Variable . Der Standardwert ist undurchsichtig weiß (0xFFFFFFFF).

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 Dimensionen umschließt, die manchmal als s-, t-, r- und q-Richtungen für eine bestimmte Textur bezeichnet werden. 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 Ausschneiden 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 in allen Lichtberechnungen ein Punktprodukt von 0.

D3DRS_AMBIENT

Umgebungslichtfarbe. Dieser Wert ist vom Typ D3DCOLOR. Der Standardwert ist 0.

D3DRS_FOGVERTEXMODE

Nebelformel, die für Scheitelpunktnebel verwendet werden soll. Legen Sie auf ein Element des aufgezählten D3DFOGMODE-Typs fest. Der Standardwert ist D3DFOG_NONE.

D3DRS_COLORVERTEX

TRUE , um die Vertexfarbe zu aktivieren, oder FALSE , um sie zu deaktivieren. Der Standardwert ist TRUE. Durch Aktivieren der Vertexfarbe kann das System die für einzelne Scheitelpunkte definierte Farbe in seine Beleuchtungsberechnungen einbeziehen.

Weitere Informationen finden Sie unter den folgenden Renderzuständen:

  • D3DRS_DIFFUSEMATERIALSOURCE
  • D3DRS_SPECULARMATERIALSOURCE
  • D3DRS_AMBIENTMATERIALSOURCE
  • D3DRS_EMISSIVEMATERIALSOURCE

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. Gültige Werte sind Member des aufgezählten D3DMATERIALCOLORSOURCE-Typs . Der Standardwert ist D3DMCS_COLOR1. Der Wert für diesen Renderzustand wird nur verwendet, wenn der D3DRS_COLORVERTEX Renderzustand auf TRUE festgelegt ist.

D3DRS_SPECULARMATERIALSOURCE

Glanzfarbenquelle für Beleuchtungsberechnungen. Gültige Werte sind Member des aufgezählten D3DMATERIALCOLORSOURCE-Typs . Der Standardwert ist D3DMCS_COLOR2.

D3DRS_AMBIENTMATERIALSOURCE

Umgebungsfarbquelle für Beleuchtungsberechnungen. Gültige Werte sind Member des aufgezählten D3DMATERIALCOLORSOURCE-Typs . Der Standardwert ist D3DMCS_MATERIAL.

D3DRS_EMISSIVEMATERIALSOURCE

Emissive Farbquelle für Beleuchtungsberechnungen. Gültige Werte sind Member des aufgezählten D3DMATERIALCOLORSOURCE-Typs . Der Standardwert ist D3DMCS_MATERIAL.

D3DRS_VERTEXBLEND

Anzahl der Matrizen, die zum Durchführen einer Geometriemischung verwendet werden sollen, sofern vorhanden. Gültige Werte sind Member des aufgezählten D3DVERTEXBLENDFLAGS-Typs . Der Standardwert ist D3DVBF_DISABLE.

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.

Die D3DCLIPPLANEn-Makros sind definiert, um eine bequeme Möglichkeit zum Aktivieren von Clippingebenen zu bieten.

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. Da die IDirect3DDevice9::SetRenderState-Methode DWORD-Werte akzeptiert, muss Ihre Anwendung eine Variable umwandeln, die den Wert enthält, wie im folgenden Codebeispiel gezeigt.

m_pDevice9->SetRenderState(D3DRS_POINTSIZE, *((DWORD*)&pointSize));

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. Da die IDirect3DDevice9::SetRenderState-Methode DWORD-Werte akzeptiert, muss Ihre Anwendung eine Variable umwandeln, die den Wert enthält, wie im folgenden Codebeispiel gezeigt.

m_pDevice9->SetRenderState(D3DRS_POINTSIZE_MIN, *((DWORD*)&pointSizeMin));

D3DRS_POINTSPRITEENABLE

bool-Wert. 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 die Standardwerte sind.

D3DRS_POINTSCALEENABLE

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. Da die IDirect3DDevice9::SetRenderState-Methode DWORD-Werte akzeptiert, muss Ihre Anwendung eine Variable umwandeln, die den Wert enthält, wie im folgenden Codebeispiel gezeigt.

m_pDevice9->SetRenderState(D3DRS_POINTSCALE_A, *((DWORD*)&pointScaleA));

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. Da die IDirect3DDevice9::SetRenderState-Methode DWORD-Werte akzeptiert, muss Ihre Anwendung eine Variable umwandeln, die den Wert enthält, wie im folgenden Codebeispiel gezeigt.

m_pDevice9->SetRenderState(D3DRS_POINTSCALE_B, *((DWORD*)&pointScaleB));

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. Da die IDirect3DDevice9::SetRenderState-Methode DWORD-Werte akzeptiert, muss Ihre Anwendung eine Variable umwandeln, die den Wert enthält, wie im folgenden Codebeispiel gezeigt.

m_pDevice9->SetRenderState(D3DRS_POINTSCALE_C, *((DWORD*)&pointScaleC));

D3DRS_MULTISAMPLEANTIALIAS

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. Mögliche Werte werden durch den aufgezählten Typ D3DPATCHEDGESTYLE definiert. Der Standardwert ist D3DPATCHEDGE_DISCRETE.

D3DRS_DEBUGMONITORTOKEN

Nur für das Debuggen des Monitors festgelegt. Mögliche Werte werden durch den aufgezählten Typ D3DDEBUGMONITORTOKENS definiert. Beachten Sie, dass, wenn D3DRS_DEBUGMONITORTOKEN festgelegt ist, der Aufruf so behandelt wird, als ob ein Token an den Debugmonitor übergeben wird. Wenn beispielsweise nach der Übergabe D3DDMT_ENABLE oder D3DDMT_DISABLE an D3DRS_DEBUGMONITORTOKEN andere Tokenwerte übergeben werden, bleibt der Zustand (aktiviert oder deaktiviert) des Debugmonitors weiterhin erhalten.

Dieser Zustand ist nur für Debugbuilds nützlich. Der Debugmonitor ist standardmäßig auf D3DDMT_ENABLE.

D3DRS_POINTSIZE_MAX

Ein float-Wert, der die maximale Größe angibt, bis zu der Sprites geklemmt werden sollen. Der Wert muss kleiner oder gleich dem MaxPointSize-Member von D3DCAPS9 und größer als oder gleich D3DRS_POINTSIZE_MIN sein. Der Standardwert ist 64.0. Da die IDirect3DDevice9::SetRenderState-Methode DWORD-Werte akzeptiert, muss Ihre Anwendung eine Variable umwandeln, die den Wert enthält, wie im folgenden Codebeispiel gezeigt.

m_pDevice9->SetRenderState(D3DRS_PONTSIZE_MAX, *((DWORD*)&pointSizeMax));

D3DRS_INDEXEDVERTEXBLENDENABLE

bool-Wert, der die indizierte Vertexmischung aktiviert oder deaktiviert. Der Standardwert ist FALSE. Wenn auf TRUE festgelegt ist, ist die indizierte Vertexmischung aktiviert. Wenn 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 über den D3DRS_VERTEXBLEND Zustand aktiviert ist, entspricht dies dem Vorhandensein von Matrixindizes 0, 1, 2, 3 in jedem Scheitelpunkt.

D3DRS_COLORWRITEENABLE

UINT-Wert, der einen Kanalschreibvorgang 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 beeinträchtigt wird. Diese Funktionalität ist verfügbar, wenn das D3DPMISCCAPS_COLORWRITEENABLE-Funktionenbit im PrimitiveMiscCaps-Member der D3DCAPS9-Struktur für das Gerät festgelegt ist. Dieser Renderzustand wirkt sich nicht auf den Clear-Vorgang aus. Der Standardwert ist 0x0000000F.

Gültige Werte für diesen Renderzustand können eine beliebige Kombination aus D3DCOLORWRITEENABLE_ALPHA-, D3DCOLORWRITEENABLE_BLUE-, D3DCOLORWRITEENABLE_GREEN- oder D3DCOLORWRITEENABLE_RED-Flags sein.

D3DRS_TWEENFACTOR

Ein Floatwert, der den Tween-Faktor steuert. Der Standardwert ist 0.0f. Da die IDirect3DDevice9::SetRenderState-Methode DWORD-Werte akzeptiert, muss Ihre Anwendung eine Variable umwandeln, die den Wert enthält, wie im folgenden Codebeispiel gezeigt.

m_pDevice9->SetRenderState(D3DRS_TWEENFACTOR, *((DWORD*)&TweenFactor));

D3DRS_BLENDOP

Der Wert, der zum Auswählen des arithmetischen Vorgangs verwendet wird, der angewendet wird, wenn der Renderzustand der Alphamischung D3DRS_ALPHABLENDENABLE auf TRUE festgelegt ist. Gültige Werte werden durch den aufgezählten D3DBLENDOP-Typ definiert. Der Standardwert ist D3DBLENDOP_ADD.

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. Weitere Informationen finden Sie unter D3DDEGREETYPE.

D3DRS_NORMALDEGREE

Normaler Interpolationsgrad N-Patch. Die Werte können D3DDEGREE_LINEAR (Standard) oder D3DDEGREE_QUADRATIC sein. Weitere Informationen finden Sie unter D3DDEGREETYPE.

D3DRS_SCISSORTESTENABLE

TRUE , um den Scissor-Test zu aktivieren, und FALSE , um sie zu deaktivieren. Der Standardwert ist FALSE.

D3DRS_SLOPESCALEDEPTHBIAS

Wird verwendet, um zu bestimmen, wie viel Verzerrung auf koplanare Primitive angewendet werden kann, um Z-Kampf zu reduzieren. Der Standardwert ist 0.

bias = (max * D3DRS_SLOPESCALEDEPTHBIAS) + D3DRS_DEPTHBIAS.

wobei max die maximale Tiefenneigung des gerenderten Dreiecks ist.

D3DRS_ANTIALIASEDLINEENABLE

TRUE zum Aktivieren des Zeilen-Antialiasings, FALSE zum Deaktivieren des Zeilen-Antialiasings. Der Standardwert ist FALSE.

Beim Rendern in einem Multisampel-Renderziel wird D3DRS_ANTIALIASEDLINEENABLE ignoriert, und alle Zeilen werden aliasiert. Verwenden Sie ID3DXLine für antialiasiertes Zeilenrendering in einem Multisample-Renderziel.

D3DRS_MINTESSELLATIONLEVEL

Minimale Tessellationsebene. Der Standardwert ist 1.0f. Siehe Tessellation (Direct3D 9).

D3DRS_MAXTESSELLATIONLEVEL

Maximale Tessellationsebene. Der Standardwert ist 1.0f. Siehe Tessellation (Direct3D 9).

D3DRS_ADAPTIVETESS_X

Betrag, um anpassungsfähig zu tesselieren, in x-Richtung. Der Standardwert ist 0.0f. Weitere Informationen finden Sie unter Adaptive Tessellation.

D3DRS_ADAPTIVETESS_Y

Betrag, um anpassungsfähig zu tesselieren, in y-Richtung. Der Standardwert ist 0.0f. Siehe Adaptive_Tessellation.

D3DRS_ADAPTIVETESS_Z

Betrag, um anpassungsfähig zu tesselieren, in z-Richtung. Der Standardwert ist 1.0f. Siehe Adaptive_Tessellation.

D3DRS_ADAPTIVETESS_W

Betrag, um adaptive Tessellate in w-Richtung zu ändern. Der Standardwert ist 0.0f. Siehe Adaptive_Tessellation.

D3DRS_ENABLEADAPTIVETESSELLATION

TRUE , um adaptive Tessellation zu aktivieren, FALSE , um sie zu deaktivieren. Der Standardwert ist FALSE. Siehe Adaptive_Tessellation.

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.

Überprüfen Sie den Stencils-Member von D3DCAPS9 auf D3DSTENCILCAPS_TWOSIDED, um festzustellen, ob zweiseitige Schablonen unterstützt werden. Siehe auch D3DSTENCILCAPS.

D3DRS_CCW_STENCILFAIL

Schablonenvorgang, der ausgeführt werden soll, wenn der CCW-Schablonentest fehlschlägt. Die Werte stammen aus dem aufgezählten D3DSTENCILOP-Typ . Der Standardwert ist D3DSTENCILOP_KEEP.

D3DRS_CCW_STENCILZFAIL

Schablonenvorgang, der ausgeführt werden soll, wenn der CCW-Schablonentest erfolgreich ist und Z-Test fehlschlägt. Die Werte stammen aus dem aufgezählten D3DSTENCILOP-Typ . Der Standardwert ist D3DSTENCILOP_KEEP.

D3DRS_CCW_STENCILPASS

Schablonenvorgang, der ausgeführt werden soll, wenn sowohl die CCW-Schablone als auch die Z-Tests erfolgreich sind. Die Werte stammen vom aufgezählten D3DSTENCILOP-Typ . Der Standardwert ist D3DSTENCILOP_KEEP.

D3DRS_CCW_STENCILFUNC

Die Vergleichsfunktion. DER CCW-Schablonentest besteht, wenn ((ref & mask) Schablonenfunktion (Schablonenmaske & )) AUF TRUE festgelegt ist. Die Werte stammen aus dem aufgezählten D3DCMPFUNC-Typ . Der Standardwert ist D3DCMP_ALWAYS.

D3DRS_COLORWRITEENABLE1

Zusätzliche ColorWriteEnable-Werte für die Geräte. Siehe D3DRS_COLORWRITEENABLE. Diese Funktionalität ist verfügbar, wenn das bit D3DPMISCCAPS_INDEPENDENTWRITEMASKS Capabilities im PrimitiveMiscCaps-Element der D3DCAPS9-Struktur für das Gerät festgelegt ist. Der Standardwert ist 0x0000000f.

D3DRS_COLORWRITEENABLE2

Zusätzliche ColorWriteEnable-Werte für die Geräte. Siehe D3DRS_COLORWRITEENABLE. Diese Funktionalität ist verfügbar, wenn das bit D3DPMISCCAPS_INDEPENDENTWRITEMASKS Capabilities im PrimitiveMiscCaps-Element der D3DCAPS9-Struktur für das Gerät festgelegt ist. Der Standardwert ist 0x0000000f.

D3DRS_COLORWRITEENABLE3

Zusätzliche ColorWriteEnable-Werte für die Geräte. Siehe D3DRS_COLORWRITEENABLE. Diese Funktionalität ist verfügbar, wenn das bit D3DPMISCCAPS_INDEPENDENTWRITEMASKS Capabilities im PrimitiveMiscCaps-Element der D3DCAPS9-Struktur für das Gerät festgelegt ist. Der Standardwert ist 0x0000000f.

D3DRS_BLENDFACTOR

D3DCOLOR wird für einen konstanten Mischfaktor während der Alphamischung verwendet. Diese Funktionalität ist verfügbar, wenn das Bit D3DPBLENDCAPS_BLENDFACTOR Funktionen im SrcBlendCaps-Member von D3DCAPS9 oder im DestBlendCaps-Element von D3DCAPS9 festgelegt ist. Siehe D3DRENDERSTATETYPE. Der Standardwert ist 0xffffffff.

D3DRS_SRGBWRITEENABLE

Aktivieren Sie Renderzielschreibvorgänge, um die Gammakorrektur in sRGB zu ermöglichen. 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. Weitere Informationen finden Sie unter Tiefenverzerrung (Direct3D 9). Der Standardwert ist 0.

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 diese Einstellung auf FALSE festgelegt ist, müssen die Renderzielmischungsfaktoren und -vorgänge, die auf Alpha angewendet werden, mit denen übereinstimmen, die für Farbe definiert sind. Dieser Modus ist bei Implementierungen, die die Obergrenze nicht D3DPMISCCAPS_SEPARATEALPHABLEND festlegen, effektiv mit FALSE verdrahtet. Siehe D3DPMISCCAPS.

Der Typ der separaten Alphamischung wird durch die D3DRS_SRCBLENDALPHA und D3DRS_DESTBLENDALPHA Renderzustände bestimmt.

D3DRS_SRCBLENDALPHA

Ein Member des aufgezählten D3DBLEND-Typs . Dieser Wert wird ignoriert, es sei denn, D3DRS_SEPARATEALPHABLENDENABLE ist TRUE. Der Standardwert ist D3DBLEND_ONE.

D3DRS_DESTBLENDALPHA

Ein Member des aufgezählten D3DBLEND-Typs . Dieser Wert wird ignoriert, es sei denn, D3DRS_SEPARATEALPHABLENDENABLE ist TRUE. Der Standardwert ist D3DBLEND_ZERO.

D3DRS_BLENDOPALPHA

Der Wert, der verwendet wird, um den arithmetischen Vorgang auszuwählen, der auf die separate Alphamischung angewendet wird, wenn der Renderzustand (D3DRS_SEPARATEALPHABLENDENABLE) auf TRUE festgelegt ist.

Gültige Werte werden durch den aufgezählten D3DBLENDOP-Typ definiert. Der Standardwert ist D3DBLENDOP_ADD.

Wenn die D3DPMISCCAPS_BLENDOP-Gerätefunktion nicht unterstützt wird, wird D3DBLENDOP_ADD ausgeführt. Siehe D3DPMISCCAPS.

D3DRS_FORCE_DWORD

Erzwingt, dass diese Enumeration auf eine Größe von 32 Bits kompiliert wird. Ohne diesen Wert könnten einige Compiler diese Enumeration auf eine andere Größe als 32 Bit kompilieren. Dieser Wert wird nicht verwendet.

Bemerkungen

Renderstatus Textur-Sampler
ps_1_1 zu ps_1_3 4 Textursammler

 

Direct3D definiert die D3DRENDERSTATE_WRAPBIAS Konstanten als Benutzerfreundlichkeit für Anwendungen zum Aktivieren oder Deaktivieren des Texturumbruchs basierend auf der nullbasierten Ganzzahl eines Texturkoordinatensatzes (anstatt explizit einen der D3DRS_WRAP n-Zustandswerte zu verwenden). Fügen Sie den D3DRENDERSTATE_WRAPBIAS Wert zum nullbasierten Index eines Texturkoordinatensatzes hinzu, um den D3DRS_WRAP n-Wert zu berechnen, der diesem Index entspricht, wie im folgenden Beispiel gezeigt.

// Enable U/V wrapping for textures that use the texture 
// coordinate set at the index within the dwIndex variable
    
HRESULT hr = pd3dDevice->SetRenderState(
dwIndex + D3DRENDERSTATE_WRAPBIAS,  
D3DWRAPCOORD_0 | D3DWRAPCOORD_1);
     
// If dwIndex is 3, the value that results from 
// the addition equals D3DRS_WRAP3 (131)

Anforderungen

Anforderung Wert
Header
D3D9Types.h

Siehe auch

Direct3D-Enumerationen

IDirect3DDevice9::GetRenderState

IDirect3DDevice9::SetRenderState