enumerazione D3DRENDERSTATETYPE (d3d9types.h)

Il tipo enumerato D3DRENDERSTATETYPE elenca un'ampia gamma di attributi o stati di rendering. Gli enumeratori di D3DRENDERSTATETYPE usati 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 di buffer di profondità.
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 effettuati in base allo stato di rendering D3DRS_ZFUNC, presupponendo che il buffer di profondità venga eseguito, ma i valori di profondità non vengono scritti nel buffer.
D3DRS_ALPHATESTENABLE
TRUE per abilitare i test alfa pixel. Se il test supera, il pixel viene elaborato dal buffer di frame. In caso contrario, tutte le operazioni di elaborazione del buffer frame vengono ignorate per il pixel.
D3DRS_LASTPIXEL
Il valore predefinito è TRUE, che consente il disegno dell'ultimo pixel in una riga. 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 generati triangoli di fronte al retro, se tutto.
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 del buffer di profondità. 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 8 bit bassi del valore 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 alfa-blend. 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 trova all'origine dell'oggetto. Ciò fornisce i risultati previsti fino a quando l'oggetto viene modellato intorno all'origine e la distanza dalla luce all'oggetto è 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 cascata della trama, ma prima della fusione alfa.
D3DRS_FOGCOLOR
Struttura D3DCOLORVALUE .
D3DRS_FOGTABLEMODE
Tipo D3DFOGMODE enumerato che rappresenta una formula di nebbia da usare per la nebbia pixel.
D3DRS_FOGSTART
Profondità a cui iniziano gli effetti della nebbia dei pixel o dei vertici per la modalità nebbia lineare. Il valore predefinito è 0,0f. La profondità viene specificata nello spazio mondiale per la nebbia dei vertici e lo spazio del dispositivo [0,0, 1,0] o lo spazio mondiale per la nebbia dei pixel. Per la nebbia dei pixel, questi valori si trovano nello spazio dei dispositivi quando il sistema usa z per i calcoli della nebbia e lo spazio mondiale quando il sistema usa la nebbia oculare (nebbia).
D3DRS_FOGEND
Profondità a cui terminano gli effetti di nebbia pixel o vertice per la modalità nebbia lineare. Il valore predefinito è 1,0f. La profondità viene specificata nello spazio mondiale per la nebbia dei vertici e lo spazio del dispositivo [0,0, 1,0] o lo spazio mondiale per la nebbia dei pixel. Per la nebbia dei pixel, questi valori si trovano nello spazio dei dispositivi quando il sistema usa z per i calcoli della nebbia e nello spazio mondiale quando il sistema usa la nebbia oculare (nebbia).
D3DRS_FOGDENSITY
Densità di nebbia per pixel o nebbia vertice usata nelle modalità di 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 del vertice basata su intervalli. Il valore predefinito è FALSE, nel qual caso il sistema usa la nebbia in base alla profondità. Nella nebbia basata su 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 su intervalli, 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 della nebbia, ma la profondità viene comunemente usata perché l'intervallo richiede tempo per calcolare e la profondità è già disponibile. L'uso della profondità per calcolare la nebbia ha l'effetto indesiderato di avere la foggibilità degli oggetti periferici cambiano man mano che l'occhio del visualizzatore si sposta, in questo caso, le modifiche di profondità e l'intervallo rimane costante.

Poiché nessun hardware supporta attualmente la 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 stencil ha esito negativo. 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 sia lo stencil che il test di profondità (z).
D3DRS_STENCILFUNC
La funzione di confronto viene usata per confrontare il valore di riferimento con una voce del buffer stencil. Questo confronto si applica solo ai bit nel valore di riferimento e alla voce del buffer stencil impostata nella maschera stencil (impostata dallo stato di rendering D3DRS_STENCILMASK). Se TRUE, il test stencil supera.
D3DRS_STENCILREF
Valore di riferimento int per il test stencil. Il valore predefinito è 0.
D3DRS_STENCILMASK
Maschera applicata al valore di riferimento e ogni voce del buffer stencil per determinare i bit significativi per il test stencil. La maschera predefinita è 0xFFFFFFFF.
D3DRS_STENCILWRITEMASK
Maschera di scrittura applicata ai valori scritti nel buffer stencil. La maschera predefinita è 0xFFFFFFFF.
D3DRS_TEXTUREFACTOR
Colore usato per la fusione a più trame con l'argomento D3DTA_TFACTOR trama-blending o l'operazione di fusione di trame D3DTOP_BLENDFACTORALPHA.
D3DRS_WRAP0
Comportamento di wrapping della trama per più set di coordinate della 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. Questi causano il wrapping del sistema nella direzione della prima, della seconda, della terza e della quarta dimensione, talvolta denominata 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 un vertice normale sono correttamente illuminati; vertici che non contengono una normale uso di un prodotto punto pari a 0 in tutti i calcoli di illuminazione.
D3DRS_AMBIENT
Colore della luce ambientale.
D3DRS_FOGVERTEXMODE
Formula nebbia da usare per la nebbia del vertice.
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 molto tempo dal punto di vista computazionale.
D3DRS_DIFFUSEMATERIALSOURCE
Fonte di colore diffusa per i calcoli di illuminazione.
D3DRS_SPECULARMATERIALSOURCE
Fonte di colore speculare per i calcoli di illuminazione.
D3DRS_AMBIENTMATERIALSOURCE
Fonte di colore ambientale per i calcoli di illuminazione.
D3DRS_EMISSIVEMATERIALSOURCE
Fonte di colore emissiva per i calcoli di illuminazione.
D3DRS_VERTEXBLEND
Numero di matrici da utilizzare per eseguire la fusione della geometria, 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 usato 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à spaziali del mondo. 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 sono bloccate a questa dimensione durante il rendering. L'impostazione di questo valore su valori inferiori a 1,0 comporta l'eliminazione dei punti quando il punto non copre un centro pixel e l'antialiasing è disabilitata o sottoposta 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 su 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, ovvero i valori predefiniti.
D3DRS_POINTSCALEENABLE
Valore bool che controlla il calcolo delle dimensioni per le primitive del punto. 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. Se FALSE, la dimensione del punto viene interpretata come spazio sullo schermo e usata direttamente. Il valore predefinito è FALSE.
D3DRS_POINTSCALE_A
Valore float che controlla l'attenuazione delle dimensioni in base alla distanza per le primitive dei punti. 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 in base alla distanza per le primitive dei punti. 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 in base alla distanza per le primitive dei punti. 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 esempi quando si usa un buffer di destinazione di rendering multisample. Se impostata su TRUE, vengono calcolati più campioni in modo che l'anti-aliasing della scena completa venga eseguita tramite 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 un valore che indica se i bordi della patch utilizzeranno 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 dei punti. 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 di matrice 0, 1, 2, 3 in ogni vertice.
D3DRS_COLORWRITEENABLE
Valore UINT che abilita una scrittura per canale per il buffer 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 di N patch. I valori possono essere D3DDEGREE_CUBIC (impostazione predefinita) o D3DDEGREE_LINEAR.
D3DRS_NORMALDEGREE
Grado di interpolazione normale di N patch. I valori possono essere D3DDEGREE_LINEAR (impostazione predefinita) o D3DDEGREE_QUADRATIC.
D3DRS_SCISSORTESTENABLE
TRUE per abilitare il test di 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 della riga, FALSE per disabilitare l'anti-aliasing della riga. 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 usate le operazioni D3DRS_STENCIL*. Se l'ordine di avvolgimento è antiorario, verranno usate le operazioni D3DRS_CCW_STENCIL*.
D3DRS_CCW_STENCILFAIL
Operazione stencil da eseguire se il test dello stencil CCW ha esito negativo.
D3DRS_CCW_STENCILZFAIL
Operazione stencil da eseguire se il test dello stencil CCW supera e z-test ha esito negativo.
D3DRS_CCW_STENCILPASS
Operazione stencil da eseguire se vengono superati gli stencil CCW e z-test.
D3DRS_CCW_STENCILFUNC
Funzione di confronto. Il test dello 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 della destinazione di rendering applicati a alpha 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 per separare la fusione alfa 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.

Commenti

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 un frame. Il driver usa un tipo di dati BOOL con un valore predefinito TRUE per rilevare le informazioni di acquisizione della scena.

Il driver risponde D3DRENDERSTATE_SCENECAPTURE prima con TRUE per iniziare le informazioni sulla scena e successivamente con FALSE per acquisire dati geometrici all'interno di un frame. Vedere il driver di esempio permedia2 fornito con Windows Driver Development Kit (DDK) per un'implementazione di esempio. L'uso dello stato di rendering D3DRENDERSTATE_SCENECAPTURE in una chiamata D3dDrawPrimitives2 sostituisce la routine di callback D3DHALCallbacks-D3dSceneCapture> legacy.

È necessario prestare attenzione nell'aggiornamento di un driver che implementa la routine di callback D3DHALCallbacks-D3dSceneCapture> a uno usando lo stato di rendering D3DRENDERSTATE_SCENECAPTURE. La routine di callback D3dSceneCapture usa 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 ciò 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 interessato dalla patch. Tutte le informazioni memorizzate nella cache devono essere liberate e l'handle deve essere rimosso dalla tabella di 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 in modo esplicito da DeletePatch . 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 del 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 membro MaxVShaderInstructionsExecuted 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 membro MaxVShaderInstructionsExecuted 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 D3dDrawPrimitives2 del driver. 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 alcuni stati di rendering da rispettare, il driver deve avere in precedenza 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 inD3DHAL_DP2OPERATION) e impostando il membro wStateCount della stessa struttura sul numero di stati di rendering da aggiornare.

Immediatamente 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 di comando 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 D3DTEXTURESTAGESTATETYPE, D3DTEXTUREOP e D3DTEXTUREFILTER enumerati nella documentazione di DirectX SDK per elencare tutti i tipi di stato di rendering abilitati.

Alcune modifiche sono state apportate al tipo enumerato D3DRENDERSTATETYPE per DirectX 5.0 e 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 wrapping delle coordinate della trama. Vengono costruiti con le macro D3DWRAP_U e D3DWRAP_V. L'uso di una parola flag mantiene la compatibilità con le coordinate della 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}).

Requisiti

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