struttura D3D12_RASTERIZER_DESC (d3d12.h)

Descrive lo stato del rasterizzatore.

Sintassi

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;

Members

FillMode

Valore tipizzato D3D12_FILL_MODE che specifica la modalità di riempimento da usare durante il rendering.

CullMode

Valore tipizzato D3D12_CULL_MODE che specifica che i triangoli rivolti verso la direzione specificata non vengono disegnati.

FrontCounterClockwise

Determina se un triangolo è anteriore o posteriore. Se questo membro è TRUE, un triangolo verrà considerato anteriore se i relativi vertici sono in senso antiorario sulla destinazione di rendering e considerati fronte retro se sono in senso orario. Se questo parametro è FALSE, l'opposto è true.

DepthBias

Valore di profondità aggiunto a un determinato pixel. Per informazioni sulla distorsione della profondità, vedi Distorsione della profondità.

DepthBiasClamp

Distorsione massima della profondità di un pixel. Per informazioni sulla distorsione della profondità, vedi Distorsione della profondità.

SlopeScaledDepthBias

Scalare sulla pendenza di un determinato pixel. Per informazioni sulla distorsione della profondità, vedi Distorsione della profondità.

DepthClipEnable

Specifica se abilitare il ritaglio in base alla distanza.

L'hardware esegue sempre il ritaglio x e y di coordinate rasterizzate. Quando DepthClipEnable è impostato su default-TRUE, l'hardware ritaglia anche il valore z , ovvero l'hardware esegue l'ultimo passaggio dell'algoritmo seguente.


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

Quando si imposta DepthClipEnable su FALSE, l'hardware ignora il ritaglio z, ovvero l'ultimo passaggio nell'algoritmo precedente. Tuttavia, l'hardware esegue ancora il ritaglio "0 < w". Quando il ritaglio z è disabilitato, l'ordinamento della profondità non corretto a livello di pixel potrebbe risultare. Tuttavia, quando il ritaglio z è disabilitato, le implementazioni dell'ombreggiatura degli stencil sono semplificate. In altre parole, è possibile evitare una gestione complessa di maiuscole e minuscole speciali per la geometria che va oltre il piano di ritaglio indietro.

MultisampleEnable

Specifica se utilizzare l'algoritmo anti-aliasing a linee alfa o quadrilaterali nelle destinazioni di rendering anti-aliasing multisample (MSAA). Impostare su TRUE per utilizzare l'algoritmo anti-aliasing della linea quadrilatero e su FALSE per usare l'algoritmo anti-aliasing alfa linea. Per altre info su questo membro, vedi Osservazioni.

AntialiasedLineEnable

Specifica se abilitare l'anti-aliasing della riga; si applica solo se si esegue il disegno a linee e MultisampleEnable è FALSE. Per altre info su questo membro, vedi Osservazioni.

ForcedSampleCount

Tipo: UINT

Numero di campioni forzato durante il rendering o la rasterizzazione dell'UAV. I valori validi sono 0, 1, 4, 8 e facoltativamente 16. 0 indica che il conteggio dei campioni non è forzato.

Nota Se si vuole eseguire il rendering con ForcedSampleCount impostato su 1 o versione successiva, è necessario seguire queste linee guida:
  • Non associare le visualizzazioni depth-stencil.
  • Disabilitare il test di profondità.
  • Assicurarsi che lo shader non restituisca profondità.
  • Se sono associate visualizzazioni di destinazione di rendering (D3D12_DESCRIPTOR_HEAP_TYPE_RTV) e ForcedSampleCount è maggiore di 1, assicurarsi che ogni destinazione di rendering abbia un solo esempio.
  • Non usare lo shader alla frequenza di campionamento. Di conseguenza, ID3D12ShaderReflection::IsSampleFrequencyShader restituisceFALSE.
In caso contrario, il comportamento di rendering non è definito.

ConservativeRaster

Valore tipizzato D3D12_CONSERVATIVE_RASTERIZATION_MODE che identifica se la rasterizzazione conservativa è attivata o disattivata.

Commenti

Un D3D12_GRAPHICS_PIPELINE_STATE_DESC contiene una struttura di stato rasterizzatore.

Lo stato rasterizzatore definisce il comportamento della fase di rasterizzazione.

Se non si specifica uno stato rasterizzatore, il runtime Direct3D usa i valori predefiniti seguenti per lo stato rasterizzatore.

State Valore predefinito
Fillmode D3D12_FILL_MODE_SOLID
CullMode D3D12_CULL_MODE_BACK
FrontCounterClockwise FALSE
DepthBias 0
DepthBiasC lampadina 0,0f
SlopeScaledDepthBias 0,0f
DepthClipEnable TRUE
MultisampleEnable FALSE
AntialiasedLineEnable FALSE
ForcedSampleCount 0
Conservatore D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF
 
Nota Per i livelli di funzionalità 9.1, 9.2, 9.3 e 10.0, se si imposta MultisampleEnable su FALSE, il runtime esegue il rendering di tutti i punti, linee e triangoli senza anti-aliasing anche per le destinazioni di rendering con un numero di campioni maggiore di 1. Per i livelli di funzionalità 10.1 e versioni successive, l'impostazione di MultisampleEnable non ha alcun effetto sui punti e sui triangoli per quanto riguarda MSAA e influisce solo sulla selezione dell'algoritmo di rendering della linea, come illustrato in questa tabella:
 
Algoritmo di rendering linea MultisampleEnable AntialiasedLineEnable
Alias FALSE FALSE
Alfa antialiased FALSE TRUE
Quadrilatero TRUE FALSE
Quadrilatero TRUE TRUE
 

Le impostazioni dei membri MultisampleEnable e AntialiasedLineEnable si applicano solo alle destinazioni di rendering di antialiasing multisample (MSAA), ovvero le destinazioni di rendering con conteggi dei campioni maggiori di 1. A causa delle differenze nel comportamento a livello di funzionalità e purché non si esegua alcun disegno a linee o non si tenga presente che le linee vengono visualizzate come quadrilateri, è consigliabile impostare sempre MultisampleEnable su TRUE ogni volta che si esegue il rendering su destinazioni di rendering MSAA.

Requisiti

Requisito Valore
Intestazione d3d12.h

Vedi anche

CD3DX12_RASTERIZER_DESC

Rasterizzazione conservativa

Strutture principali

Visualizzazioni ordinate di Rasterizer