Partager via


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)

Voir aussi

CalcPrivateRasterizerStateSize

CreateRasterizerState