Introduzione a DirectX
Diego Colombo
Universita di Pisa
Dipartimento di Informatica
DirectX o OpenGL? (parte prima)
Non sono lontanamente la stessa cosa
OpenGL e’ paragonabile solo ad una
sottoparte di Directx
OpenGL + SDL + OpenAL potrebbero
cominciare ad essere paragonabili a
DirectX anche se mancano ancora dei
blocchi . .
DirectX, l’anatomia
Direct
Play
Direct
Sound
Direct
Music
Direct
3D
Direct
Draw
Direct
Show
Direct
Input
DirectX, l’anatomia
Direct
Play
Direct
Music
Direct
Sound
Direct
3D
Direct
Draw
Direct
Input
Direct
Show
Network
Sound
Graphics
User Input
DirectX, il modello
DX e’ interamente costruito su COM.
Questo perche’ molti componenti hanno bisogno di
gestire le risorse in modo autonomo.
DirectShow usa dei thread che nelle applicazioni
non sono visibili, anche perche’ spesso I
componenti dialogano direttamente con I driver
dei devices, se non sono direttamente
l’interfaccia del driver
DirectX e l’HW
Driver DS
Il primo tentativo e’ per HAL puro
Si passa in software in caso di fallimento
Lo sviluppatore non e’ ritenuto
responsabile di gestire questa procedura.
Avevamo detto driver?
DDK
DirectX Driver SDK (DXDDK)
DXSDK
Panoramica dei componenti
Direct Input
Gestione HW
Tastiera
Mouse
HID
Joystick
Joypad
Direct Input
Enumerazione Device
Discovery delle capabilities
Scripting degli Effetti di Force FeedBack
Direct Play
Supporto di rete ai giochi
Gestione sessioni
Gestione delle lobby
Gestione delle chat
Gestione della voce
Directx e l’audio
Direct Sound
Direct Music
Application
Direct
Music
Direct
Sound
HAL
Direct Music
Orchestrazione
Gestione MIDI e WAV
Gestione Strumenti e sintesi
Gestione messaggi ed eventi
SoundTrack dinamica ad Hardware
Direct Music
Timeline management
Scriptabile
Gestione accellerazione audio 3D
Alta precisione nella gestione della
temporizzazione
Direct Sound
Bytes . .
Buffer HW e non
Biterate
Frequenza di campionamento e numero di
canali
Lo stato finale del suono
Direct Sound
Buffer acessibili tramite lock e unlock
Uso degli effetti classici
Uso di effetti di spazializzazione
Possibilita’ di sitensi
Interfaccia di cattura tramite I line in o il
microfono
Una tabella
Grafica in Windows
2D
Accellerazione
3D
OS
GDI
Direct 3D
GDI
Direct
Draw
HW
D3D
DD
GDI ed il livello SO
Bitmap
Regioni
Alpha channel
Trasformazioni 2D
Gestione Colori e piani
Clipping
Direct Draw
Limite dovuto alla memoria video
Operazioni riconducibili a spostamenti di
blocchi di memoria o BitBlitting
Uso di Chroma Key
Diesgnare Testo
GDI
DD
D3D (anche generazione di mesh da
testo)
Windows espone il modello di aliasing,
compreso il Clear Type
Cosa si puo’ ottenere
Multischermo
Gestione della risoluzione in full screen
Controllo sulle abilita’ della scheda video
Controllo sulla presenza di piu’ schede
video o Graphics Head
Direct 3D
Il cuore pulsante di directX
Controllo automatico dell’accellerazione
Esiste uno stato della pipeline
centralizzato
Accesso alle “superfici” (DXSurface)
Gestione di Pmesh nativa
Gestione Testo (fornito sia dal device che
dalla mesh)
Direct 3D
Supporto per pixel e vertex shader (HLSL)
Supporto per HDR e Radiance
I Buffer secondari in memoria video
Texture animate
Direct Show
Usato per la presentazione die contenuti
multimediali
Application
Usa una struttura a grafi
Direct
Combina DS, DD e D3D
Show
Direct
Sound
Direct
3D
HAL
Direct
Draw
Note Dolenti . . .
Name space
Direct Draw
Direct 3D
Direct Sound
Direct Music
Direct Show
Direct Play
Direct Input
Direct Video Playback
Managed Unmanaged
Si
Si
Si
Si
Si
Si
No
Si
No
Si
Si
Si
Si
Si
Si
No
Managed . .
C# e VB!!!!!!!
Il sistema e’ tipato e scompare quindi tutta
l’infrastruttura sintattica necessaria a COM
Programmazione piu’ intuitivae facile da
controllare
Un po’ di discorsi sul tema
Scarica

Introduzione a DirectX