D3D11_RASTERIZER_DESC struttura (d3d11.h)

Descrive lo stato del rasterizer.

Sintassi

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

Members

FillMode

Tipo: D3D11_FILL_MODE

Determina la modalità di riempimento da usare durante il rendering (vedere D3D11_FILL_MODE).

CullMode

Tipo: D3D11_CULL_MODE

Indica i triangoli che si affacciano sulla direzione specificata non vengono disegnati (vedere D3D11_CULL_MODE).

FrontCounterClockwise

Tipo: BOOL

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

DepthBias

Tipo: INT

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

DepthBiasClamp

Tipo: FLOAT

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

SlopeScaledDepthBias

Tipo: FLOAT

Scalare sulla pendenza di un determinato pixel. Per informazioni sulla distorsione della profondità, vedere Bias di profondità.

DepthClipEnable

Tipo: BOOL

Abilitare il ritaglio in base alla distanza.

L'hardware esegue sempre x e y clipping di coordinate rasterizzate. Quando DepthClipEnable è impostato sul valore predefinito-TRUE, l'hardware cliprà 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 dell'algoritmo precedente. Tuttavia, l'hardware esegue ancora il ritaglio "0 < w". Quando z clipping è disabilitato, l'ordinamento della profondità non corretto a livello di pixel potrebbe risultare. Tuttavia, quando z clipping è disabilitato, le implementazioni shadow stencil sono semplificate. In altre parole, è possibile evitare la gestione di casi speciali complessi per la geometria che supera il piano di ritaglio indietro.

ScissorEnable

Tipo: BOOL

Abilitare il culling scissor-rettangolo. Tutti i pixel esterni a un rettangolo di scissor attivo vengono eliminati.

MultisampleEnable

Tipo: BOOL

Specifica se usare l'algoritmo anti-aliasing della linea alfa o quadrilatero nelle destinazioni di rendering anti-aliasing multisample (MSAA). Impostare su TRUE per usare l'algoritmo anti-aliasing della linea quadrilatero e su FALSE per usare l'algoritmo anti-aliasing della riga alfa. Per altre informazioni su questo membro, vedere Osservazioni.

AntialiasedLineEnable

Tipo: BOOL

Specifica se abilitare l'antialiasing della riga; si applica solo se si esegue il disegno della linea e MultisampleEnable è FALSE. Per altre informazioni su questo membro, vedere Osservazioni.

Commenti

Lo stato rasterizer definisce il comportamento della fase rasterizer. Per creare un oggetto rasterizer-state, chiamare ID3D11Device::CreateRasterizerState. Per impostare lo stato del rasterizer, chiamare ID3D11DeviceContext::RSSetState.

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

State Valore predefinito
Fillmode Tinta unita
CullMode Indietro
FrontCounterClockwise FALSE
DepthBias 0
SlopeScaledDepthBias 0.0f
DepthBiasClamp 0.0f
DepthClipEnable TRUE
ScissorEnable FALSE
MultisampleEnable FALSE
AntialiasedLineEnable FALSE
 
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, le linee e i triangoli senza 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 su punti e 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 di rendering MultisampleEnable e AntialiasedLineEnable si applicano solo alle destinazioni di rendering antialiasing multisample (MSAA), ovvero le destinazioni di rendering con conteggi di esempio 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 noti che le linee vengono eseguite come quadrilateri, è consigliabile impostare sempre MultisampleEnable su TRUE ogni volta che si esegue il rendering su destinazioni di rendering MSAA.

Requisiti

Requisito Valore
Intestazione d3d11.h

Vedi anche

Strutture principali