Condividi tramite


enumerazione D3DRENDERSTATETYPE (d3d9types.h)

Il tipo enumerato D3DRENDERSTATETYPE elenca diversi attributi o stati di rendering. Gli enumeratori di D3DRENDERSTATETYPE utilizzati esclusivamente dai driver possono specificare informazioni di rendering o un attributo trama. Gli stati di rendering seguenti vengono usati dai driver di visualizzazione:

Sintassi

typedef enum _D3DRENDERSTATETYPE {
  D3DRS_ZENABLE,
  D3DRS_FILLMODE,
  D3DRS_SHADEMODE,
  D3DRS_ZWRITEENABLE,
  D3DRS_ALPHATESTENABLE,
  D3DRS_LASTPIXEL,
  D3DRS_SRCBLEND,
  D3DRS_DESTBLEND,
  D3DRS_CULLMODE,
  D3DRS_ZFUNC,
  D3DRS_ALPHAREF,
  D3DRS_ALPHAFUNC,
  D3DRS_DITHERENABLE,
  D3DRS_ALPHABLENDENABLE,
  D3DRS_FOGENABLE,
  D3DRS_SPECULARENABLE,
  D3DRS_FOGCOLOR,
  D3DRS_FOGTABLEMODE,
  D3DRS_FOGSTART,
  D3DRS_FOGEND,
  D3DRS_FOGDENSITY,
  D3DRS_RANGEFOGENABLE,
  D3DRS_STENCILENABLE,
  D3DRS_STENCILFAIL,
  D3DRS_STENCILZFAIL,
  D3DRS_STENCILPASS,
  D3DRS_STENCILFUNC,
  D3DRS_STENCILREF,
  D3DRS_STENCILMASK,
  D3DRS_STENCILWRITEMASK,
  D3DRS_TEXTUREFACTOR,
  D3DRS_WRAP0,
  D3DRS_WRAP1,
  D3DRS_WRAP2,
  D3DRS_WRAP3,
  D3DRS_WRAP4,
  D3DRS_WRAP5,
  D3DRS_WRAP6,
  D3DRS_WRAP7,
  D3DRS_CLIPPING,
  D3DRS_LIGHTING,
  D3DRS_AMBIENT,
  D3DRS_FOGVERTEXMODE,
  D3DRS_COLORVERTEX,
  D3DRS_LOCALVIEWER,
  D3DRS_NORMALIZENORMALS,
  D3DRS_DIFFUSEMATERIALSOURCE,
  D3DRS_SPECULARMATERIALSOURCE,
  D3DRS_AMBIENTMATERIALSOURCE,
  D3DRS_EMISSIVEMATERIALSOURCE,
  D3DRS_VERTEXBLEND,
  D3DRS_CLIPPLANEENABLE,
  D3DRS_POINTSIZE,
  D3DRS_POINTSIZE_MIN,
  D3DRS_POINTSPRITEENABLE,
  D3DRS_POINTSCALEENABLE,
  D3DRS_POINTSCALE_A,
  D3DRS_POINTSCALE_B,
  D3DRS_POINTSCALE_C,
  D3DRS_MULTISAMPLEANTIALIAS,
  D3DRS_MULTISAMPLEMASK,
  D3DRS_PATCHEDGESTYLE,
  D3DRS_DEBUGMONITORTOKEN,
  D3DRS_POINTSIZE_MAX,
  D3DRS_INDEXEDVERTEXBLENDENABLE,
  D3DRS_COLORWRITEENABLE,
  D3DRS_TWEENFACTOR,
  D3DRS_BLENDOP,
  D3DRS_POSITIONDEGREE,
  D3DRS_NORMALDEGREE,
  D3DRS_SCISSORTESTENABLE,
  D3DRS_SLOPESCALEDEPTHBIAS,
  D3DRS_ANTIALIASEDLINEENABLE,
  D3DRS_MINTESSELLATIONLEVEL,
  D3DRS_MAXTESSELLATIONLEVEL,
  D3DRS_ADAPTIVETESS_X,
  D3DRS_ADAPTIVETESS_Y,
  D3DRS_ADAPTIVETESS_Z,
  D3DRS_ADAPTIVETESS_W,
  D3DRS_ENABLEADAPTIVETESSELLATION,
  D3DRS_TWOSIDEDSTENCILMODE,
  D3DRS_CCW_STENCILFAIL,
  D3DRS_CCW_STENCILZFAIL,
  D3DRS_CCW_STENCILPASS,
  D3DRS_CCW_STENCILFUNC,
  D3DRS_COLORWRITEENABLE1,
  D3DRS_COLORWRITEENABLE2,
  D3DRS_COLORWRITEENABLE3,
  D3DRS_BLENDFACTOR,
  D3DRS_SRGBWRITEENABLE,
  D3DRS_DEPTHBIAS,
  D3DRS_WRAP8,
  D3DRS_WRAP9,
  D3DRS_WRAP10,
  D3DRS_WRAP11,
  D3DRS_WRAP12,
  D3DRS_WRAP13,
  D3DRS_WRAP14,
  D3DRS_WRAP15,
  D3DRS_SEPARATEALPHABLENDENABLE,
  D3DRS_SRCBLENDALPHA,
  D3DRS_DESTBLENDALPHA,
  D3DRS_BLENDOPALPHA,
  D3DRS_FORCE_DWORD
} D3DRENDERSTATETYPE;

Costanti

 
D3DRS_ZENABLE
Tipo di enumerazione D3DZBUFFERTYPE che rappresenta lo stato depth-buffering.
D3DRS_FILLMODE
Tipo di enumerazione D3DFILLMODE.
D3DRS_SHADEMODE
Tipo di enumerazione D3DSHADEMODE.
D3DRS_ZWRITEENABLE
TRUE per consentire all'applicazione di scrivere nel buffer di profondità. Il valore predefinito è TRUE. Questo membro consente a un'applicazione di impedire al sistema di aggiornare il buffer di profondità con nuovi valori di profondità. Se FALSE, i confronti di profondità vengono comunque eseguiti in base allo stato di rendering D3DRS_ZFUNC, presupponendo che il buffer di profondità sia in corso, ma i valori di profondità non vengono scritti nel buffer.
D3DRS_ALPHATESTENABLE
TRUE per abilitare il test alfa per pixel. Se il test viene superato, il pixel viene elaborato dal buffer dei fotogrammi. In caso contrario, l'elaborazione di tutti i buffer di fotogrammi viene ignorata per il pixel.
D3DRS_LASTPIXEL
Il valore predefinito è TRUE, che abilita il disegno dell'ultimo pixel in una linea. Per impedire il disegno dell'ultimo pixel, impostare questo valore su FALSE.
D3DRS_SRCBLEND
Tipo di enumerazione D3DBLEND.
D3DRS_DESTBLEND
Tipo di enumerazione D3DBLEND.
D3DRS_CULLMODE
Tipo di enumerazione D3DCULL che specifica il modo in cui vengono risolti i triangoli sul retro, se affatto.
D3DRS_ZFUNC
Tipo di enumerazione D3DCMPFUNC che consente a un'applicazione di accettare o rifiutare un pixel, in base alla distanza dalla fotocamera.

Il valore di profondità del pixel viene confrontato con il valore depth-buffer. Se il valore di profondità del pixel passa la funzione di confronto, il pixel viene scritto.

Il valore di profondità viene scritto nel buffer di profondità solo se lo stato di rendering è TRUE.
D3DRS_ALPHAREF
Valore che specifica un valore alfa di riferimento su cui vengono testati i pixel quando è abilitato il test alfa. Si tratta di un valore a 8 bit posizionato nei bassi 8 bit del valore di stato di rendering DWORD. I valori possono variare da 0x00000000 a 0x000000FF. Il valore predefinito è 0.
D3DRS_ALPHAFUNC
Tipo di enumerazione D3DCMPFUNC che consente a un'applicazione di accettare o rifiutare un pixel in base al relativo valore alfa.
D3DRS_DITHERENABLE
TRUE per abilitare il dithering. Il valore predefinito è FALSE.
D3DRS_ALPHABLENDENABLE
TRUE per abilitare la trasparenza con fusione alfa. Il valore predefinito è FALSE.

Il tipo di fusione alfa è determinato dagli stati di rendering D3DRS_SRCBLEND e D3DRS_DESTBLEND.
D3DRS_FOGENABLE
TRUE per abilitare la fusione della nebbia. Il valore predefinito è FALSE.
D3DRS_SPECULARENABLE
TRUE per abilitare le evidenziazioni speculari. Il valore predefinito è FALSE.
Le evidenziazioni speculari vengono calcolate come se ogni vertice dell'oggetto acceso si trovi all'origine dell'oggetto. In questo modo si ottengono i risultati previsti, purché l'oggetto venga modellato intorno all'origine e la distanza dalla luce all'oggetto sia relativamente grande. In altri casi, i risultati non sono definiti.

Quando questo membro è impostato su TRUE, il colore speculare viene aggiunto al colore di base dopo la propagazione della trama, ma prima della fusione alfa.
D3DRS_FOGCOLOR
Struttura D3DCOLORVALUE.
D3DRS_FOGTABLEMODE
Tipo enumerato D3DFOGMODE che rappresenta una formula di nebbia da utilizzare per la nebbia in pixel.
D3DRS_FOGSTART
Profondità in corrispondenza della quale iniziano gli effetti pixel o vertex fog per la modalità nebbia lineare. Il valore predefinito è 0,0f. La profondità viene specificata nello spazio globale per la nebbia dei vertici e lo spazio del dispositivo [0,0, 1,0] o lo spazio globale per la nebbia pixel. Per la nebbia dei pixel, questi valori si trovano nello spazio del dispositivo quando il sistema usa z per i calcoli della nebbia e lo spazio globale quando il sistema usa nebbia relativa agli occhi (nebbia).
D3DRS_FOGEND
Profondità a cui terminano gli effetti di nebbia dei pixel o dei vertici per la modalità nebbia lineare. Il valore predefinito è 1,0f. La profondità viene specificata nello spazio globale per la nebbia dei vertici e lo spazio del dispositivo [0,0, 1,0] o lo spazio globale per la nebbia pixel. Per la nebbia dei pixel, questi valori si trovano nello spazio del dispositivo quando il sistema usa z per i calcoli della nebbia e nello spazio globale quando il sistema usa nebbia relativa agli occhi (nebbia).
D3DRS_FOGDENSITY
Densità di nebbia per pixel o nebbia dei vertici usata nelle modalità nebbia esponenziale (D3DFOG_EXP e D3DFOG_EXP2). I valori di densità validi sono compresi tra 0,0 e 1,0.
D3DRS_RANGEFOGENABLE
TRUE per abilitare la nebbia dei vertici basata sull'intervallo. Il valore predefinito è FALSE, nel qual caso il sistema usa nebbia basata sulla profondità. Nella nebbia basata sull'intervallo, la distanza di un oggetto dal visualizzatore viene usata per calcolare gli effetti della nebbia, non la profondità dell'oggetto (ovvero la coordinata z) nella scena. Nella nebbia basata sull'intervallo, tutti i metodi di nebbia funzionano come di consueto, ad eccezione del fatto che usano l'intervallo anziché la profondità nei calcoli.

L'intervallo è il fattore corretto da usare per i calcoli nebbia, ma la profondità viene comunemente usata perché l'intervallo richiede molto tempo per calcolare e la profondità è generalmente già disponibile. L'uso della profondità per calcolare la nebbia ha l'effetto indesiderato di avere la fogginessa degli oggetti periferici cambia quando l'occhio del visualizzatore si muove - in questo caso, le variazioni di profondità e l'intervallo rimane costante.

Poiché attualmente nessun hardware supporta nebbia basata su intervallo per pixel, la correzione dell'intervallo viene offerta solo per la nebbia dei vertici.
D3DRS_STENCILENABLE
TRUE per abilitare lo stenciling o FALSE per disabilitare lo stenciling. Il valore predefinito è FALSE.
D3DRS_STENCILFAIL
Tipo di enumerazione D3DSTENCILOP che specifica l'operazione stencil da eseguire se il test dello stencil non riesce. Il valore predefinito è D3DSTENCILOP_KEEP.
D3DRS_STENCILZFAIL
Tipo di enumerazione D3DSTENCILOP che specifica l'operazione stencil da eseguire se il test stencil supera e il test di profondità (z-test) ha esito negativo.
D3DRS_STENCILPASS
Tipo di enumerazione D3DSTENCILOP che specifica l'operazione stencil da eseguire se vengono superati sia lo stencil che la profondità (z).
D3DRS_STENCILFUNC
La funzione di confronto viene usata per confrontare il valore di riferimento con una voce di buffer stencil. Questo confronto si applica solo ai bit nel valore di riferimento e alla voce del buffer stencil impostati nella maschera stencil (impostata dallo stato di rendering D3DRS_STENCILMASK). Se TRUE, il test dello stencil viene superato.
D3DRS_STENCILREF
Valore di riferimento int per il test dello stencil. Il valore predefinito è 0.
D3DRS_STENCILMASK
Maschera applicata al valore di riferimento e a ogni voce di buffer stencil per determinare i bit significativi per il test degli stencil. La maschera predefinita è 0xFFFFFFFF.
D3DRS_STENCILWRITEMASK
Maschera di scrittura applicata ai valori scritti nel buffer degli stencil. La maschera predefinita è 0xFFFFFFFF.
D3DRS_TEXTUREFACTOR
Colore usato per la fusione a più trame con l'argomento di fusione delle trame D3DTA_TFACTOR o l'operazione di fusione delle trame D3DTOP_BLENDFACTORALPHA.
D3DRS_WRAP0
Comportamento di wrapping delle trame per più set di coordinate di trama. I valori validi per questo stato di rendering possono essere qualsiasi combinazione di D3DWRAPCOORD_0 (o D3DWRAP_U), D3DWRAPCOORD_1 (o D3DWRAP_V), D3DWRAPCOORD_2 (o D3DWRAP_W) e flag di D3DWRAPCOORD_3. In questo modo il sistema viene disposto nella direzione del primo, secondo, terzo e quarto dimensione, a volte indicato come s, t, r e q direzioni, per una determinata trama. Il valore predefinito per questo stato di rendering è 0 (wrapping disabilitato in tutte le direzioni).
D3DRS_WRAP1
Vedere D3DRS_WRAP0.
D3DRS_WRAP2
Vedere D3DRS_WRAP0.
D3DRS_WRAP3
Vedere D3DRS_WRAP0.
D3DRS_WRAP4
Vedere D3DRS_WRAP0.
D3DRS_WRAP5
Vedere D3DRS_WRAP0.
D3DRS_WRAP6
Vedere D3DRS_WRAP0.
D3DRS_WRAP7
Vedere D3DRS_WRAP0.
D3DRS_CLIPPING
TRUE per abilitare il ritaglio primitivo da Direct3D o FALSE per disabilitarlo. Il valore predefinito è TRUE.
D3DRS_LIGHTING
TRUE per abilitare l'illuminazione Direct3D o FALSE per disabilitarla. Il valore predefinito è TRUE. Solo i vertici che includono una normale vertice sono correttamente illuminati; i vertici che non contengono un normale impiegano un prodotto punto pari a 0 in tutti i calcoli di illuminazione.
D3DRS_AMBIENT
Colore della luce ambientale.
D3DRS_FOGVERTEXMODE
Formula nebbia da utilizzare per la nebbia dei vertici.
D3DRS_COLORVERTEX
TRUE per abilitare il colore per vertice o FALSE per disabilitarlo. Il valore predefinito è TRUE. L'abilitazione del colore per vertice consente al sistema di includere il colore definito per i singoli vertici nei calcoli di illuminazione.
D3DRS_LOCALVIEWER
TRUE per abilitare le evidenziazioni speculari relative alla fotocamera o FALSE per l'uso di evidenziazioni speculari ortogonali. Il valore predefinito è TRUE. Le applicazioni che usano la proiezione ortogonale devono specificare FALSE.
D3DRS_NORMALIZENORMALS
TRUE per abilitare la normalizzazione automatica delle normali dei vertici o FALSE per disabilitarla. Il valore predefinito è FALSE. L'abilitazione di questa funzionalità fa sì che il sistema normalizzi i vertici per i vertici dopo averli trasformati nello spazio della fotocamera, che può richiedere tempo di calcolo.
D3DRS_DIFFUSEMATERIALSOURCE
Fonte di colore diffusa per i calcoli di illuminazione.
D3DRS_SPECULARMATERIALSOURCE
Sorgente di colore speculare per i calcoli di illuminazione.
D3DRS_AMBIENTMATERIALSOURCE
Sorgente di colore ambientale per i calcoli dell'illuminazione.
D3DRS_EMISSIVEMATERIALSOURCE
Sorgente di colore emissiva per i calcoli di illuminazione.
D3DRS_VERTEXBLEND
Numero di matrici da utilizzare per eseguire la fusione geometrica, se disponibile.
D3DRS_CLIPPLANEENABLE
Abilita o disabilita i piani di ritaglio definiti dall'utente. I valori validi sono qualsiasi DWORD in cui lo stato di ogni bit (impostato o non impostato) attiva o disattiva lo stato di attivazione di un piano di ritaglio definito dall'utente corrispondente. Il bit meno significativo (bit 0) controlla il primo piano di ritaglio in corrispondenza dell'indice 0 e i bit successivi controllano l'attivazione dei piani di ritaglio a indici superiori. Se è impostato un bit, il sistema applica il piano di ritaglio appropriato durante il rendering della scena. Il valore predefinito è 0.
D3DRS_POINTSIZE
Valore float che specifica le dimensioni da utilizzare per il calcolo delle dimensioni del punto nei casi in cui le dimensioni del punto non vengono specificate per ogni vertice. Questo valore non viene utilizzato quando il vertice contiene le dimensioni del punto. Questo valore si trova in unità di spazio dello schermo se D3DRS_POINTSCALEENABLE è FALSE; in caso contrario, questo valore si trova in unità di spazio globale. Il valore predefinito è il valore restituito da un driver. Se un driver restituisce 0 o 1, il valore predefinito è 64, che consente l'emulazione delle dimensioni del punto software.
D3DRS_POINTSIZE_MIN
Valore float che specifica la dimensione minima delle primitive punto. Le primitive dei punti vengono bloccate a questa dimensione durante il rendering. L'impostazione di questo valore su valori inferiori a 1,0 comporta l'eliminazione di punti quando il punto non copre un centro pixel e l'antialiasing è disabilitato o sottoposto a rendering con intensità ridotta quando è abilitata l'antialiasing. Il valore predefinito è 1,0f. L'intervallo per questo valore è maggiore o uguale a 0,0f.
D3DRS_POINTSPRITEENABLE
Se TRUE, le coordinate delle trame delle primitive dei punti vengono impostate in modo che le trame complete vengano mappate in ogni punto. Se FALSE, le coordinate della trama dei vertici vengono usate per l'intero punto. Il valore predefinito è FALSE. È possibile ottenere punti a pixel singoli in stile DirectX 7 impostando D3DRS_POINTSCALEENABLE su FALSE e D3DRS_POINTSIZE su 1,0, che sono i valori predefiniti.
D3DRS_POINTSCALEENABLE
Valore bool che controlla il calcolo delle dimensioni per le primitive dei punti. Se TRUE, la dimensione del punto viene interpretata come valore dello spazio della fotocamera e viene ridimensionata dalla funzione distance e dal frustum per visualizzare il ridimensionamento dell'asse y per calcolare le dimensioni finali del punto di spazio dello schermo. Quando FALSE, la dimensione del punto viene interpretata come spazio dello schermo e usata direttamente. Il valore predefinito è FALSE.
D3DRS_POINTSCALE_A
Valore float che controlla l'attenuazione delle dimensioni basate sulla distanza per le primitive punto. Attivo solo quando D3DRS_POINTSCALEENABLE è TRUE. Il valore predefinito è 1,0f. L'intervallo per questo valore è maggiore o uguale a 0,0f.
D3DRS_POINTSCALE_B
Valore float che controlla l'attenuazione delle dimensioni basate sulla distanza per le primitive punto. Attivo solo quando D3DRS_POINTSCALEENABLE è TRUE. Il valore predefinito è 0,0f. L'intervallo per questo valore è maggiore o uguale a 0,0f.
D3DRS_POINTSCALE_C
Valore float che controlla l'attenuazione delle dimensioni basate sulla distanza per le primitive punto. Attivo solo quando D3DRS_POINTSCALEENABLE è TRUE. Il valore predefinito è 0,0f. L'intervallo per questo valore è maggiore o uguale a 0,0f.
D3DRS_MULTISAMPLEANTIALIAS
Valore bool che determina il modo in cui vengono calcolati i singoli campioni quando si usa un buffer di destinazione di rendering multisample. Se impostato su TRUE, vengono calcolati più campioni in modo che l'anti-aliasing full-scene venga eseguito dal campionamento in posizioni di esempio diverse per ogni campione multiplo. Se impostato su FALSE, tutti i campioni vengono scritti con lo stesso valore di esempio, campionati al centro pixel, che consente il rendering non antialiased in un buffer multisample. Questo stato di rendering non ha alcun effetto durante il rendering in un singolo buffer di esempio. Il valore predefinito è TRUE.
D3DRS_MULTISAMPLEMASK
Ogni bit in questa maschera, a partire dal bit meno significativo (LSB), controlla la modifica di uno degli esempi in una destinazione di rendering multisample. Pertanto, per una destinazione di rendering a 8 campioni, il byte basso contiene le otto abilita di scrittura per ognuno degli otto campioni. Questo stato di rendering non ha alcun effetto durante il rendering in un singolo buffer di esempio. Il valore predefinito è 0xFFFFFFFF.

Questo stato di rendering consente l'uso di un buffer multisample come buffer di accumulo, eseguendo il rendering multipass della geometria in cui ogni passaggio aggiorna un subset di campioni.
Se sono presenti n campioni multicampionamento e k abilitati, l'intensità risultante dell'immagine sottoposta a rendering deve essere k/n. Ogni componente RGB di ogni pixel viene fattoriato da k/n.
D3DRS_PATCHEDGESTYLE
Imposta se i bordi delle patch useranno la tassellatura in stile float.
D3DRS_DEBUGMONITORTOKEN
Impostare solo per il debug del monitoraggio.
D3DRS_POINTSIZE_MAX
Valore float che specifica la dimensione massima a cui verranno bloccati gli sprite del punto. Il valore deve essere minore o uguale al membro MaxPointSize di D3DCAPS9 e maggiore o uguale a D3DRS_POINTSIZE_MIN. Il valore predefinito è 64,0.
D3DRS_INDEXEDVERTEXBLENDENABLE
Valore bool che abilita o disabilita la fusione dei vertici indicizzati. Il valore predefinito è FALSE. Se impostato su TRUE, la fusione dei vertici indicizzati è abilitata. Se impostato su FALSE, la fusione dei vertici indicizzati è disabilitata. Se questo stato di rendering è abilitato, l'utente deve passare indici matrice come DWORD compressi con ogni vertice. Quando lo stato di rendering è disabilitato e la fusione dei vertici viene abilitata tramite lo stato D3DRS_VERTEXBLEND, equivale ad avere indici matrice 0, 1, 2, 3 in ogni vertice.
D3DRS_COLORWRITEENABLE
Valore UINT che abilita una scrittura per canale per il buffer dei colori di destinazione di rendering. Un bit impostato comporta l'aggiornamento del canale colore durante il rendering 3D. Un bit chiaro comporta che il canale di colore non sia interessato.
D3DRS_TWEENFACTOR
Valore float che controlla il fattore tween.
D3DRS_BLENDOP
Valore utilizzato per selezionare l'operazione aritmetica applicata quando lo stato di rendering della fusione alfa, D3DRS_ALPHABLENDENABLE, è impostato su TRUE.

Se la funzionalità del dispositivo D3DPMISCCAPS_BLENDOP non è supportata, viene eseguita D3DBLENDOP_ADD.
D3DRS_POSITIONDEGREE
Grado di interpolazione della posizione N patch. I valori possono essere D3DDEGREE_CUBIC (impostazione predefinita) o D3DDEGREE_LINEAR.
D3DRS_NORMALDEGREE
Grado di interpolazione normale con patch N. I valori possono essere D3DDEGREE_LINEAR (impostazione predefinita) o D3DDEGREE_QUADRATIC.
D3DRS_SCISSORTESTENABLE
TRUE per abilitare il test della scissor e FALSE per disabilitarlo. Il valore predefinito è FALSE.
D3DRS_SLOPESCALEDEPTHBIAS
Usato per determinare la quantità di distorsione che può essere applicata alle primitive co-planari per ridurre la lotta z. Il valore predefinito è 0.
D3DRS_ANTIALIASEDLINEENABLE
TRUE per abilitare l'anti-aliasing delle righe, FALSE per disabilitare l'anti-aliasing delle righe. Il valore predefinito è FALSE.
D3DRS_MINTESSELLATIONLEVEL
Livello minimo di tassellatura. Il valore predefinito è 1,0f.
D3DRS_MAXTESSELLATIONLEVEL
Livello massimo di tassellatura. Il valore predefinito è 1,0f.
D3DRS_ADAPTIVETESS_X
Quantità di tassellatura adattiva, nella direzione x. Il valore predefinito è 0,0f.
D3DRS_ADAPTIVETESS_Y
Quantità di tassellatura adattiva, nella direzione y. Il valore predefinito è 0,0f.
D3DRS_ADAPTIVETESS_Z
Quantità di tassellatura adattiva, nella direzione z. Il valore predefinito è 1,0f.
D3DRS_ADAPTIVETESS_W
Quantità di tassellatura adattiva, nella direzione w. Il valore predefinito è 0,0f.
D3DRS_ENABLEADAPTIVETESSELLATION
TRUE per abilitare la tassellatura adattiva, FALSE per disabilitarla.
D3DRS_TWOSIDEDSTENCILMODE
TRUE abilita lo stenciling a due lati, FALSE lo disabilita. Il valore predefinito è FALSE. L'applicazione deve impostare D3DRS_CULLMODE su D3DCULL_NONE per abilitare la modalità stencil a due lati. Se l'ordine di avvolgimento del triangolo è in senso orario, verranno utilizzate le operazioni D3DRS_STENCIL*. Se l'ordine di avvolgimento è antiorario, verranno utilizzate le operazioni D3DRS_CCW_STENCIL*.
D3DRS_CCW_STENCILFAIL
Operazione stencil da eseguire se il test dello stencil CCW non riesce.
D3DRS_CCW_STENCILZFAIL
Operazione stencil da eseguire se il test dello stencil CCW supera e z-test non riesce.
D3DRS_CCW_STENCILPASS
Operazione stencil da eseguire se lo stencil CCW e z-test supera.
D3DRS_CCW_STENCILFUNC
Funzione di confronto. Il test stencil CCW supera se ((ref & mask) funzione stencil (stencil & mask)) è TRUE.
D3DRS_COLORWRITEENABLE1
Valori ColorWriteEnable aggiuntivi per i dispositivi.
D3DRS_COLORWRITEENABLE2
Valori ColorWriteEnable aggiuntivi per i dispositivi.
D3DRS_COLORWRITEENABLE3
Valori ColorWriteEnable aggiuntivi per i dispositivi.
D3DRS_BLENDFACTOR
Fattore di fusione costante durante la fusione alfa.
D3DRS_SRGBWRITEENABLE
Abilitare la correzione gamma delle scritture di destinazione di rendering in sRGB. Il formato deve esporre D3DUSAGE_SRGBWRITE. Il valore predefinito è 0.
D3DRS_DEPTHBIAS
Valore a virgola mobile utilizzato per il confronto dei valori di profondità.
D3DRS_WRAP8
Vedere D3DRS_WRAP0.
D3DRS_WRAP9
Vedere D3DRS_WRAP0.
D3DRS_WRAP10
Vedere D3DRS_WRAP0.
D3DRS_WRAP11
Vedere D3DRS_WRAP0.
D3DRS_WRAP12
Vedere D3DRS_WRAP0.
D3DRS_WRAP13
Vedere D3DRS_WRAP0.
D3DRS_WRAP14
Vedere D3DRS_WRAP0.
D3DRS_WRAP15
Vedere D3DRS_WRAP0.
D3DRS_SEPARATEALPHABLENDENABLE
TRUE abilita la modalità di fusione separata per il canale alfa. Il valore predefinito è FALSE.

Se impostato su FALSE, i fattori e le operazioni di fusione di destinazione di rendering applicati a alfa devono essere uguali a quelli definiti per il colore. Questa modalità è effettivamente hardwired su FALSE nelle implementazioni che non impostano il limite D3DPMISCCAPS_SEPARATEALPHABLEND.
D3DRS_SRCBLENDALPHA
Questo valore viene ignorato a meno che D3DRS_SEPARATEALPHABLENDENABLE non sia TRUE.
D3DRS_DESTBLENDALPHA
Questo valore viene ignorato a meno che D3DRS_SEPARATEALPHABLENDENABLE non sia TRUE.
D3DRS_BLENDOPALPHA
Valore utilizzato per selezionare l'operazione aritmetica applicata alla fusione alfa separata quando lo stato di rendering, D3DRS_SEPARATEALPHABLENDENABLE, è impostato su TRUE.
D3DRS_FORCE_DWORD
Forza la compilazione in 32 bit di questa enumerazione. Senza questo valore, alcuni compilatori consentono la compilazione di questa enumerazione in dimensioni diverse da 32 bit. Questo valore non viene utilizzato.

Osservazioni

Questi stati di rendering sono solo per uso interno:

D3DRENDERSTATE_EVICTMANAGEDTEXTURES

Determina se le trame vengono rimosse dalla memoria. Il driver usa un tipo di dati BOOL senza un valore predefinito per rilevare se rimuovere .

Questo stato di rendering determina se il driver rimuove le trame gestite (anziché le trame gestite dal runtime Direct3D) dalla memoria video. Se il valore dello stato di rendering è TRUE, il driver rimuove le trame. In caso contrario, il driver non rimuove tali trame.

D3DRENDERSTATE_SCENECAPTURE

Specifica le informazioni sulla scena iniziale o le informazioni sulla scena finale per i dati geometrici acquisiti all'interno di una cornice. Il driver usa un tipo di dati BOOL con un valore predefinito di TRUE per rilevare le informazioni di acquisizione della scena.

Il driver risponde prima di tutto a D3DRENDERSTATE_SCENECAPTURE con TRUE per iniziare le informazioni sulla scena e successivamente con FALSE per l'acquisizione di dati geometrici all'interno di un frame. Per un esempio di implementazione, vedere driver di esempio permedia2 fornito con Windows Driver Development Kit (DDK). Se si usa lo stato di rendering D3DRENDERSTATE_SCENECAPTURE in una chiamata D3dDrawPrimitives2 sostituisce la D3DHALCallbacks legacy>D3dSceneCapture routine di callback.

È necessario eseguire l'aggiornamento di un driver che implementa la legacy D3DHALCallbacks->D3dSceneCapture routine di callback a uno usando lo stato di rendering D3DRENDERSTATE_SCENECAPTURE. La routine di callback D3dSceneCapture utilizza le costanti D3DHAL_SCENE_CAPTURE_START e D3DHAL_SCENE_CAPTURE_END per indicare, rispettivamente, l'inizio e la fine di una scena. I valori di queste costanti sono rispettivamente 0 e 1. Se si usano queste costanti al posto di true e false in questo stato di rendering, il significato sarà l'esatto opposto di quello che si intende.

D3DRS_DELETERTPATCH

solo directx 8.0 e versioni successive.

Elimina una patch rettangolare o triangolare dalla memoria. Il driver usa un tipo di dati DWORD senza un valore predefinito per rilevare la patch da eliminare.

Questo stato di rendering notifica al driver che deve essere eliminata una patch. Il valore di questo stato di rendering è l'handle per la patch interessata. Tutte le informazioni memorizzate nella cache devono essere liberate e l'handle deve essere rimosso dalla tabella dell'handle patch del driver. Questo stato di rendering non è visibile alle applicazioni, ma viene generato internamente quando un'applicazione chiama la funzione DeletePatch. Questo stato di rendering viene inviato al driver solo quando le patch vengono eliminate da DeletePatch in modo esplicito. Tutte le altre patch devono essere pulite quando il dispositivo viene eliminato definitivamente.

D3DRS_MAXPIXELSHADERINST

solo DirectX 9.0 e versioni successive.

Determina il numero massimo di istruzioni che l'assembler pixel shader può eseguire.

Il driver usa un tipo di dati DWORD con un valore predefinito di D3DINFINITEINSTRUCTIONS (0xffffffff) per segnalare il numero massimo di istruzioni pixel shader. Questo numero massimo dipende dalla versione del pixel shader supportata dal dispositivo di visualizzazione, come illustrato nella tabella seguente.

Versione Numero massimo
precedente a 2_0 0
2_0 Da 96 a D3DINFINITEINSTRUCTIONS
3_0 e versioni successive Da 2¹⁶ (0x0000ffff) a D3DINFINITEINSTRUCTIONS

D3DINFINITEINSTRUCTIONS rappresenta una quantità virtualmente illimitata.

I valori validi per questo stato di rendering sono numeri che sono potenze di 2; se il driver imposta qualsiasi altro numero intero, il runtime usa la potenza più vicina di 2 numeri.

Il runtime imposta il MaxVShaderInstructionsExecuted membro della struttura D3DCAPS9 su questo numero massimo.

D3DRS_MAXVERTEXSHADERINST

solo DirectX 9.0 e versioni successive.

Determina il numero massimo di istruzioni che l'assembler vertex shader può eseguire.

Il driver usa un tipo di dati DWORD con un valore predefinito di D3DINFINITEINSTRUCTIONS (0xffffffff) per segnalare il numero massimo di istruzioni del vertex shader. Questo numero massimo dipende dalla versione del vertex shader supportata dal dispositivo di visualizzazione, come illustrato nella tabella seguente.

Versione Numero massimo
precedente a 2_0 0
2_0 e versioni successive Da 2¹⁶ (0x0000ffff) a D3DINFINITEINSTRUCTIONS

D3DINFINITEINSTRUCTIONS rappresenta una quantità virtualmente illimitata.

I valori validi per questo stato di rendering sono numeri che sono potenze di 2; se il driver imposta qualsiasi altro numero intero, il runtime usa la potenza più vicina di 2 numeri.

Il runtime imposta il MaxVShaderInstructionsExecuted membro della struttura D3DCAPS9 su questo numero massimo.

Il driver usa questi stati di rendering quando esegue il rendering della grafica. Nella documentazione di Windows Driver Kit (WDK) sono inclusi solo gli stati di rendering specifici dei driver. Gli stati di rendering accessibili alle applicazioni DirectX sono inclusi nella documentazione di DirectX SDK. Questi stati di rendering a livello di applicazione includono caratteristiche quali l'abilitazione della fusione alfa, l'abilitazione del dithering, l'uso dell'illuminazione Direct3D e il tipo di ombreggiatura da usare.

Per aggiornare uno stato di rendering specifico, Direct3D archivia le informazioni sullo stato di rendering e quindi chiama la routine di callback del driver D3dDrawPrimitives2. Le informazioni fornite al driver consentono di:

  • Determinare che deve aggiornare uno o più stati di rendering.

  • Identificare gli stati di rendering da aggiornare e quali devono essere i nuovi valori dello stato di rendering.

Si noti che per determinati stati di rendering da rispettare, il driver deve avere precedentemente impostato flag di funzionalità nel membro pertinente della struttura D3DPRIMCAPS.

Per indicare un aggiornamento specifico dello stato di rendering, Direct3D inserisce una struttura D3DHAL_DP2COMMAND nel buffer dei comandi, impostando il membro bCommand di questa struttura su D3DDP2OP_RENDERSTATE (vedere la descrizione per D3DDP2OP_RENDERSTATE in D3DHAL_DP2OPERATION) e impostando il membro wStateCount della stessa struttura sul numero di stati di rendering da aggiornare.

Subito dopo la struttura D3DHAL_DP2COMMAND, Direct3D inserisce una struttura D3DHAL_DP2RENDERSTATE nel buffer dei comandi per ogni stato di rendering da aggiornare. Il membro RenderState di questa struttura identifica lo stato di rendering da modificare; Il nuovo valore di questo stato di rendering viene specificato nel membro dwState (per i valori DWORD) o nel membro fState (per i valori D3DVALUE).

La figura seguente mostra una parte del buffer dei comandi contenente un comando D3DDP2OP_RENDERSTATE e due strutture D3DHAL_DP2RENDERSTATE. La prima delle tre strutture indica che due stati di rendering devono essere aggiornati. La seconda struttura indica che lo stato di rendering D3DRENDERSTATE_FILLMODE deve essere modificato in D3DFILL_SOLID. La terza struttura indica che lo stato di rendering D3DRENDERSTATE_SHADEMODE deve essere aggiornato a D3DSHADE_GOURAUD.

Figura che mostra un buffer dei comandi con un comando D3DDP2OP_RENDERSTATE e due strutture D3DHAL_DP2RENDERSTATE

note aggiuntive

Vedere i tipi enumerati D3DTEXTURESTAGESTATETYPE, D3DTEXTUREOP e D3DTEXTUREFILTER nella documentazione di DirectX SDK per elencare tutti i tipi di stato di rendering abilitati.

Sono state apportate alcune modifiche al tipo enumerato D3DRENDERSTATETYPE per DirectX 5.0 e versioni successive. D3DRENDERSTATE_BLENDENABLE è stato rimosso completamente anche se è definito come D3DRENDERSTATE_ALPHABLENDENABLE nel file di intestazione d3dtypes.h. Per una spiegazione, vedere D3DRENDERSTATE_COLORKEYENABLE. I valori interi 128 nell'intervallo [128, 255] sono riservati ai flag di ritorno a capo delle coordinate della trama. Questi vengono costruiti con le macro D3DWRAP_U e D3DWRAP_V. L'uso di una parola flag mantiene la compatibilità con le coordinate di trama di dimensioni superiori a 2D.

Operazioni di macro multitexture e D3DRENDERSTATE_TEXTUREFACTOR eseguire l'override di tutti i controlli di fusione per fase per trama (COLOR{OP,ARG1,ARG2} & ALPHA{OP,ARG1,ARG2}).

Fabbisogno

Requisito Valore
intestazione d3d9types.h (include D3dhal.h)