Partager via


structure D3D11_RASTERIZER_DESC1 (d3d11_1.h)

Note Cette structure est prise en charge par le runtime Direct3D 11.1, disponible sur les systèmes d’exploitation Windows 8 et versions ultérieures.
 
Décrit l’état du rastériseur.

Syntaxe

typedef struct D3D11_RASTERIZER_DESC1 {
  D3D11_FILL_MODE FillMode;
  D3D11_CULL_MODE CullMode;
  BOOL            FrontCounterClockwise;
  INT             DepthBias;
  FLOAT           DepthBiasClamp;
  FLOAT           SlopeScaledDepthBias;
  BOOL            DepthClipEnable;
  BOOL            ScissorEnable;
  BOOL            MultisampleEnable;
  BOOL            AntialiasedLineEnable;
  UINT            ForcedSampleCount;
} D3D11_RASTERIZER_DESC1;

Membres

FillMode

Type : D3D11_FILL_MODE

Détermine le mode de remplissage à utiliser lors du rendu.

CullMode

Type : D3D11_CULL_MODE

Indique que les triangles faisant face à la direction spécifiée ne sont pas dessinés.

FrontCounterClockwise

Type : BOOL

Spécifie si un triangle est orienté vers l’avant ou vers l’arrière. Si la valeur est TRUE, un triangle est considéré comme orienté vers l’avant si ses sommets sont opposés au sens des aiguilles d’une montre sur la cible de rendu et considérés comme orientés vers l’arrière s’ils sont dans le sens des aiguilles d’une montre. Si la valeur est FALSE, l’inverse est vrai.

DepthBias

Type : INT

Valeur de profondeur ajoutée à un pixel donné. Pour plus d’informations sur le biais de profondeur, consultez Biais de profondeur.

DepthBiasClamp

Type : FLOAT

Biais de profondeur maximal d’un pixel. Pour plus d’informations sur le biais de profondeur, consultez Biais de profondeur.

SlopeScaledDepthBias

Type : FLOAT

Scalaire sur la pente d’un pixel donné. Pour plus d’informations sur le biais de profondeur, consultez Biais de profondeur.

DepthClipEnable

Type : BOOL

Spécifie s’il faut activer le découpage en fonction de la distance.

Le matériel effectue toujours le découpage x et y des coordonnées rastérisées. Lorsque DepthClipEnable est défini sur la valeur par défaut–TRUE, le matériel clipse également la valeur z (autrement dit, le matériel effectue la dernière étape de l’algorithme suivant).


0 < w
-w <= x <= w (or arbitrarily wider range if implementation uses a guard band to reduce clipping burden)
-w <= y <= w (or arbitrarily wider range if implementation uses a guard band to reduce clipping burden)
0 <= z <= w

Lorsque vous définissez DepthClipEnable sur FALSE, le matériel ignore le découpage z (c’est-à-dire la dernière étape de l’algorithme précédent). Toutefois, le matériel effectue toujours le découpage « 0 < w ». Lorsque le découpage z est désactivé, un ordre de profondeur incorrect au niveau des pixels peut en résulter. Toutefois, lorsque le découpage z est désactivé, les implémentations d’ombres de gabarit sont simplifiées. En d’autres termes, vous pouvez éviter une gestion complexe des cas spéciaux pour la géométrie qui va au-delà du plan de découpage arrière.

ScissorEnable

Type : BOOL

Spécifie s’il faut activer l’élimination en ciseaux-rectangles. Tous les pixels en dehors d’un rectangle de ciseaux actif sont abattus.

MultisampleEnable

Type : BOOL

Spécifie s’il faut utiliser l’algorithme d’anti-aliasing de ligne quadrilatérale ou alpha sur les cibles de rendu msaa (multi-échantillon). Définissez sur TRUE pour utiliser l’algorithme d’anti-aliasing de ligne quadrilatérale et sur FALSE pour utiliser l’algorithme d’anti-aliasing de ligne alpha. Pour plus d’informations sur ce membre, consultez Remarques.

AntialiasedLineEnable

Type : BOOL

Spécifie s’il faut activer l’anti-attirail de ligne ; S’applique uniquement si le dessin de traits et Que MultisampleEnable a la valeur FALSE. Pour plus d’informations sur ce membre, consultez Remarques.

ForcedSampleCount

Type : UINT

Nombre d’exemples forcés lors du rendu ou de la rastérisation de l’UAV. Les valeurs valides sont 0, 1, 2, 4, 8 et éventuellement 16. 0 indique que le nombre d’échantillons n’est pas forcé.

Note Si vous souhaitez effectuer un rendu avec ForcedSampleCount défini sur 1 ou supérieur, vous devez suivre les instructions suivantes :
  • Ne pas lier les vues de gabarit de profondeur.
  • Désactivez les tests de profondeur.
  • Vérifiez que le nuanceur ne génère pas de profondeur.
  • Si vous avez des vues de cible de rendu liées (D3D11_BIND_RENDER_TARGET) et que ForcedSampleCount est supérieur à 1, assurez-vous que chaque cible de rendu n’a qu’un seul exemple.
  • N’utilisez pas le nuanceur à la fréquence de l’échantillon. Par conséquent, ID3D11ShaderReflection::IssampleFrequencyShader retourne FALSE.
Sinon, le comportement de rendu n’est pas défini. Pour plus d’informations sur la configuration du gabarit de profondeur, consultez Configuration des fonctionnalités de Depth-Stencil.
 

Remarques

L’état du rastériseur définit le comportement de la phase de rastériseur. Pour créer un objet rasterizer-state, appelez ID3D11Device1::CreateRasterizerState1. Pour définir l’état du rastériseur, appelez ID3D11DeviceContext::RSSetState.

Si vous ne spécifiez pas d’état de rastériseur, le runtime Direct3D utilise les valeurs par défaut suivantes pour l’état du rastériseur.

State Valeur par défaut
FillMode Unie
CullMode Précédent
FrontCounterClockwise FALSE
DepthBias 0
SlopeScaledDepthBias 0.0f
DepthBiasClamp 0.0f
DepthClipEnable TRUE
ScissorEnable FALSE
MultisampleEnable FALSE
AntialiasedLineEnable FALSE
ForcedSampleCount 0
 
Note Pour les niveaux de fonctionnalités 9.1, 9.2, 9.3 et 10.0, si vous définissez MultisampleEnable sur FALSE, le runtime affiche tous les points, lignes et triangles sans anti-aliasing, même pour les cibles de rendu dont le nombre d’exemples est supérieur à 1. Pour les niveaux de fonctionnalités 10.1 et ultérieurs, le paramètre MultisampleEnable n’a aucun effet sur les points et les triangles en ce qui concerne MSAA et affecte uniquement la sélection de l’algorithme de rendu de traits comme indiqué dans ce tableau :
 
Algorithme de rendu de ligne MultisampleEnable AntialiasedLineEnable
Alias FALSE FALSE
Alpha anti-ataliased FALSE TRUE
Quadrilatère TRUE FALSE
Quadrilatère TRUE TRUE
 

Les paramètres des membres MultisampleEnable et AntialiasedLineEnable s’appliquent uniquement aux cibles de rendu msaa (Multisample Antialiasing) (c’est-à-dire les cibles de rendu dont le nombre d’exemples est supérieur à 1). En raison des différences de comportement au niveau des fonctionnalités et tant que vous n’effectuez aucun dessin de trait ou que vous ne vous souciez pas que les lignes s’affichent en tant que quadrilatères, nous vous recommandons de toujours définir MultisampleEnable sur TRUE chaque fois que vous effectuez un rendu sur des cibles de rendu MSAA.

Configuration requise

   
Client minimal pris en charge Windows 8 et Mise à jour de plateforme pour Windows 7 [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows Server 2012 et mise à jour de plateforme pour Windows Server 2008 R2 [applications de bureau | Applications UWP]
En-tête d3d11_1.h

Voir aussi

Structures principales