structure D3D11_1_DDI_RASTERIZER_DESC (d3d10umddi.h)
Décrit un état de rastériseur. Utilisé par les pilotes d’affichage en mode utilisateur windows WDDM (Windows Display Driver Model) 1.2 et versions ultérieures.
Syntaxe
typedef struct D3D11_1_DDI_RASTERIZER_DESC {
[in] D3D10_DDI_FILL_MODE FillMode;
[in] D3D10_DDI_CULL_MODE CullMode;
[in] BOOL FrontCounterClockwise;
[in] INT DepthBias;
[in] FLOAT DepthBiasClamp;
[in] FLOAT SlopeScaledDepthBias;
[in] BOOL DepthClipEnable;
[in] BOOL ScissorEnable;
[in] BOOL MultisampleEnable;
[in] BOOL AntialiasedLineEnable;
[in] UINT ForcedSampleCount;
} D3D11_1_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.
[in] DepthBiasClamp
Vecteur float simple précision utilisé dans les formules de biais. Pour plus d’informations sur DepthBiasClamp, consultez la section Remarques.
[in] SlopeScaledDepthBias
Vecteur float simple précision utilisé dans les formules de biais. Pour plus d’informations sur SlopeScaledDepthBias, consultez la section Remarques.
[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.
[in] ForcedSampleCount
Lors du rendu des vues d’accès non ordonnées (UAV) ou des vues cibles de rendu (TRV), spécifie s’il faut forcer un nombre d’exemples et, si c’est le cas, le nombre maximal d’exemples. Les valeurs valides sont 0, 1, 4, 8 et 16.
Si zéro, le pilote ne doit pas forcer un nombre d’échantillons.
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 | Windows 8 |
Serveur minimal pris en charge | Windows Server 2012 |
En-tête | d3d10umddi.h (include D3d10umddi.h) |