structure D3D10_DDI_RASTERIZER_DESC (d3d10umddi.h)
La structure D3D10_DDI_RASTERIZER_DESC décrit un état de rastériseur.
Syntaxe
typedef struct D3D10_DDI_RASTERIZER_DESC {
[in] D3D10_DDI_FILL_MODE FillMode;
[in] D3D10_DDI_CULL_MODE CullMode;
[in] BOOL FrontCounterClockwise;
[in] INT32 DepthBias;
[in] FLOAT DepthBiasClamp;
[in] FLOAT SlopeScaledDepthBias;
[in] BOOL DepthClipEnable;
[in] BOOL ScissorEnable;
[in] BOOL MultisampleEnable;
[in] BOOL AntialiasedLineEnable;
} D3D10_DDI_RASTERIZER_DESC;
Membres
[in] FillMode
Valeur qui spécifie le mode de remplissage pour les primitives. Ce membre doit être défini sur l’une des valeurs suivantes de l’énumération D3D10_DDI_FILL_MODE.
Valeur | Signification |
---|---|
D3D10_DDI_FILL_WIREFRAME (2) | Remplit les wireframes. |
D3D10_DDI_FILL_SOLID (3) | Remplit les solides. |
[in] CullMode
Valeur qui spécifie la façon dont les triangles orientés vers l’arrière-plan sont abattus, le cas échéant. Ce membre doit être défini sur l’une des valeurs suivantes de l’énumération D3D10_DDI_CULL_MODE.
Valeur | Signification |
---|---|
D3D10_DDI_CULL_NONE (1) | Ne coupez pas les triangles. |
D3D10_DDI_CULL_FRONT (2) | Visages avant de coupe. |
D3D10_DDI_CULL_BACK (3) | Cull back faces. |
[in] FrontCounterClockwise
Valeur booléenne qui spécifie si les sommets fournis dans un ordre inverse des aiguilles d’une montre (par rapport au rastériseur) sont orientés vers l’avant. TRUE indique qu’ils le sont ; FALSE indique que les sommets dans le sens inverse des aiguilles d’une montre indiquent qu’ils sont orientés vers l’arrière.
[in] DepthBias
Constante de biais de profondeur à utiliser dans les formules de biais. Pour plus d’informations sur DepthBias, consultez la section Remarques suivante.
[in] DepthBiasClamp
Vecteur float simple précision utilisé dans les formules de biais. Pour plus d’informations sur DepthBiasClamp, consultez la section Remarques suivante.
[in] SlopeScaledDepthBias
Vecteur float simple précision utilisé dans les formules de biais. Pour plus d’informations sur SlopeScaledDepthBias, consultez la section Remarques suivante.
[in] DepthClipEnable
Valeur booléenne qui spécifie si le pilote doit cliper les coordonnées z de vertex par rapport à la plage de profondeur de la fenêtre d’affichage. TRUE indique d’effectuer un clip ; FALSE indique qu’il ne faut pas couper.
[in] ScissorEnable
Valeur booléenne qui spécifie si le pilote doit ignorer les pixels qui se trouvent en dehors de la zone rectangulaire de ciseaux appropriée. TRUE indique à ignorer ; FALSE indique qu’il ne faut pas ignorer.
[in] MultisampleEnable
Valeur booléenne qui spécifie si le pilote doit suivre des règles de rastérisation à plusieurs échantillons. TRUE indique de suivre les règles ; FALSE indique que le respect des règles n’est pas obligatoire. Les règles de rastérisation à échantillon multiple ont la valeur true même si les cibles de rendu ne contiennent qu’un seul exemple.
[in] AntialiasedLineEnable
Valeur booléenne qui spécifie si le pilote doit afficher les lignes qui suivent les règles de rastérisation de ligne anti-aliased. TRUE indique de suivre les règles ; FALSE indique que le respect des règles n’est pas obligatoire. Le pilote ignore la valeur dans AntialiasedLineEnable si des règles de rastérisation à échantillonnage multiple sont utilisées à la place.
Remarques
L’un des artefacts avec des ombres basées sur la mémoire tampon d’ombre est « l’acné d’ombre » (c’est-à-dire une surface qui s’ombrage de façon intermittente en raison de l’imprécision dans le calcul de la profondeur de la surface à partir du nuanceur qui est comparé à la profondeur de la même surface dans le tampon d’ombre). Une façon de soulager l’acné d’ombre consiste à utiliser les membres DepthBias et SlopeScaledDepthBias lorsque vous affichez une mémoire tampon d’ombre. L’intention est de pousser suffisamment les surfaces lors du rendu d’une mémoire tampon d’ombre. Lorsque ces surfaces sont comparées à elles-mêmes à l’aide d’un nuanceur z calculé pendant le test d’ombre, le résultat de la comparaison est cohérent sur l’ensemble de la surface, et l’auto-ombre locale est évitée.
Toutefois, l’utilisation de DepthBias et slopeScaledDepthBias peut à elles seules introduire quelques artefacts. Par exemple, un polygone extrêmement abrupt provoque l’explosion de l’équation de biais, ce qui pousse le polygone extrêmement loin de la surface d’origine dans la carte d’ombres. Prenons un visage raide, par rapport à une lumière, qui est poussé très loin par rapport aux dimensions de l’objet parent par biais de profondeur. Supposons que ce visage soit entouré de visages plus superficiels que l’équation de biais a beaucoup moins poussé. La carte d’ombres résultante a une énorme discontinuité qui peut provoquer des trous dans l’ombre qui est projetée par une surface sur une autre surface plus proche des visages éclatés. L’un des moyens d’atténuer ce problème particulier consiste à utiliser le membre DepthBiasClamp , qui fournit une limite supérieure (positive ou négative) paramétrable par l’application sur l’ampleur du biais z.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Disponible dans Windows Vista et les versions ultérieures des systèmes d’exploitation Windows. |
En-tête | d3d10umddi.h (include D3d10umddi.h) |