É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 |
|
Voir aussi