Partager via


D3D12_RASTERIZER_DESC structure (d3d12.h)

Décrit l’état du rastériseur.

Syntaxe

typedef struct D3D12_RASTERIZER_DESC {
  D3D12_FILL_MODE                       FillMode;
  D3D12_CULL_MODE                       CullMode;
  BOOL                                  FrontCounterClockwise;
  INT                                   DepthBias;
  FLOAT                                 DepthBiasClamp;
  FLOAT                                 SlopeScaledDepthBias;
  BOOL                                  DepthClipEnable;
  BOOL                                  MultisampleEnable;
  BOOL                                  AntialiasedLineEnable;
  UINT                                  ForcedSampleCount;
  D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster;
} D3D12_RASTERIZER_DESC;

Membres

FillMode

Valeur de type D3D12_FILL_MODE qui spécifie le mode de remplissage à utiliser lors du rendu.

CullMode

Valeur de type D3D12_CULL_MODE qui spécifie que les triangles faisant face à la direction spécifiée ne sont pas dessinés.

FrontCounterClockwise

Détermine si un triangle est orienté vers l’avant ou vers l’arrière. Si ce membre a la valeur TRUE, un triangle est considéré comme devant si ses sommets sont dans le sens inverse 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 ce paramètre a la valeur FALSE, l’inverse est vrai.

DepthBias

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

DepthBiasClamp

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

SlopeScaledDepthBias

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

DepthClipEnable

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 default–TRUE, le matériel extrait é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 classement incorrect de la profondeur 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 la gestion complexe de cas spéciaux pour la géométrie qui va au-delà du plan de découpage arrière.

MultisampleEnable

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

AntialiasedLineEnable

Spécifie s’il faut activer l’anticrénelage de ligne ; S’applique uniquement si le dessin au trait et 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, 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 une valeur supérieure, vous devez suivre ces instructions :
  • Ne liez pas les vues de profondeur-gabarit.
  • 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 (D3D12_DESCRIPTOR_HEAP_TYPE_RTV) 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, ID3D12ShaderReflection ::IsSampleFrequencyShader retourne FALSE.
Sinon, le comportement de rendu n’est pas défini.

ConservativeRaster

Valeur D3D12_CONSERVATIVE_RASTERIZATION_MODE typée qui identifie si la rastérisation conservatrice est activée ou désactivée.

Remarques

Un D3D12_GRAPHICS_PIPELINE_STATE_DESC contient une structure d’état rastériseur.

L’état du rastériseur définit le comportement de la phase de rastériseur.

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 D3D12_FILL_MODE_SOLID
CullMode D3D12_CULL_MODE_BACK
FrontCounterClockwise FALSE
DepthBias 0
DepthBiasClamp 0.0f
SlopeScaledDepthBias 0.0f
DepthClipEnable TRUE
MultisampleEnable FALSE
AntialiasedLineEnable FALSE
ForcedSampleCount 0
ConservativeRaster D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF
 
Note Pour les niveaux de fonctionnalité 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 anticrénelage, même pour les cibles de rendu dont le nombre d’échantillons est supérieur à 1. Pour les niveaux de fonctionnalités 10.1 et supérieurs, le paramètre de 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 ligne, comme indiqué dans ce tableau :
 
Algorithme de rendu de ligne MultisampleEnable AntialiasedLineEnable
Alias FALSE FALSE
Alpha antialiased 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 aux cibles de rendu dont le nombre d’échantillons 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 craignez 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

Condition requise Valeur
En-tête d3d12.h

Voir aussi

CD3DX12_RASTERIZER_DESC

Pixellisation conservatrice

Structures principales

Affichage ordonné du rastériseur