La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Corso di Elementi di Grafica Digitale Prof. Matjaz Hmeljak Anno Accademico 2008/2009 Presentazione di Maicol Petozzi.

Presentazioni simili


Presentazione sul tema: "Corso di Elementi di Grafica Digitale Prof. Matjaz Hmeljak Anno Accademico 2008/2009 Presentazione di Maicol Petozzi."— Transcript della presentazione:

1 Corso di Elementi di Grafica Digitale Prof. Matjaz Hmeljak Anno Accademico 2008/2009 Presentazione di Maicol Petozzi

2 DirectX è un set multimediale di API per lo sviluppo semplificato di videogiochi per Windows I componenti delle librerie DirectX sono disponibili al programmatore come oggetti corrispondenti alle specifiche COM (Component Object Model) Versioni attuali: Windows XP e precedenti: DirectX 9.0C Windows Vista: DirectX 10 (WGF 2.0) / DirectX 9.0L (WGF 1.0)

3 Nel Microsoft è sul punto di rilasciare un nuovo SO Windows 95 (con qualche problema per il futuro del suo prodotto...) DOS Permette laccesso diretto alla schede video, tastiera, mouse, periferiche audio e a tutte le altre parti del SO. Windows 95 Con il concetto di plug-and- play, limita laccesso a tutti i dispositivi lavorando su un modello più standardizzato. Il DOS sarebbe stato considerato come migliore piattaforma per la programmazione di videogiochi, limitando il successo di Win95 Risultato: HW DOSAPP HW WIN APP

4 1. Fine 94: Microsoft inizia lo sviluppo da zero di un API grafica 2. Febbraio 95: decide di acquisire British 3D RenderMorphics e la sua API 3. Settembre 95: risviluppa lAPI acquisita e rilascia la prima versione delle DirectX (con il nome di Windows Games SDK) (2)(1)(3) Struttura a livelli per la grafica di Windows 95 alla sua uscita Struttura a livelli per la grafica di Windows 95 con lintroduzione di WG SDK

5 OpenGL (Open Graphics Library) è una specifica che definisce un API per più linguaggi e piattaforme per scrivere applicazioni che producono computer grafica 2D e 3D OpenGL ha un ampio ventaglio di capacità: Sviluppo di videogiochi, applicazioni CAD, CAE e realtà virtuali Ambiente Unix: Standard di fatto per la computer grafica 3D Retrocompatibile

6 OpenGL garantisce due aspetti importanti: OpenGL è un API procedurale a basso livello Richiede al programmatore i passi precisi per disegnare una scena Al contrario, API descrittive ad alto livello richiedono una descrizione generica della scena Nascondere la complessità di interfacciamento con acceleratori 3D differenti Offrendo al programmatore un API unica ed uniforme Nascondere le capacità offerte dai diversi acceleratori 3D Richiedendo che tutte le implementazioni supportino completamente l'insieme di funzioni

7 OpenGL viene arricchito dal vari pacchetti, che contengono librerie per fornire differenti funzionalità: GLU (GL Utility) contiene funzioni di più alto livello, utili ad esempio per la creazione di sfere o altri oggetti complessi o per impostare particolari matrici di proiezione e per facilitare alcune operazioni al programma client GLUT (GL Utility Toolkit) si tratta di un toolkit che permette di scrivere programmi completi nascondendo le differenze di implementazione tra i gestori finestre dei vari sistemi operativi. Non viene usata a livello professionale GLUI (GL User Interface) è una libreria per linterfaccia grafica, basata su GLUT, che fornisce controlli come buttons, checkboxes, radio buttons e spinners alle applicazioni OpenGL

8 IRIS GL di Silicon Graphics (SGI) Predecessore di OpenGL Inizialmente nata come libreria grafica 2D Evoluta poi in grafica 3D Utilizzata su HW dedicato (IRIS graphics workstations) Tentativo di espansione nel mercato: HW dedicato (IRIS graphics workstation) HW generico (Altre piattaforme HW ) Problemi passaggio Nasce OpenGL, risultato degli sforzi di SGI per incrementare la portabilità di IRIS GL Risultato

9 Il nuovo linguaggio offre: Potenzialità di (IRIS) GL Potenzialità di essere Open OpenGL Versione 1.0, 1 Giugno 1992 Con lo scopo di definire e promuovere lo standard nasce lARB (Architecture Review Board) Composto inizialmente da: SGI, Digital Equipment Corporation, IBM, Intel, Microsoft Successivamente altre aziende si uniscono allARB SGI controllava comunque le licenze OpenGL Adattabile a diverso HW e OS

10 giugno1992 OpenGL 1.0/1 DirectX 1.0 settembre1995 DirectX 2.0 giugno a DirectX 3.0 settembre a 3.0b DirectX 4.0 DirectX 5.0 luglio1997 marzo maggio1998 DirectX 6.0 agosto1998 ottobre febbraio a DirectX 7.0 settembre a 7.1 settembre1999 DirectX 8.0 novembre2000 agosto a 8.1 novembre a 8.1b 8.2 giugno DirectX 9.0 dicembre2002 giugno a 9.0b 9.0c agosto2004 settembre2004 OpenGL 2.0 agosto DirectX 10 novembre2006 agosto2008 OpenGL 3.0

11 DirectX Graphics Permette la presentazione a video di grafica 2D e 3D, interfacciandosi direttamente con la scheda video. È composto da due API: Direct3D: API di basso livello, concepita per applicazioni grafiche complesse, che richiedono un'alta frequenza di aggiornamento dello schermo (giochi). Fino alla versione 8.0 esistevano DirectDraw (grafica 2D) e Direct3D (solo grafica 3D). Direct3DX: API di livello alto, si basa su Direct3D per offrire potenzialità simili con minore complessità. Le funzioni non supportate dall'hardware vengono emulate via software dalle DirectX grazie al Hardware Emulation Layer (HEL), a scapito delle prestazioni.

12 DirectInput Gestione input delle periferiche. Tastiera, mouse, joystick o altra periferica di gioco DirectPlay Fornisce supporto ai giochi di rete (non più supportato perché pesante) DirectSound Interfaccia con la scheda audio per la riproduzione- registrazione di effetti sonori DirectMusic Riproduzione di musica (MIDI, MP3). Offre la funzionalità di un sintetizzatore software DirectShow Gestione file multimediali (MPEG, MP3) e streaming via Internet DirectSetup Rileva le informazioni delle DirectX installate, eventualmente aggiorna le componenti DirectX Media Objects Permette la modifica di streams audio- video, usando DirectShow o DirectSound

13 Riprogettazione delle API Nuove DLL più veloci: Abbandono retrocompatibilità Windows Vista gestione parallela DirectX 10 versione ottimizzata e più performante DirectX 9.0L versione ottimizzata per il nuovo OS e retrocompatibile

14 DirectInput Modifica gestione periferiche di input Programmazione più semplice DirectSound Miglioramento qualità e gestione dellaudio DirectPlay Tramite tag permette di giocare online con un singolo username DirectShow Gestione più fluida/intelligente dei flussi audio e video DirectMusic Componente invariato Direct3D XACT (X3DAudio) Xinput Game for Windows Live Microsoft Media Foundation Direct3D10

15 Cambiamenti di rilievo: Maggiori possibilità per i programmatori (Shader Model 4.0 e Geometry Shaders) Specifiche hardware fisse Prestazioni migliorate (cicli di comando ridotti per frame) Riduzione Sovraccarico CPU: Riprogettazione chiamate di drawing e cambiamento di stato Riduzione dipendenza Scheda Video dalla CPU Esecuzione di più funzioni con un solo comando Insieme di istruzioni unificate (HLSL) Stream I/O (il Geometry Shader può scrivere nella memoria) Possibilità di Creare/Distruggere dati legati alla geometria della scena Ottimizzazioni anti-aliasing e supporto alla global illumination

16 DirectX 9 con Shader TradizionaliDirectX 10 con Unified Shader +Velocità +Parallelismo (DirectX 8 – Shader Model 1.0/1.1) : Separare nettamente i compiti in unità di elaborazione: Shader Pixel Shader: Maggior realismo della scena (illuminazione, texture) Vertex Shader: Calcoli su poligoni ed oggetti 3D (posizione) Miglioramento: Unified Shader 1 unità di esecuzione per tutte le istruzioni Più unità di esecuzione, parallelismo Unità per lelaborazione dei vertici Unità per lelaborazione dei pixel 2 Tipi di unità di esecuzione statiche 1 Tipi di unità di esecuzione intelligente

17 Versione Shader Model (Anno) 1.1 (2001)2.0 (2002)3.0 (2004) 4.0 (2006) Instruction Slots Vertex Pixel Constant Registers Vertex x4096 Pixel Temporary Registers Vertex Pixel Input Registers Vertex 16 Pixel Render Targets Samplers Textures Vertex Pixel 816 Max Texture Size x x8096 2D Texture Sizes ---- No Yes Integer Operations ---- No Yes Load Operations ---- No Yes Sample Offsets ---- No Yes Trascendental Operations Vertex No Yes Pixel No Derivative Operations ---- No Yes Flow Control Vertex ----SS/D Dynamic Pixel ---- S/D

18 Introdotti con DirectX 10 Gestione di intere geometrie Controllo di più vertici per volta (punto, linea, triangolo) A differenza dei Vertex Shader = 1 vertice alla volta Possibilità di creare geometrie senza passare dalla CPU Gestione ombre-illuminazione-texture tramite GPU Possibilità di lavorare con più elementi grafici

19 HLSL (High Level Shader Language) è un linguaggio sviluppato da Microsoft per la creazione di shader da usare in DirectX (Molto simile al linguaggio Cg di Nvidia) L'HLSL permette di scrivere complessi calcoli grafici che possono essere eseguiti molto velocemente dalla GPU, e rappresenta inoltre il primo passo per una pipeline grafica completamente programmabile Input Assembler Pixel Shader Output Merger Stream Output MEMORY VIDEO Vertex Shader Geometry Shader Rasterizer Schema Pipeline Grafica DirectX 10

20 Si possono inserire molti più elementi grafici nella scena, senza sovraccaricare la CPU Risultato grazie allintroduzione dei Geometry Shader:

21 DirectX 9.0c DirectX 10

22 DirectX 9.0c DirectX 10

23 DirectX 9.0c DirectX 10

24

25 DirectX 8.1 DirectX 10 DirectX 9.0

26 Tante promesse da parte di ARB Riscrittura dellintera API Innovazioni (in ambito di videogiochi) etc... Stato attuale, 11 Agosto 2008 OpenGL 3.0: Espansione OpenGL 2.1 Implementazione delle sole funzionalità supportate da DirectX 10 Rimozione Fixed Function Pipeline etc... Delusione da parte dei programmatori

27 Promoter Membership$25,000 annually Contributor Membership$7,500 annually

28 OpenGL ES (Embedded System) è un API multi piattaforma, con accesso completo a funzioni di grafica 2D e 3D su sistemi embedded (cellulari, PDA, console) E un sottoinsieme di funzioni OpenGL che rappresenta un interfaccia flessibile di basso livello tra SW e acceleratori grafici Vantaggi: Standard e royalty-free Poco spazio in memoria e Basso consumo energetico Estensibile ed in Evoluzione Facile da usare e Ben documentata

29 Dove trovare OpenGL ES? OpenGL ES su Symbian OS e Android OpenGL ES 1.0/2.0 e Cg(Nvidia) su Playstation 3 è una delle API grafiche ufficiali OpenGL ES 1.1 è la libreria grafica per liPhone SDK OpenGL ES 2.0 è usata sulla console Pandora

30 Dove? Windows Vista (Windows 7 e Futura console Microsoft) HW? Compatibilità con Schede Video DirectX Quando? Durante lanno, 2009 Novità? Shader Model 5.0 Tecnologia Tesselation: figure poligonali più dettagliate anche se viste da vicino Gestione Applicazioni Multi-threaded (CPU multi-core) Compute Shaders HLSL Version 5.0

31 OpenGL 3.0 è un solido passo nella direzione di rendere più snelle OpenGL, Trevett – Vice President di Khronos membro Nvidia – Ci sono elementi che sono stati pensati alla versione 3.0 e che usciranno nella versione 3.1 Uscita OpenGL 3.1 fra qualche mese

32 OpenGL Super Bible, Richard S. Wright, Benjamin Lipchack


Scaricare ppt "Corso di Elementi di Grafica Digitale Prof. Matjaz Hmeljak Anno Accademico 2008/2009 Presentazione di Maicol Petozzi."

Presentazioni simili


Annunci Google