Dispositivi Direct3D (Direct3D 9)
Un dispositivo Direct3D è il componente di rendering di Direct3D. Incapsula e archivia lo stato di rendering. Inoltre, un dispositivo Direct3D esegue trasformazioni e operazioni di illuminazione e rasterizza un'immagine in una superficie.
- XPDM e WDDM
- tipi di dispositivo (Direct3D 9)
- Creazione di un dispositivo (Direct3D 9)
- modalità finestra e Full-Screen (Direct3D 9)
- Selezione di un dispositivo (Direct3D 9)
- dispositivi persi (Direct3D 9)
- determinare il supporto hardware (Direct3D 9)
- elaborazione dei dati dei vertici (Direct3D 9)
- primitive
In modo architetturale, i dispositivi Direct3D contengono un modulo di trasformazione, un modulo di illuminazione e un modulo di rasterizzazione, come illustrato nel diagramma seguente.
Direct3D supporta attualmente due tipi principali di dispositivi Direct3D:
- Un dispositivo hal con rasterizzazione e ombreggiatura con accelerazione hardware con elaborazione dei vertici hardware e software
- Un dispositivo di riferimento
È possibile considerare questi dispositivi come due driver separati. I dispositivi software e di riferimento sono rappresentati da driver software e il dispositivo hal è rappresentato da un driver hardware. Il modo più comune per sfruttare questi dispositivi consiste nell'usare il dispositivo hal per la spedizione di applicazioni e il dispositivo di riferimento per i test delle funzionalità. Questi vengono forniti da terze parti per emulare dispositivi specifici, ad esempio hardware di sviluppo che non è ancora stato rilasciato.
Il dispositivo Direct3D creato da un'applicazione deve corrispondere alle funzionalità dell'hardware in cui è in esecuzione l'applicazione. Direct3D offre funzionalità di rendering, accedendo all'hardware 3D installato nel computer o simulando le funzionalità dell'hardware 3D nel software. Di conseguenza, Direct3D fornisce dispositivi sia per l'accesso hardware che per l'emulazione software.
I dispositivi con accelerazione hardware offrono prestazioni molto migliori rispetto ai dispositivi software. Il tipo di dispositivo hal è disponibile in tutte le schede grafiche supportate da Direct3D. Nella maggior parte dei casi, le applicazioni hanno un'accelerazione hardware e si basano sull'emulazione software per supportare computer di fascia inferiore.
Ad eccezione del dispositivo di riferimento, i dispositivi software non supportano sempre le stesse funzionalità di un dispositivo hardware. Le applicazioni devono sempre eseguire query sulle funzionalità del dispositivo per determinare quali funzionalità sono supportate.
Poiché il comportamento del software e dei dispositivi di riferimento forniti con Direct3D 9 è identico a quello del dispositivo hal, il codice dell'applicazione creato per funzionare con il dispositivo hal funzionerà con il software o i dispositivi di riferimento senza modifiche. Si noti che, mentre il comportamento del software o del dispositivo di riferimento fornito è identico a quello del dispositivo hal, le funzionalità del dispositivo variano e un particolare dispositivo software può implementare un set di funzionalità molto più piccolo.
Comportamenti
Direct3D consente di specificare il comportamento di un dispositivo, nonché il tipo di dispositivo. Il metodo IDirect3D9::CreateDevice consente una combinazione di uno o più flag di comportamento per controllare i comportamenti globali del dispositivo Direct3D. Questi comportamenti specificano ciò che è e non vengono mantenuti nella parte di runtime di Direct3D e i tipi di dispositivo specificano il driver da usare. Sebbene alcune combinazioni di comportamenti dei dispositivi non siano valide, è possibile usare tutti i comportamenti dei dispositivi con tutti i tipi di dispositivo. Ad esempio, è possibile specificare D3DDEVTYPE_SW in un dispositivo creato con D3DCREATE_PUREDEVICE.
Argomenti correlati