Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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_ZENABLEEin D3DZBUFFERTYPE Enumerationstyp, der den Tiefenpufferzustand darstellt. |
D3DRS_FILLMODEEin D3DFILLMODE Enumerationstyp. |
D3DRS_SHADEMODEEin D3DSHADEMODE Enumerationstyp. |
D3DRS_ZWRITEENABLETRUE, 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_ALPHATESTENABLETRUE, 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_LASTPIXELDer 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_SRCBLENDEin D3DBLEND Enumerationstyp. |
D3DRS_DESTBLENDEin D3DBLEND Enumerationstyp. |
D3DRS_CULLMODEEin D3DCULL Enumerationstyp, der angibt, wie umgekehrt ausgerichtete Dreiecke überhaupt gekullt werden. |
D3DRS_ZFUNCEin 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_ALPHAREFWert, 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_ALPHAFUNCEin D3DCMPFUNC Enumerationstyp, der es einer Anwendung ermöglicht, ein Pixel basierend auf seinem Alphawert zu akzeptieren oder abzulehnen. |
D3DRS_DITHERENABLETRUE, um dithering zu aktivieren. Der Standardwert ist FALSE. |
D3DRS_ALPHABLENDENABLETRUE, 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_FOGENABLETRUE zum Aktivieren der Nebelmischung. Der Standardwert ist FALSE. |
D3DRS_SPECULARENABLETRUE, 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_FOGCOLOREine D3DCOLORVALUE Struktur. |
D3DRS_FOGTABLEMODEEin D3DFOGMODE aufgezählter Typ, der eine Nebelformel darstellt, die für Pixelnebel verwendet werden soll. |
D3DRS_FOGSTARTTiefe, 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_FOGENDTiefe, 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_FOGDENSITYNebeldichte 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_RANGEFOGENABLETRUE, 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_STENCILENABLETRUE, um schablonen zu aktivieren, oder FALSE zum Deaktivieren der Schablonen. Der Standardwert ist FALSE. |
D3DRS_STENCILFAILEin D3DSTENCILOP Enumerationstyp, der den auszuführenden Schablonenvorgang angibt, wenn der Schablonentest fehlschlägt. Der Standardwert ist D3DSTENCILOP_KEEP. |
D3DRS_STENCILZFAILEin D3DSTENCILOP Enumerationstyp, der den auszuführenden Schablonenvorgang angibt, wenn der Schablonentest bestanden wird und der Tiefentest (Z-Test) fehlschlägt. |
D3DRS_STENCILPASSEin D3DSTENCILOP Enumerationstyp, der den auszuführenden Schablonenvorgang angibt, wenn sowohl die Schablone als auch die Tiefentests (z) bestehen. |
D3DRS_STENCILFUNCDie 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_STENCILREFEin Int-Bezugswert für den Schablonentest. Der Standardwert ist 0. |
D3DRS_STENCILMASKMaske, die auf den Referenzwert und jeden Schablonenpuffereintrag angewendet wird, um die signifikanten Bits für den Schablonentest zu bestimmen. Die Standardmaske ist 0xFFFFFFFF. |
D3DRS_STENCILWRITEMASKSchreibformat, das auf Werte angewendet wird, die in den Schablonenpuffer geschrieben wurden. Die Standardmaske ist 0xFFFFFFFF. |
D3DRS_TEXTUREFACTORFarbe, die für die Mehrfachtextvermischung mit dem Argument D3DTA_TFACTOR Texturmischung oder dem D3DTOP_BLENDFACTORALPHA Texturmischungsvorgang verwendet wird. |
D3DRS_WRAP0Texturumbruchverhalten 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_WRAP1Siehe D3DRS_WRAP0. |
D3DRS_WRAP2Siehe D3DRS_WRAP0. |
D3DRS_WRAP3Siehe D3DRS_WRAP0. |
D3DRS_WRAP4Siehe D3DRS_WRAP0. |
D3DRS_WRAP5Siehe D3DRS_WRAP0. |
D3DRS_WRAP6Siehe D3DRS_WRAP0. |
D3DRS_WRAP7Siehe D3DRS_WRAP0. |
D3DRS_CLIPPINGTRUE, um den primitiven Clipping durch Direct3D oder FALSE zu aktivieren, um ihn zu deaktivieren. Der Standardwert ist TRUE. |
D3DRS_LIGHTINGTRUE, 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_AMBIENTUmgebungslichtfarbe. |
D3DRS_FOGVERTEXMODENebelformel, die für Scheitelpunkt-Nebel verwendet werden soll. |
D3DRS_COLORVERTEXTRUE, 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_LOCALVIEWERTRUE, 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_NORMALIZENORMALSTRUE, 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_DIFFUSEMATERIALSOURCEDiffuse Farbquelle für Beleuchtungsberechnungen. |
D3DRS_SPECULARMATERIALSOURCEGlanzfarbenquelle für Beleuchtungsberechnungen. |
D3DRS_AMBIENTMATERIALSOURCEUmgebungsfarbquelle für Beleuchtungsberechnungen. |
D3DRS_EMISSIVEMATERIALSOURCEEmissive Farbquelle für Beleuchtungsberechnungen. |
D3DRS_VERTEXBLENDAnzahl der Matrizen, die zum Ausführen der Geometriemischung verwendet werden sollen, falls vorhanden. |
D3DRS_CLIPPLANEENABLEAktiviert 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_POINTSIZEEin 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_MINEin 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_POINTSPRITEENABLEWenn 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_POINTSCALEENABLEEin 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_AEin 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_BEin 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_CEin 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_MULTISAMPLEANTIALIASEin 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_MULTISAMPLEMASKJedes 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_PATCHEDGESTYLELegt fest, ob Patchränder float-Formatvorlagen-Tessellation verwenden. |
D3DRS_DEBUGMONITORTOKENWird nur für das Debuggen des Monitors festgelegt. |
D3DRS_POINTSIZE_MAXEin 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_INDEXEDVERTEXBLENDENABLEEin 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_COLORWRITEENABLEUINT-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_TWEENFACTOREin Float-Wert, der den Tween-Faktor steuert. |
D3DRS_BLENDOPWert, 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_POSITIONDEGREEInterpolationsgrad der N-Patchposition. Die Werte können D3DDEGREE_CUBIC (Standard) oder D3DDEGREE_LINEAR werden. |
D3DRS_NORMALDEGREEN-Patch normaler Interpolationsgrad. Die Werte können D3DDEGREE_LINEAR (Standard) oder D3DDEGREE_QUADRATIC werden. |
D3DRS_SCISSORTESTENABLETRUE, um Scherentests und FALSE zu aktivieren, um es zu deaktivieren. Der Standardwert ist FALSE. |
D3DRS_SLOPESCALEDEPTHBIASWird verwendet, um zu bestimmen, wie viel Bias auf koplanare Grundtypen angewendet werden kann, um Z-Kampf zu reduzieren. Der Standardwert ist 0. |
D3DRS_ANTIALIASEDLINEENABLETRUE, um die Zeilen-Antialiasierung zu aktivieren, FALSE zum Deaktivieren der Zeilen-Antialiasierung. Der Standardwert ist FALSE. |
D3DRS_MINTESSELLATIONLEVELMinimale Tessellationsebene. Der Standardwert ist 1,0f. |
D3DRS_MAXTESSELLATIONLEVELMaximale Tessellationsebene. Der Standardwert ist 1,0f. |
D3DRS_ADAPTIVETESS_XBeträgt adaptives Tessellate in x-Richtung. Der Standardwert ist 0,0f. |
D3DRS_ADAPTIVETESS_YBeträgt adaptives Tessellate in y-Richtung. Der Standardwert ist 0,0f. |
D3DRS_ADAPTIVETESS_ZBeträgt adaptives Tessellate in z-Richtung. Der Standardwert ist 1,0f. |
D3DRS_ADAPTIVETESS_WBeträgt adaptives Tessellate in w-Richtung. Der Standardwert ist 0,0f. |
D3DRS_ENABLEADAPTIVETESSELLATIONTRUE, um adaptive Tessellation zu aktivieren, FALSE zum Deaktivieren. |
D3DRS_TWOSIDEDSTENCILMODETRUE 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_STENCILFAILAusführen des Schablonenvorgangs, wenn der CCW-Schablonentest fehlschlägt. |
D3DRS_CCW_STENCILZFAILSchablonenvorgang, der ausgeführt werden soll, wenn ccW-Schablonentest bestanden wird und z-Test fehlschlägt. |
D3DRS_CCW_STENCILPASSSchablonenvorgang, der ausgeführt werden soll, wenn sowohl die CCW-Schablone als auch die Z-Tests bestehen. |
D3DRS_CCW_STENCILFUNCDie Vergleichsfunktion. CCW-Schablonentest bestanden, wenn die Schablonenfunktion (Ref & Mask) (Schablonen-& Maske)) WAHR ist. |
D3DRS_COLORWRITEENABLE1Zusätzliche ColorWriteEnable-Werte für die Geräte. |
D3DRS_COLORWRITEENABLE2Zusätzliche ColorWriteEnable-Werte für die Geräte. |
D3DRS_COLORWRITEENABLE3Zusätzliche ColorWriteEnable-Werte für die Geräte. |
D3DRS_BLENDFACTOREin konstanter Mischfaktor während der Alphamischung. |
D3DRS_SRGBWRITEENABLEAktivieren Sie Renderziel-Schreibvorgänge, um gammakorrektur auf sRGB zu werden. Das Format muss D3DUSAGE_SRGBWRITE verfügbar machen. Der Standardwert ist 0. |
D3DRS_DEPTHBIASEin Gleitkommawert, der für den Vergleich von Tiefenwerten verwendet wird. |
D3DRS_WRAP8Siehe D3DRS_WRAP0. |
D3DRS_WRAP9Siehe D3DRS_WRAP0. |
D3DRS_WRAP10Siehe D3DRS_WRAP0. |
D3DRS_WRAP11Siehe D3DRS_WRAP0. |
D3DRS_WRAP12Siehe D3DRS_WRAP0. |
D3DRS_WRAP13Siehe D3DRS_WRAP0. |
D3DRS_WRAP14Siehe D3DRS_WRAP0. |
D3DRS_WRAP15Siehe D3DRS_WRAP0. |
D3DRS_SEPARATEALPHABLENDENABLETRUE 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_SRCBLENDALPHADieser Wert wird ignoriert, es sei denn, D3DRS_SEPARATEALPHABLENDENABLE ist WAHR. |
D3DRS_DESTBLENDALPHADieser Wert wird ignoriert, es sei denn, D3DRS_SEPARATEALPHABLENDENABLE ist WAHR. |
D3DRS_BLENDOPALPHAWert, 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_DWORDErzwingt 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) |