struttura D3D10_DDI_RASTERIZER_DESC (d3d10umddi.h)

La struttura D3D10_DDI_RASTERIZER_DESC descrive uno stato rasterizzatore.

Sintassi

typedef struct D3D10_DDI_RASTERIZER_DESC {
  [in] D3D10_DDI_FILL_MODE FillMode;
  [in] D3D10_DDI_CULL_MODE CullMode;
  [in] BOOL                FrontCounterClockwise;
  [in] INT32               DepthBias;
  [in] FLOAT               DepthBiasClamp;
  [in] FLOAT               SlopeScaledDepthBias;
  [in] BOOL                DepthClipEnable;
  [in] BOOL                ScissorEnable;
  [in] BOOL                MultisampleEnable;
  [in] BOOL                AntialiasedLineEnable;
} D3D10_DDI_RASTERIZER_DESC;

Members

[in] FillMode

Valore che specifica la modalità di riempimento per le primitive. Questo membro deve essere impostato su uno dei valori seguenti dell'enumerazione D3D10_DDI_FILL_MODE.

Valore Significato
D3D10_DDI_FILL_WIREFRAME (2) Riempie i wireframe.
D3D10_DDI_FILL_SOLID (3) Riempie i solidi.

[in] CullMode

Valore che specifica la modalità di creazione di triangoli posteriore, se affatto. Questo membro deve essere impostato su uno dei valori seguenti dell'enumerazione D3D10_DDI_CULL_MODE.

Valore Significato
D3D10_DDI_CULL_NONE (1) Non abbattere alcun triangolo.
D3D10_DDI_CULL_FRONT (2) Facce anteriori Cull.
D3D10_DDI_CULL_BACK (3) Cull facce indietro.

[in] FrontCounterClockwise

Valore booleano che specifica se i vertici forniti in un ordine antiorario (rispetto al rasterizzatore) sono frontali. TRUE indica che sono; FALSE indica che i vertici in senso antiorario indicano la fronte posteriore.

[in] DepthBias

Costante depth-bias da usare nelle formule di distorsione. Per altre informazioni su DepthBias, vedere la sezione Osservazioni seguente.

[in] DepthBiasClamp

Vettore float a precisione singola utilizzato nelle formule di distorsione. Per altre informazioni su DepthBiasC lampadina, vedere la sezione Osservazioni seguente.

[in] SlopeScaledDepthBias

Vettore float a precisione singola utilizzato nelle formule di distorsione. Per altre informazioni su SlopeScaledDepthBias, vedere la sezione Osservazioni seguente.

[in] DepthClipEnable

Valore booleano che specifica se il driver deve ritagliarsi le coordinate vertex z rispetto all'intervallo di profondità del riquadro di visualizzazione. TRUE indica di ritagliare; FALSE indica che non deve essere ritagliato.

[in] ScissorEnable

Valore booleano che specifica se il driver deve rimuovere i pixel che rientrano all'esterno dell'area rettangolare appropriata per la scissor. TRUE indica di ignorare; FALSE indica che non deve essere rimosso.

[in] MultisampleEnable

Valore booleano che specifica se il driver deve seguire regole di rasterizzazione a più campioni. TRUE indica di seguire le regole; FALSE indica che non è necessario seguire le regole. Le regole di rasterizzazione a più campioni contengono true anche se le destinazioni di rendering contengono solo un singolo esempio.

[in] AntialiasedLineEnable

Valore booleano che specifica se il driver deve eseguire il rendering delle righe che seguono le regole di rasterizzazione delle righe antialiased. TRUE indica di seguire le regole; FALSE indica che non è necessario seguire le regole. Il driver ignora il valore in AntialiasedLineEnable se vengono invece usate regole di rasterizzazione a più campionamento.

Commenti

Uno degli artefatti con ombreggiature basate su buffer è "acne dell'ombra", ovvero una superficie che si ombreggiata in modo intermittente a causa dell'inesetudine nel calcolo della profondità della superficie dello shader confrontata con la profondità della stessa superficie nel buffer ombreggiatura. Un modo per alleviare l'acne delle ombre consiste nell'usare i membri DepthBias e SlopeScaledDepthBias quando si esegue il rendering di un buffer di ombreggiatura. Lo scopo è quello di eseguire il push delle superfici in modo sufficiente quando si esegue il rendering di un buffer shadow. Quando tali superfici vengono confrontate con se stesse tramite shader-computed z durante il test shadow, il risultato del confronto è coerente sulla superficie ed è evitata l'auto-ombreggiatura locale.

Tuttavia, l'uso di DepthBias e SlopeScaledDepthBias da solo può introdurre alcuni artefatti. Ad esempio, un poligono estremamente ripida fa esplodere l'equazione di distorsione, che spinge il poligono estremamente lontano dalla superficie di origine nella mappa shadow. Si consideri una faccia ripida, rispetto a una luce, che viene allontanata estremamente lontano rispetto alle dimensioni dell'oggetto padre tramite distorsione della profondità. Si supponga che questo viso sia circondato da facce più superficiali che l'equazione di distorsione ha spinto molto meno. La mappa ombreggiatura risultante ha un'enorme discontinuità che può causare fori nell'ombra che viene proiettata da una superficie in un'altra più vicina rispetto ai volti esplosi. Un modo per alleviare questo particolare problema consiste nell'usare il membro DepthBiasC lampadina , che fornisce un limite superiore impostabile dall'applicazione (positivo o negativo) sulla grandezza della distorsione z.

Requisiti

Requisito Valore
Client minimo supportato Disponibile in Windows Vista e versioni successive dei sistemi operativi Windows.
Intestazione d3d10umddi.h (include D3d10umddi.h)

Vedi anche

CalcPrivateRasterizerStateSize

CreateRasterizerState