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.
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) |