Conversione dello stato di Direct3D Fixed-Function
Il runtime di Microsoft Direct3D converte lo stato predefinito di Direct3D in vertice o pixel shader versione 2.0 se il driver di visualizzazione in modalità utente supporta la versione 2.0 o successiva per ogni tipo di shader. Tuttavia, il runtime non converte le versioni di shader. Ad esempio, se un'applicazione usa vertex o pixel shader versione 1.1, la versione 1.1 viene passata al driver di visualizzazione in modalità utente indipendentemente dal fatto che il driver supporti shader versione 2.0 o successiva. I codici FVF (Flexible Vertex Format) vengono usati con l'elaborazione a funzione fissa.
Funzionalità del convertitore per le versioni DirectX
Il funzionamento dei convertitori di vertex e pixel shader a funzione fissa dipende dalla versione di Microsoft DirectX usata:
DirectX 9.0
I convertitori di vertex e pixel shader a funzione fissa possono funzionare con il modello di driver di visualizzazione di Windows Vista.
I convertitori sono abilitati per impostazione predefinita.
Quando viene usato il vertice fisso o il convertitore pixel shader, il dispositivo puro è disabilitato. Quando un'applicazione richiede il dispositivo puro, il runtime Direct3D crea un dispositivo HAL.
Il runtime supporta l'elaborazione dei vertici misti.
L'elaborazione del vertice software usa sempre il convertitore vertex vertex a funzione fissa.
L'elaborazione del vertice hardware usa il convertitore vertex shader a funzione fissa quando il driver supporta vertex shader versione 2.0 o successiva.
L'elaborazione del vertice hardware usa il convertitore di pixel shader a funzione fissa quando il driver supporta pixel shader versione 2.0 o successiva.
Nella modalità di elaborazione dei vertici misti quando il convertitore vertex a funzione fissa è abilitato per l'hardware, il numero di costanti float è impostato su ciò che l'hardware può supportare.
DirectX 8.0 e versioni precedenti
I convertitori di vertex e pixel shader a funzione fissa possono funzionare solo con il modello di driver di visualizzazione di Windows Vista.
I convertitori sono abilitati per impostazione predefinita.
Il convertitore vertex vertex non è supportato con l'elaborazione del vertice software.
L'elaborazione del vertice hardware usa il convertitore vertex shader a funzione fissa quando il driver supporta vertex shader versione 2.0 o successiva.
L'elaborazione del vertice hardware usa il convertitore di pixel shader a funzione fissa quando il driver supporta pixel shader versione 2.0 o successiva.
Nota Per le versioni di DirectX precedenti a DirectX 8.0, la funzione fissa per il mapping dello shader viene implementata in Ddraw.dll.
Funzioni del driver visualizzato non usate User-Mode
Le funzioni di driver di visualizzazione in modalità utente seguenti non vengono chiamate dal runtime Direct3D quando il convertitore vertex vertex a funzione fissa è abilitato:
Stati di rendering inutilizzati
Gli stati di rendering seguenti non vengono passati dal runtime Direct3D (o, se passati per errore, possono essere ignorati dal driver) quando il convertitore vertex vertex a funzione fissa è abilitato:
D3DRS_VERTEXBLEND
D3DRS_INDEXEDVERTEXBLENDENABLE
D3DRS_TWEENFACTOR
D3DRS_FOGVERTEXMODE
D3DRS_LIGHTING
D3DRS_AMBIENT
D3DRS_COLORVERTEX
D3DRS_LOCALVIEWER
D3DRS_DIFFUSEMATERIALSOURCE
D3DRS_SPECULARMATERIALSOURCE
D3DRS_AMBIENTMATERIALSOURCE
D3DRS_EMISSIVEMATERIALSOURCE
D3DRS_POINTSCALEENABLE
D3DRS_POINTSCALE_A
D3DRS_POINTSCALE_B
D3DRS_POINTSCALE_C
D3DRS_NORMALIZENORMALS
Stati di fase trama ignorati
Il runtime Direct3D passa tutti gli stati di fase trama al driver. Il driver deve ignorare gli stati della fase di trama seguenti quando il convertitore pixel shader a funzione fissa è abilitato:
D3DTSS_COLOROP
D3DTSS_COLORARG1
D3DTSS_COLORARG2
D3DTSS_ALPHAOP
D3DTSS_ALPHAARG1
D3DTSS_ALPHAARG2
D3DTSS_BUMPENVMAT00
D3DTSS_BUMPENVMAT01
D3DTSS_BUMPENVMAT10
D3DTSS_BUMPENVMAT11
D3DTSS_BUMPENVLSCALE
D3DTSS_BUMPENVLOFFSET
D3DTSS_COLORARG0
D3DTSS_ALPHAARG0
D3DTSS_RESULTARG
D3DTSS_CONSTANT