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.

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) |