Énumération D3DRENDERSTATETYPE

Les états de rendu définissent des états de configuration pour tous les types de traitement de vertex et de pixels. Certains états de rendu configurent le traitement des vertex et d’autres configurent le traitement des pixels (voir Render States (Direct3D 9)). Les états de rendu peuvent être enregistrés et restaurés à l’aide de stateblocks (voir State Blocks Save and Restore State (Direct3D 9)).

Syntaxe

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;

Constantes

D3DRS_ZENABLE

État de mise en mémoire tampon de profondeur en tant que membre du type énuméré D3DZBUFFERTYPE . Définissez cet état sur D3DZB_TRUE pour activer la mise en mémoire tampon z, D3DZB_USEW pour activer la mise en mémoire tampon w ou D3DZB_FALSE pour désactiver la mise en mémoire tampon en profondeur.

La valeur par défaut de cet état de rendu est D3DZB_TRUE si un gabarit de profondeur a été créé avec la chaîne d’échange en définissant le membre EnableAutoDepthStencil de la structure D3DPRESENT_PARAMETERS sur TRUE, et D3DZB_FALSE sinon.

D3DRS_FILLMODE

Un ou plusieurs membres du type énuméré D3DFILLMODE . La valeur par défaut est D3DFILL_SOLID.

D3DRS_SHADEMODE

Un ou plusieurs membres du type énuméré D3DSHADEMODE . La valeur par défaut est D3DSHADE_GOURAUD.

D3DRS_ZWRITEENABLE

TRUE pour permettre à l’application d’écrire dans la mémoire tampon de profondeur. La valeur par défaut est TRUE. Ce membre permet à une application d’empêcher le système de mettre à jour la mémoire tampon de profondeur avec de nouvelles valeurs de profondeur. Si la valeur est FALSE, les comparaisons de profondeur sont toujours effectuées en fonction de l’état de rendu D3DRS_ZFUNC, en supposant que la mise en mémoire tampon de profondeur a lieu, mais que les valeurs de profondeur ne sont pas écrites dans la mémoire tampon.

D3DRS_ALPHATESTENABLE

TRUE pour activer le test alpha par pixel. Si le test réussit, le pixel est traité par la mémoire tampon de trame. Sinon, tout le traitement de la mémoire tampon d’image est ignoré pour le pixel.

Le test est effectué en comparant la valeur alpha entrante à la valeur alpha de référence, à l’aide de la fonction de comparaison fournie par l’état de rendu D3DRS_ALPHAFUNC. La valeur alpha de référence est déterminée par la valeur définie pour D3DRS_ALPHAREF. Pour plus d’informations, consultez État de test alpha (Direct3D 9).

La valeur par défaut de ce paramètre est FALSE.

D3DRS_LASTPIXEL

La valeur par défaut est TRUE, ce qui permet de dessiner le dernier pixel d’une ligne. Pour empêcher le dessin du dernier pixel, définissez cette valeur sur FALSE. Pour plus d’informations, consultez Plan et état de remplissage (Direct3D 9).

D3DRS_SRCBLEND

Un membre du type énuméré D3DBLEND . La valeur par défaut est D3DBLEND_ONE.

D3DRS_DESTBLEND

Un membre du type énuméré D3DBLEND . La valeur par défaut est D3DBLEND_ZERO.

D3DRS_CULLMODE

Spécifie la façon dont les triangles orientés vers l’arrière-plan sont abattus, le cas échéant. Il peut être défini sur un membre du type énuméré D3DCULL . La valeur par défaut est D3DCULL_CCW.

D3DRS_ZFUNC

Un membre du type énuméré D3DCMPFUNC . La valeur par défaut est D3DCMP_LESSEQUAL. Ce membre permet à une application d’accepter ou de rejeter un pixel, en fonction de sa distance par rapport à la caméra.

La valeur de profondeur du pixel est comparée à la valeur de la mémoire tampon de profondeur. Si la valeur de profondeur du pixel passe la fonction de comparaison, le pixel est écrit.

La valeur de profondeur est écrite dans la mémoire tampon de profondeur uniquement si l’état de rendu est TRUE.

Les rastériseurs logiciels et de nombreux accélérateurs matériels fonctionnent plus rapidement si le test de profondeur échoue, car il n’est pas nécessaire de filtrer et de moduler la texture si le pixel ne va pas être rendu.

D3DRS_ALPHAREF

Valeur qui spécifie une valeur alpha de référence par rapport à laquelle les pixels sont testés lorsque le test alpha est activé. Il s’agit d’une valeur 8 bits placée dans les 8 bits faibles de la valeur d’état de rendu DWORD. Les valeurs peuvent aller de 0x00000000 à 0x000000FF. La valeur par défaut est 0.

D3DRS_ALPHAFUNC

Un membre du type énuméré D3DCMPFUNC . La valeur par défaut est D3DCMP_ALWAYS. Ce membre permet à une application d’accepter ou de rejeter un pixel, en fonction de sa valeur alpha.

D3DRS_DITHERENABLE

TRUE pour activer le dithering. La valeur par défaut est FALSE.

D3DRS_ALPHABLENDENABLE

TRUE pour activer la transparence alpha-blended. La valeur par défaut est FALSE.

Le type de fusion alpha est déterminé par les états de rendu D3DRS_SRCBLEND et D3DRS_DESTBLEND.

D3DRS_FOGENABLE

TRUE pour activer le mélange de brouillard. La valeur par défaut est FALSE. Pour plus d’informations sur l’utilisation du mélange de brouillard, consultez Brouillard.

D3DRS_SPECULARENABLE

TRUE pour activer les surbrillances spéculaires. La valeur par défaut est FALSE.

Les surbrillances spéculaires sont calculées comme si chaque sommet de l’objet en cours d’éclairage était à l’origine de l’objet. Cela donne les résultats attendus tant que l’objet est modélisé autour de l’origine et que la distance entre la lumière et l’objet est relativement grande. Dans d’autres cas, les résultats ne sont pas définis.

Lorsque ce membre a la valeur TRUE, la couleur spéculaire est ajoutée à la couleur de base après la cascade de texture, mais avant le mélange alpha.

D3DRS_FOGCOLOR

Valeur dont le type est D3DCOLOR. La valeur par défaut est 0. Pour plus d’informations sur la couleur de brouillard, consultez Couleur de brouillard (Direct3D 9).

D3DRS_FOGTABLEMODE

Formule de brouillard à utiliser pour le brouillard de pixels. Définissez sur l’un des membres du type énuméré D3DFOGMODE . La valeur par défaut est D3DFOG_NONE. Pour plus d’informations sur le brouillard de pixels, consultez Pixel Fog (Direct3D 9).

D3DRS_FOGSTART

Profondeur à laquelle les effets de brouillard de pixels ou de vertex commencent pour le mode brouillard linéaire. La valeur par défaut est 0,0f. La profondeur est spécifiée dans l’espace mondial pour le brouillard de vertex et l’espace de l’appareil [0.0, 1.0] ou l’espace mondial pour le brouillard de pixels. Pour le brouillard de pixels, ces valeurs se trouvent dans l’espace de l’appareil lorsque le système utilise z pour les calculs de brouillard et l’espace mondial lorsque le système utilise le brouillard relatif à l’œil (w-fog). Pour plus d’informations, consultez Paramètres de brouillard (Direct3D 9) et Profondeur basée sur les yeux par rapport à Z.

Les valeurs de cet état de rendu sont des valeurs à virgule flottante. Étant donné que la méthode IDirect3DDevice9::SetRenderState accepte les valeurs DWORD, votre application doit caster une variable qui contient la valeur, comme illustré dans l’exemple de code suivant.

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

D3DRS_FOGEND

Profondeur à laquelle les effets de brouillard de pixels ou de vertex se terminent pour le mode brouillard linéaire. La valeur par défaut est 1.0f. La profondeur est spécifiée dans l’espace mondial pour le brouillard de vertex et l’espace d’appareil [0,0, 1,0] ou l’espace mondial pour le brouillard de pixels. Pour le brouillard de pixels, ces valeurs sont dans l’espace de l’appareil lorsque le système utilise z pour les calculs de brouillard et dans l’espace mondial lorsque le système utilise le brouillard relatif aux yeux (w-fog). Pour plus d’informations, consultez Paramètres de brouillard (Direct3D 9) et Eye-Relative vs. Z-based Depth.

Les valeurs de cet état de rendu sont des valeurs à virgule flottante. Étant donné que la méthode IDirect3DDevice9::SetRenderState accepte les valeurs DWORD, votre application doit caster une variable qui contient la valeur, comme indiqué dans l’exemple de code suivant.

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

D3DRS_FOGDENSITY

Densité de brouillard pour le brouillard en pixels ou en vertex utilisé dans les modes de brouillard exponentiel (D3DFOG_EXP et D3DFOG_EXP2). Les valeurs de densité valides sont comprises entre 0,0 et 1,0. La valeur par défaut est 1,0. Pour plus d’informations, consultez Paramètres de brouillard (Direct3D 9).

Les valeurs de cet état de rendu sont des valeurs à virgule flottante. Étant donné que la méthode IDirect3DDevice9::SetRenderState accepte les valeurs DWORD, votre application doit caster une variable qui contient la valeur, comme indiqué dans l’exemple de code suivant.

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

D3DRS_RANGEFOGENABLE

TRUE pour activer le brouillard de vertex basé sur la plage. La valeur par défaut est FALSE, auquel cas le système utilise le brouillard basé sur la profondeur. Dans le brouillard basé sur la plage, la distance d’un objet par rapport à la visionneuse est utilisée pour calculer les effets de brouillard, et non la profondeur de l’objet (autrement dit, la coordonnée z) dans la scène. Dans le brouillard basé sur la plage, toutes les méthodes de brouillard fonctionnent comme d’habitude, sauf qu’elles utilisent la plage au lieu de la profondeur dans les calculs.

La plage est le facteur correct à utiliser pour les calculs de brouillard, mais la profondeur est couramment utilisée à la place, car la plage prend beaucoup de temps à calculer et la profondeur est généralement déjà disponible. L’utilisation de la profondeur pour calculer le brouillard a l’effet indésirable de faire changer la fogginess des objets périphériques à mesure que l’œil de la visionneuse se déplace - dans ce cas, la profondeur change et la plage reste constante.

Étant donné qu’aucun matériel ne prend actuellement en charge le brouillard basé sur la plage de pixels, la correction de plage est proposée uniquement pour le brouillard de vertex.

Pour plus d’informations, consultez Brouillard de vertex (Direct3D 9).

D3DRS_STENCILENABLE

TRUE pour activer le pochoir, ou FALSE pour désactiver le pochoir. La valeur par défaut est FALSE. Pour plus d’informations, consultez Stencil Buffer Techniques (Direct3D 9).

D3DRS_STENCILFAIL

Opération de gabarit à effectuer si le test de gabarit échoue. Les valeurs proviennent du type énuméré D3DSTENCILOP . La valeur par défaut est D3DSTENCILOP_KEEP.

D3DRS_STENCILZFAIL

Opération de gabarit à effectuer si le test de gabarit réussit et que le test de profondeur (z-test) échoue. Les valeurs proviennent du type énuméré D3DSTENCILOP . La valeur par défaut est D3DSTENCILOP_KEEP.

D3DRS_STENCILPASS

Opération de gabarit à effectuer si le gabarit et les tests de profondeur (z) réussissent. Les valeurs proviennent du type énuméré D3DSTENCILOP . La valeur par défaut est D3DSTENCILOP_KEEP.

D3DRS_STENCILFUNC

Fonction de comparaison pour le test de gabarit. Les valeurs proviennent du type énuméré D3DCMPFUNC . La valeur par défaut est D3DCMP_ALWAYS.

La fonction de comparaison est utilisée pour comparer la valeur de référence à une entrée de mémoire tampon de gabarit. Cette comparaison s’applique uniquement aux bits de la valeur de référence et de l’entrée de mémoire tampon de gabarit qui sont définis dans le masque de gabarit (défini par l’état de rendu D3DRS_STENCILMASK). Si la valeur est TRUE, le test de gabarit réussit.

D3DRS_STENCILREF

Valeur de référence int pour le test de gabarit. La valeur par défaut est 0.

D3DRS_STENCILMASK

Masque appliqué à la valeur de référence et à chaque entrée de mémoire tampon de gabarit pour déterminer les bits significatifs pour le test de gabarit. Le masque par défaut est 0xFFFFFFFF.

D3DRS_STENCILWRITEMASK

Masque d’écriture appliqué aux valeurs écrites dans la mémoire tampon de gabarit. Le masque par défaut est 0xFFFFFFFF.

D3DRS_TEXTUREFACTOR

Couleur utilisée pour le mélange de plusieurs textures avec l’argument de fusion de textures D3DTA_TFACTOR ou l’opération de fusion de textures D3DTOP_BLENDFACTORALPHA. La valeur associée est une variable D3DCOLOR . La valeur par défaut est blanc opaque (0xFFFFFFFF).

D3DRS_WRAP0

Comportement d’habillage de texture pour plusieurs ensembles de coordonnées de texture. Les valeurs valides pour cet état de rendu peuvent être n’importe quelle combinaison d’indicateurs D3DWRAPCOORD_0 (ou D3DWRAP_U), D3DWRAPCOORD_1 (ou D3DWRAP_V), D3DWRAPCOORD_2 (ou D3DWRAP_W) et D3DWRAPCOORD_3 indicateurs. Cela entraîne l’encapsulation du système dans la direction des première, deuxième, troisième et quatrième dimensions, parfois appelées directions s, t, r et q, pour une texture donnée. La valeur par défaut de cet état de rendu est 0 (habillage désactivé dans toutes les directions).

D3DRS_WRAP1

Voir D3DRS_WRAP0.

D3DRS_WRAP2

Voir D3DRS_WRAP0.

D3DRS_WRAP3

Voir D3DRS_WRAP0.

D3DRS_WRAP4

Voir D3DRS_WRAP0.

D3DRS_WRAP5

Voir D3DRS_WRAP0.

D3DRS_WRAP6

Voir D3DRS_WRAP0.

D3DRS_WRAP7

Voir D3DRS_WRAP0.

D3DRS_CLIPPING

TRUE pour activer le découpage primitif par Direct3D, ou FALSE pour le désactiver. La valeur par défaut est TRUE.

D3DRS_LIGHTING

TRUE pour activer l’éclairage Direct3D ou FALSE pour le désactiver. La valeur par défaut est TRUE. Seuls les sommets qui incluent une normale de vertex sont correctement éclairés; les sommets qui ne contiennent pas de normale utilisent un produit point de 0 dans tous les calculs d’éclairage.

D3DRS_AMBIENT

Couleur de lumière ambiante. Cette valeur est de type D3DCOLOR. La valeur par défaut est 0.

D3DRS_FOGVERTEXMODE

Formule de brouillard à utiliser pour le brouillard de vertex. Définissez sur un membre du type énuméré D3DFOGMODE . La valeur par défaut est D3DFOG_NONE.

D3DRS_COLORVERTEX

TRUE pour activer la couleur par vertex ou FALSE pour la désactiver. La valeur par défaut est TRUE. L’activation de la couleur par sommet permet au système d’inclure la couleur définie pour les sommets individuels dans ses calculs d’éclairage.

Pour plus d’informations, consultez les états de rendu suivants :

  • D3DRS_DIFFUSEMATERIALSOURCE
  • D3DRS_SPECULARMATERIALSOURCE
  • D3DRS_AMBIENTMATERIALSOURCE
  • D3DRS_EMISSIVEMATERIALSOURCE

D3DRS_LOCALVIEWER

TRUE pour activer les surbrillances spéculaires relatives à la caméra, ou FALSE pour utiliser des surbrillances spéculaires orthogonales. La valeur par défaut est TRUE. Les applications qui utilisent la projection orthogonale doivent spécifier FALSE.

D3DRS_NORMALIZENORMALS

TRUE pour activer la normalisation automatique des normales de vertex, ou FALSE pour le désactiver. La valeur par défaut est FALSE. L’activation de cette fonctionnalité permet au système de normaliser les normales de vertex pour les sommets après les avoir transformés en espace de caméra, ce qui peut prendre du temps en calcul.

D3DRS_DIFFUSEMATERIALSOURCE

Source de couleur diffuse pour les calculs d’éclairage. Les valeurs valides sont membres du type énuméré D3DMATERIALCOLORSOURCE . La valeur par défaut est D3DMCS_COLOR1. La valeur de cet état de rendu est utilisée uniquement si l’état de rendu D3DRS_COLORVERTEX est défini sur TRUE.

D3DRS_SPECULARMATERIALSOURCE

Source de couleur spéculaire pour les calculs d’éclairage. Les valeurs valides sont membres du type énuméré D3DMATERIALCOLORSOURCE . La valeur par défaut est D3DMCS_COLOR2.

D3DRS_AMBIENTMATERIALSOURCE

Source de couleur ambiante pour les calculs d’éclairage. Les valeurs valides sont membres du type énuméré D3DMATERIALCOLORSOURCE . La valeur par défaut est D3DMCS_MATERIAL.

D3DRS_EMISSIVEMATERIALSOURCE

Source de couleur émissive pour les calculs d’éclairage. Les valeurs valides sont membres du type énuméré D3DMATERIALCOLORSOURCE . La valeur par défaut est D3DMCS_MATERIAL.

D3DRS_VERTEXBLEND

Nombre de matrices à utiliser pour effectuer le mélange géométrique, le cas échéant. Les valeurs valides sont membres du type énuméré D3DVERTEXBLENDFLAGS . La valeur par défaut est D3DVBF_DISABLE.

D3DRS_CLIPPLANEENABLE

Active ou désactive les plans de découpage définis par l’utilisateur. Les valeurs valides sont toutes les DWORD dans lesquelles le status de chaque bit (défini ou non) bascule l’état d’activation d’un plan de découpage défini par l’utilisateur correspondant. Le bit le moins significatif (bit 0) contrôle le premier plan de découpage à l’index 0, et les bits suivants contrôlent l’activation des plans de découpage aux index supérieurs. Si un bit est défini, le système applique le plan de découpage approprié pendant le rendu de la scène. La valeur par défaut est 0.

Les macros D3DCLIPPLANEn sont définies pour fournir un moyen pratique d’activer les plans de découpage.

D3DRS_POINTSIZE

Valeur float qui spécifie la taille à utiliser pour le calcul de la taille de point dans les cas où la taille de point n’est pas spécifiée pour chaque sommet. Cette valeur n’est pas utilisée lorsque le sommet contient une taille de point. Cette valeur se trouve dans les unités d’espace d’écran si D3DRS_POINTSCALEENABLE a la valeur FALSE ; sinon, cette valeur est en unités spatiales mondiales. La valeur par défaut est la valeur renvoyée par un pilote. Si un pilote retourne 0 ou 1, la valeur par défaut est 64, ce qui autorise l’émulation de taille de point logiciel. Étant donné que la méthode IDirect3DDevice9::SetRenderState accepte les valeurs DWORD, votre application doit caster une variable qui contient la valeur, comme illustré dans l’exemple de code suivant.

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

D3DRS_POINTSIZE_MIN

Valeur float qui spécifie la taille minimale des primitives de points. Les primitives de points sont limitées à cette taille pendant le rendu. La définition de cette valeur sur des valeurs inférieures à 1.0 entraîne la suppression de points lorsque le point ne couvre pas un centre de pixels et que l’anti-ataliasing est désactivé ou est rendu avec une intensité réduite lorsque l’anti-attirail est activé. La valeur par défaut est 1.0f. La plage de cette valeur est supérieure ou égale à 0,0f. Étant donné que la méthode IDirect3DDevice9::SetRenderState accepte les valeurs DWORD, votre application doit caster une variable qui contient la valeur, comme illustré dans l’exemple de code suivant.

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

D3DRS_POINTSPRITEENABLE

valeur bool. Lorsque la valeur EST TRUE, les coordonnées de texture des primitives de points sont définies de sorte que les textures complètes soient mappées sur chaque point. Quand la valeur EST FALSE, les coordonnées de texture de vertex sont utilisées pour l’ensemble du point. La valeur par défaut est FALSE. Vous pouvez obtenir des points d’un pixel de style DirectX 7 en définissant D3DRS_POINTSCALEENABLE sur FALSE et D3DRS_POINTSIZE sur 1.0, qui sont les valeurs par défaut.

D3DRS_POINTSCALEENABLE

valeur bool qui contrôle le calcul de la taille pour les primitives de points. Quand la valeur EST TRUE, la taille du point est interprétée comme une valeur d’espace de caméra et est mise à l’échelle par la fonction distance et le frustum pour afficher la mise à l’échelle de l’axe Y pour calculer la taille finale du point d’espace écran. Quand la valeur EST FALSE, la taille du point est interprétée comme espace d’écran et utilisée directement. La valeur par défaut est FALSE.

D3DRS_POINTSCALE_A

Valeur float qui contrôle l’atténuation de la taille basée sur la distance pour les primitives de points. Actif uniquement lorsque D3DRS_POINTSCALEENABLE a la valeur TRUE. La valeur par défaut est 1.0f. La plage de cette valeur est supérieure ou égale à 0,0f. Étant donné que la méthode IDirect3DDevice9::SetRenderState accepte les valeurs DWORD, votre application doit caster une variable qui contient la valeur, comme illustré dans l’exemple de code suivant.

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

D3DRS_POINTSCALE_B

Valeur float qui contrôle l’atténuation de la taille basée sur la distance pour les primitives de points. Actif uniquement lorsque D3DRS_POINTSCALEENABLE a la valeur TRUE. La valeur par défaut est 0,0f. La plage de cette valeur est supérieure ou égale à 0,0f. Étant donné que la méthode IDirect3DDevice9::SetRenderState accepte les valeurs DWORD, votre application doit caster une variable qui contient la valeur, comme illustré dans l’exemple de code suivant.

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

D3DRS_POINTSCALE_C

Valeur float qui contrôle l’atténuation de la taille basée sur la distance pour les primitives de points. Actif uniquement lorsque D3DRS_POINTSCALEENABLE a la valeur TRUE. La valeur par défaut est 0,0f. La plage de cette valeur est supérieure ou égale à 0,0f. Étant donné que la méthode IDirect3DDevice9::SetRenderState accepte les valeurs DWORD, votre application doit caster une variable qui contient la valeur, comme illustré dans l’exemple de code suivant.

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

D3DRS_MULTISAMPLEANTIALIAS

valeur bool qui détermine la façon dont les échantillons individuels sont calculés lors de l’utilisation d’une mémoire tampon cible de rendu multiéchantillon. Lorsqu’il est défini sur TRUE, les multiples exemples sont calculés de sorte que l’anti-ataliasing en scène complète est effectué par échantillonnage à différentes positions d’échantillon pour chaque échantillon multiple. Lorsqu’il est défini sur FALSE, les exemples multiples sont tous écrits avec la même valeur d’exemple, échantillonnés au centre des pixels, ce qui permet un rendu non anti-anti-antialiased dans une mémoire tampon multi-échantillon. Cet état de rendu n’a aucun effet lors du rendu vers un seul exemple de mémoire tampon. La valeur par défaut est TRUE.

D3DRS_MULTISAMPLEMASK

Chaque bit de ce masque, commençant au bit le moins significatif (LSB), contrôle la modification de l’un des exemples dans une cible de rendu multiéchantillon. Par conséquent, pour une cible de rendu de 8 exemples, l’octet faible contient les huit activations d’écriture pour chacun des huit exemples. Cet état de rendu n’a aucun effet lors du rendu vers un seul exemple de mémoire tampon. La valeur par défaut est 0xFFFFFFFF.

Cet état de rendu permet d’utiliser une mémoire tampon multiéchantillon comme mémoire tampon d’accumulation, en effectuant un rendu multipass de la géométrie où chaque passe met à jour un sous-ensemble d’exemples.

S’il existe n exemples multi-échantillons et k activés, l’intensité résultante de l’image rendue doit être k/n. Chaque composant RVB de chaque pixel est factorisé par k/n.

D3DRS_PATCHEDGESTYLE

Définit si les bords de patch utilisent la mise en forme de float. Les valeurs possibles sont définies par le type énuméré D3DPATCHEDGESTYLE . La valeur par défaut est D3DPATCHEDGE_DISCRETE.

D3DRS_DEBUGMONITORTOKEN

Défini uniquement pour le débogage du moniteur. Les valeurs possibles sont définies par le type énuméré D3DDEBUGMONITORTOKENS . Notez que si D3DRS_DEBUGMONITORTOKEN est défini, l’appel est traité comme passant un jeton au moniteur de débogage. Par exemple, si, après avoir passé D3DDMT_ENABLE ou D3DDMT_DISABLE à D3DRS_DEBUGMONITORTOKEN, d’autres valeurs de jeton sont transmises, l’état (activé ou désactivé) du moniteur de débogage persiste.

Cet état n’est utile que pour les builds de débogage. Par défaut, le moniteur de débogage est D3DDMT_ENABLE.

D3DRS_POINTSIZE_MAX

Valeur float qui spécifie la taille maximale à laquelle les sprites de point seront serrés. La valeur doit être inférieure ou égale au membre MaxPointSize de D3DCAPS9 et supérieure ou égale à D3DRS_POINTSIZE_MIN. La valeur par défaut est 64.0. Étant donné que la méthode IDirect3DDevice9::SetRenderState accepte les valeurs DWORD, votre application doit caster une variable qui contient la valeur, comme illustré dans l’exemple de code suivant.

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

D3DRS_INDEXEDVERTEXBLENDENABLE

valeur bool qui active ou désactive le mélange de sommets indexés. La valeur par défaut est FALSE. Lorsqu’il est défini sur TRUE, le mélange de sommets indexés est activé. Lorsqu’il est défini sur FALSE, le mélange de vertex indexé est désactivé. Si cet état de rendu est activé, l’utilisateur doit passer des index de matrice en tant que DWORD pack avec chaque sommet. Lorsque l’état de rendu est désactivé et que le mélange de vertex est activé via l’état D3DRS_VERTEXBLEND, cela équivaut à avoir des index de matrice 0, 1, 2, 3 dans chaque sommet.

D3DRS_COLORWRITEENABLE

Valeur UINT qui active une écriture par canal pour la mémoire tampon de couleur cible de rendu. Un bit défini entraîne la mise à jour du canal de couleurs pendant le rendu 3D. Avec un bit clair, le canal de couleur n’est pas affecté. Cette fonctionnalité est disponible si le bit des fonctionnalités D3DPMISCCAPS_COLORWRITEENABLE est défini dans le membre PrimitiveMiscCaps de la structure D3DCAPS9 pour l’appareil. Cet état de rendu n’affecte pas l’opération d’effacement. La valeur par défaut est 0x0000000F.

Les valeurs valides pour cet état de rendu peuvent être n’importe quelle combinaison des indicateurs D3DCOLORWRITEENABLE_ALPHA, D3DCOLORWRITEENABLE_BLUE, D3DCOLORWRITEENABLE_GREEN ou D3DCOLORWRITEENABLE_RED.

D3DRS_TWEENFACTOR

Valeur float qui contrôle le facteur d’interpolation. La valeur par défaut est 0,0f. Étant donné que la méthode IDirect3DDevice9::SetRenderState accepte les valeurs DWORD, votre application doit caster une variable qui contient la valeur, comme illustré dans l’exemple de code suivant.

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

D3DRS_BLENDOP

Valeur utilisée pour sélectionner l’opération arithmétique appliquée lorsque l’état de rendu de fusion alpha, D3DRS_ALPHABLENDENABLE, est défini sur TRUE. Les valeurs valides sont définies par le type énuméré D3DBLENDOP . La valeur par défaut est D3DBLENDOP_ADD.

Si la fonctionnalité d’appareil D3DPMISCCAPS_BLENDOP n’est pas prise en charge, D3DBLENDOP_ADD est effectuée.

D3DRS_POSITIONDEGREE

Degré d’interpolation de position de correctif N. Les valeurs peuvent être D3DDEGREE_CUBIC (par défaut) ou D3DDEGREE_LINEAR. Pour plus d’informations, consultez D3DDEGREETYPE.

D3DRS_NORMALDEGREE

Degré d’interpolation normal de N patch. Les valeurs peuvent être D3DDEGREE_LINEAR (par défaut) ou D3DDEGREE_QUADRATIC. Pour plus d’informations, consultez D3DDEGREETYPE.

D3DRS_SCISSORTESTENABLE

TRUE pour activer le test des ciseaux et FALSE pour le désactiver. La valeur par défaut est FALSE.

D3DRS_SLOPESCALEDEPTHBIAS

Utilisé pour déterminer la quantité de biais qui peut être appliqué aux primitives co-planaires afin de réduire la lutte z. La valeur par défaut est 0.

bias = (max * D3DRS_SLOPESCALEDEPTHBIAS) + D3DRS_DEPTHBIAS.

où max est la pente de profondeur maximale du triangle en cours de rendu.

D3DRS_ANTIALIASEDLINEENABLE

TRUE pour activer l’anti-attirail de ligne, FALSE pour désactiver l’anti-attirail de ligne. La valeur par défaut est FALSE.

Lors du rendu sur une cible de rendu multiéchantillon, D3DRS_ANTIALIASEDLINEENABLE est ignoré et toutes les lignes sont rendues sous alias. Utilisez ID3DXLine pour le rendu de ligne anti-attirail dans une cible de rendu multiéchantillon.

D3DRS_MINTESSELLATIONLEVEL

Niveau minimal de pavage. La valeur par défaut est 1.0f. Voir Tessellation (Direct3D 9).

D3DRS_MAXTESSELLATIONLEVEL

Niveau maximal de pavage. La valeur par défaut est 1.0f. Voir Tessellation (Direct3D 9).

D3DRS_ADAPTIVETESS_X

Quantité à sceller de manière adaptative, dans le sens x. La valeur par défaut est 0,0f. Consultez La mise en place adaptative.

D3DRS_ADAPTIVETESS_Y

Montant à tésser de manière adaptative, dans le sens y. La valeur par défaut est 0,0f. Voir Adaptive_Tessellation.

D3DRS_ADAPTIVETESS_Z

Quantité à sceller de manière adaptative, dans le sens z. La valeur par défaut est 1.0f. Voir Adaptive_Tessellation.

D3DRS_ADAPTIVETESS_W

Montant à tésser de manière adaptative, dans le sens w. La valeur par défaut est 0,0f. Voir Adaptive_Tessellation.

D3DRS_ENABLEADAPTIVETESSELLATION

TRUE pour activer la mise en place adaptative, FALSE pour la désactiver. La valeur par défaut est FALSE. Voir Adaptive_Tessellation.

D3DRS_TWOSIDEDSTENCILMODE

TRUE active le pochoir à deux côtés et FALSE le désactive. La valeur par défaut est FALSE. L’application doit définir D3DRS_CULLMODE sur D3DCULL_NONE pour activer le mode de gabarit à deux côtés. Si l’ordre d’enroulement du triangle est dans le sens des aiguilles d’une montre, les opérations D3DRS_STENCIL* sont utilisées. Si l’ordre d’enroulement est dans le sens inverse des aiguilles d’une montre, les opérations D3DRS_CCW_STENCIL* sont utilisées.

Pour voir si le gabarit à deux côtés est pris en charge, case activée le membre StencilCaps de D3DCAPS9 pour D3DSTENCILCAPS_TWOSIDED. Voir aussi D3DSTENCILCAPS.

D3DRS_CCW_STENCILFAIL

Opération de gabarit à effectuer si le test de gabarit CCW échoue. Les valeurs proviennent du type énuméré D3DSTENCILOP . La valeur par défaut est D3DSTENCILOP_KEEP.

D3DRS_CCW_STENCILZFAIL

Opération de gabarit à effectuer si le test de gabarit CCW réussit et que z-test échoue. Les valeurs proviennent du type énuméré D3DSTENCILOP . La valeur par défaut est D3DSTENCILOP_KEEP.

D3DRS_CCW_STENCILPASS

Opération de gabarit à effectuer si le gabarit CCW et les tests z réussissent. Les valeurs proviennent du type énuméré D3DSTENCILOP . La valeur par défaut est D3DSTENCILOP_KEEP.

D3DRS_CCW_STENCILFUNC

Fonction de comparaison. Le test de gabarit CCW réussit si la fonction de gabarit ((ref & mask) (masque de gabarit & )) a la valeur TRUE. Les valeurs proviennent du type énuméré D3DCMPFUNC . La valeur par défaut est D3DCMP_ALWAYS.

D3DRS_COLORWRITEENABLE1

Valeurs ColorWriteEnable supplémentaires pour les appareils. Voir D3DRS_COLORWRITEENABLE. Cette fonctionnalité est disponible si le bit de fonctionnalités D3DPMISCCAPS_INDEPENDENTWRITEMASKS est défini dans le membre PrimitiveMiscCaps de la structure D3DCAPS9 pour l’appareil. La valeur par défaut est 0x0000000f.

D3DRS_COLORWRITEENABLE2

Valeurs ColorWriteEnable supplémentaires pour les appareils. Voir D3DRS_COLORWRITEENABLE. Cette fonctionnalité est disponible si le bit de fonctionnalités D3DPMISCCAPS_INDEPENDENTWRITEMASKS est défini dans le membre PrimitiveMiscCaps de la structure D3DCAPS9 pour l’appareil. La valeur par défaut est 0x0000000f.

D3DRS_COLORWRITEENABLE3

Valeurs ColorWriteEnable supplémentaires pour les appareils. Voir D3DRS_COLORWRITEENABLE. Cette fonctionnalité est disponible si le bit de fonctionnalités D3DPMISCCAPS_INDEPENDENTWRITEMASKS est défini dans le membre PrimitiveMiscCaps de la structure D3DCAPS9 pour l’appareil. La valeur par défaut est 0x0000000f.

D3DRS_BLENDFACTOR

D3DCOLOR utilisé pour un facteur de fusion constant pendant le mélange alpha. Cette fonctionnalité est disponible si le bit de fonctionnalités D3DPBLENDCAPS_BLENDFACTOR est défini dans le membre SrcBlendCaps de D3DCAPS9 ou le membre DestBlendCaps de D3DCAPS9. Consultez D3DRENDERSTATETYPE. La valeur par défaut est 0xffffffff.

D3DRS_SRGBWRITEENABLE

Activer la correction gamma des écritures de cible de rendu sur sRGB. Le format doit exposer D3DUSAGE_SRGBWRITE. La valeur par défaut est 0.

D3DRS_DEPTHBIAS

Valeur à virgule flottante utilisée pour la comparaison des valeurs de profondeur. Consultez Biais de profondeur (Direct3D 9). La valeur par défaut est 0.

D3DRS_WRAP8

Voir D3DRS_WRAP0.

D3DRS_WRAP9

Voir D3DRS_WRAP0.

D3DRS_WRAP10

Voir D3DRS_WRAP0.

D3DRS_WRAP11

Voir D3DRS_WRAP0.

D3DRS_WRAP12

Voir D3DRS_WRAP0.

D3DRS_WRAP13

Voir D3DRS_WRAP0.

D3DRS_WRAP14

Voir D3DRS_WRAP0.

D3DRS_WRAP15

Voir D3DRS_WRAP0.

D3DRS_SEPARATEALPHABLENDENABLE

TRUE active le mode de fusion distinct pour le canal alpha. La valeur par défaut est FALSE.

Lorsqu’il est défini sur FALSE, les facteurs de fusion de cible de rendu et les opérations appliqués à l’alpha sont forcés d’être identiques à ceux définis pour la couleur. Ce mode est effectivement câblé sur FALSE sur les implémentations qui ne définissent pas la limite D3DPMISCCAPS_SEPARATEALPHABLEND. Consultez D3DPMISCCAPS.

Le type de fusion alpha distincte est déterminé par les états de rendu D3DRS_SRCBLENDALPHA et D3DRS_DESTBLENDALPHA.

D3DRS_SRCBLENDALPHA

Un membre du type énuméré D3DBLEND . Cette valeur est ignorée, sauf si D3DRS_SEPARATEALPHABLENDENABLE a la valeur TRUE. La valeur par défaut est D3DBLEND_ONE.

D3DRS_DESTBLENDALPHA

Un membre du type énuméré D3DBLEND . Cette valeur est ignorée, sauf si D3DRS_SEPARATEALPHABLENDENABLE a la valeur TRUE. La valeur par défaut est D3DBLEND_ZERO.

D3DRS_BLENDOPALPHA

Valeur utilisée pour sélectionner l’opération arithmétique appliquée à la fusion alpha distincte lorsque l’état de rendu, D3DRS_SEPARATEALPHABLENDENABLE, est défini sur TRUE.

Les valeurs valides sont définies par le type énuméré D3DBLENDOP . La valeur par défaut est D3DBLENDOP_ADD.

Si la fonctionnalité d’appareil D3DPMISCCAPS_BLENDOP n’est pas prise en charge, D3DBLENDOP_ADD est effectuée. Consultez D3DPMISCCAPS.

D3DRS_FORCE_DWORD

Force cette énumération à compiler à une taille de 32 bits. Sans cette valeur, certains compilateurs autoriseraient cette énumération à compiler à une taille autre que 32 bits. Cette valeur n'est pas utilisée.

Notes

États de rendu Échantillonneur de textures
ps_1_1 à ps_1_3 4 échantillonneurs de textures

 

Direct3D définit la constante de D3DRENDERSTATE_WRAPBIAS pour permettre aux applications d’activer ou de désactiver l’habillage de texture, en fonction de l’entier de base zéro d’un jeu de coordonnées de texture (plutôt que d’utiliser explicitement l’une des D3DRS_WRAP n valeurs d’état). Ajoutez la valeur D3DRENDERSTATE_WRAPBIAS à l’index de base zéro d’un jeu de coordonnées de texture pour calculer la valeur D3DRS_WRAP n qui correspond à cet index, comme illustré dans l’exemple suivant.

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

Spécifications

Condition requise Valeur
En-tête
D3D9Types.h

Voir aussi

Énumérations Direct3D

IDirect3DDevice9::GetRenderState

IDirect3DDevice9::SetRenderState