Condividi tramite


struttura D3D11_RASTERIZER_DESC2 (d3d11_3.h)

Descrive lo stato del rasterizzatore.

Sintassi

typedef struct D3D11_RASTERIZER_DESC2 {
  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_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster;
} D3D11_RASTERIZER_DESC2;

Members

FillMode

Valore tipizzato D3D11_FILL_MODE che determina la modalità di riempimento da usare durante il rendering.

CullMode

Valore tipizzato D3D11_CULL_MODE che indica che i triangoli rivolti verso la direzione specificata non vengono disegnati.

FrontCounterClockwise

Specifica se un triangolo è anteriore o posteriore. Se TRUE, un triangolo verrà considerato anteriore se i vertici sono in senso antiorario sulla destinazione di rendering e considerati in senso antiorario se sono in senso orario. Se 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.

ScissorEnable

Specifica se abilitare il culling forssor-rectangle. Tutti i pixel all'esterno di un rettangolo di scissor attivo vengono sincronizzati.

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

Numero di campioni forzato durante il rendering o la rasterizzazione dell'UAV. I valori validi sono 0, 1, 2, 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 (D3D11_BIND_RENDER_TARGET) 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, ID3D11ShaderReflection::IsSampleFrequencyShader restituisceFALSE.
In caso contrario, il comportamento di rendering non è definito. Per informazioni su come configurare depth-stencil, vedere Configurazione delle funzionalità di Depth-Stencil.
 

ConservativeRaster

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

Commenti

Lo stato rasterizzatore definisce il comportamento della fase di rasterizzazione. Per creare un oggetto di stato rasterizzatore, chiamare ID3D11Device3::CreateRasterizerState2. Per impostare lo stato di rasterizzazione, chiamare ID3D11DeviceContext::RSSetState.

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

State Valore predefinito
Fillmode Tinta unita
CullMode Indietro
FrontCounterClockwise FALSE
DepthBias 0
SlopeScaledDepthBias 0,0f
DepthBiasC lampadina 0,0f
DepthClipEnable TRUE
ScissorEnable FALSE
MultisampleEnable FALSE
AntialiasedLineEnable FALSE
ForcedSampleCount 0
Conservatore D3D11_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

   
Intestazione d3d11_3.h

Vedi anche

Strutture principali