La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Introduzione alla computer graphics

Presentazioni simili


Presentazione sul tema: "Introduzione alla computer graphics"— Transcript della presentazione:

1 Introduzione alla computer graphics

2 Sommario Cos’è la Computer Graphics (CG)
Ambiti di applicazione Breve Storia della Computer Graphics Tecnologie dei display Grafica Raster e Grafica Vettoriale

3 Cos’è la CG La Computer Graphics (CG) si occupa di sintesi di immagini, cioè delle tecniche di produzione di scene rappresentanti oggetti del mondo reale o contenuti astratti. Nel primo caso, entrano a far parte della CG anche tutte le tecniche volte a fornire una visualizzazione realistica del contenuto dell’immagine. Rendering foto-realistico Rendering non foto-realistico

4 Cos’è la CG Per contro, la disciplina che si occupa di analisi di immagini è denominata “Image Processing”. In questo caso gli obiettivi dell’elaborazione possono essere quelli di aumentare il contenuto informativo, ridurre il rumore, restaurare una immagine e così via. Image enhancement Image restoration Image analysis

5 Cos’è la CG In ogni caso in Image Processing si assume di partire da un’immagine digitale già acquisita e la si elabora, mentre in CG l’immagine digitale è l’obiettivo ultimo dell’elaborazione. Altri ambiti che si occupano di immagini digitali sono la “Computer Vision” e la “Pattern Recognition” .

6 Cos’è la CG La “Computer Vision” tenta di riprodurre i processi percettivi propri della visione basandosi su sistemi artificiali di acquisizione/elaborazione dei dati. Nell’ambito della “Pattern Recognition” si cerca di individuare la presenza di “strutture” più o meno complesse in un’immagine al fine di svolgere compiti di riconoscimento, sorveglianza, ispezione di manufatti per individuazione di guasti e così via.

7 Cos’è la CG Alcune tecniche di elaborazione sono ormai patrimonio della CG Fotoritocco: effetti speciali che sono trasformazioni operate sul contenuto informativo delle immagini di partenza. Image warping: trasformazioni delle strutture presenti in un’immagine a fini ludici o di correzione di deformazioni introdotte dai dispositivi di acquisizione.

8 Ambiti di applicazione della CG
Disegno delle interfacce utente Graphical User Interfaces (GUI) Interfacce Web (grafica bidimensionale abilitata da opportuni linguaggi di scripting e descrizione delle forme con formalismi XML)

9 Simulazioni Scientifiche (processi fisici, chimici...)
Professionali (simulazioni di dispositivi, CAD) Simulazione tridimensionale di onde e campi elettromagnetici

10 Simulazione metereologica

11

12

13 Il ciclo di vita di un film alla Pixar
Story department L'evoluzione degli storyboard da carta e matita a Photoshop e After Effects.

14 Art Department Sviluppo dei personaggi, delle ambientazioni e del "look" del film attraverso creta, photoshop, illustrator, sketchup e Maya.

15 Dare forma ai disegni La modellazione tridmensionale attraverso Maya.

16 Shading Shading dei modelli attraverso Maya, Photoshop e Illustrator e RenderMan usati attraverso il sistema proprietario di paint3D.

17 Elementi in Grafica 2D Elementi di grafica 2D attraverso Illustrator. Pipeline custom per la gestione degli elementi grafici.

18 Animazione Dare vita ai personaggi è una delle fasi sicuramente più affascinanti…

19 Animation Studio’s Dreamwork
1998, Z la formica

20 Animation Studio’s Dreamwork
2001, Shrek

21 2004 Shrek 2

22 2005 Magadascar (MAYA)

23 2006 Giù per il tubo

24 2008 Kung fu Panda(MAYA)

25 2010 Shrek e vissero felici e contenti

26 2011 Il gatto con gli stivali

27 Film in produzione 2012, Madagascar 3 2012, The Croods 2012, The Guardians 2013, Dragon Trainer 2

28 Avatar (MAYA) 2009

29 King Kong 2005

30 Blue Sky Studios L’era Glaciale

31 Pixar studio Animation
1995 Toy Story – Il mondo dei giocattoli

32 1998 - A Bug's Life - Megaminimondo

33 1999 - Toy Story 2 - Woody e Buzz alla riscossa

34 Monsters & Co.

35 Alla ricerca di Nemo

36 2004 - Gli Incredibili - Una "normale" famiglia di supereroi

37 2006 - Cars - Motori ruggenti

38 Ratatouille

39 Up

40 2010 - Toy Story 3 - La grande fuga

41 Cars 2

42 In produzione Monsters University About Dinosaurs That Takes You Inside the Mind Toy Story 4

43 Grafica Pubblicitaria
Lavatrici Ariston Aqualtis Ariston Hot Quadro Parmareggio Gocciole Pavesi

44 Intrattenimento Videogames

45

46 God of War III

47 Rayman Raving Rabbids

48 Realtà aumentata La Realtà Aumentata (dall'inglese Augmented Reality) è un sistema di grafica interattiva che permette di intervenire su un flusso di immagini video live, modificando la realtà con l’aggiunta, in tempo reale, di contenuti ed animazioni virtuali.

49 Realtà aumentata Realtà virtuale: si osserva su uno schermo la proiezione di un mondo totalmente fittizio e costituito interamente da oggetti virtuali. Realtà aumentata: non si è vincolati ad una visualizzazione su schermo, ma qualsiasi superficie può diventare un supporto per visualizzare il flusso video in Realtà Aumentata; ciò che viene ripreso, inoltre, è un’integrazione fra immagini reali ed oggetti virtuali. Per cui: realtà virtuale = mondo virtuale Realtà Aumentata = mondo reale + oggetti virtuali

50 Sistema di realtà aumentata
Schema di un sistema di realtà aumentata: meccanismo di riconoscimento di un particolare elemento grafico detto marker (una sorta di codice a barre bidimensionale ), un sistema di tracciamento dei movimenti (della webcam o del marker) e un engine per la creazione e l’animazione di oggetti tridimensionali. I marker sono degli elementi grafici, su cui è stampato un simbolo facilmente riconoscibile (anche quando ruotato), che vengono “individuati e tracciati” attraverso una videocamera.

51 Esempio di sistema di realtà aumentata

52 Navigatore con la realtà Aumentata

53 Applicazioni in Medicina
Ricostruzioni di parti anatomiche da TAC/RM/PET a fini diagnostici

54 Altre applicazioni Simulatori di volo: per l’addestramento di piloti civili e militari basati su realtà virtuale e realtà aumentata In cartografia: l’utilizzo di sistemi informativi territoriali consente la produzione di carte topografiche, schematiche e tematiche con facilità maggiore rispetto alle modalità manuali.

55 Interattività vs Non Interattività
La grafica generata con un calcolatore può o meno essere interattiva, ovvero può o meno permettere ad un operatore esterno di interagire in tempo reale con uno qualsiasi (o tutti) dei parametri della rappresentazione grafica Nel caso di grafica interattiva si richiede una risposta in tempo reale ai comandi dell’operatore; questo implica necessità di hardware particolari (schede grafiche acceleratrici, processori potenti,molta memoria) un modello semplificato di resa grafica (in genere le applicazioni interattive non sono fotorealistiche) Con la grafica non interattiva si possono raggiungere qualità dell’immagine elevate a piacere, è solo questione di quanto tempo si è disposti ad aspettare per generarle Entrambi i tipi di grafica sono interessanti ed hanno diverse applicazioni, a volte complementari;

56 Interattività vs Non Interattività

57 Schema di una applicazione grafica
In genere le applicazioni grafiche di cui discuteremo (e che implementeremo) si possono inquadrare, piu’ o meno, nel seguente schema: Vi è una descrizione di qualche tipo (procedurale o meno) del mondo che deve essere rappresentato. La produzione di tale descrizione (modello) prende il nome di modellazione. Da tale descrizione si ottiene una immagine bidimensionale; tale processo è chiamato globalmente rendering La sequenza di procedure ed algoritmi che implementano il rendering prende il nome di pipeline grafica; L’immagine ottenuta viene quindi visualizzata sullo schermo (in applicazioni interattive, per esempio) o salvata su file

58 Schema di una applicazione grafica
La descrizione del mondo che viene utilizzata dalla pipeline grafica comprende in genere tre elementi: 1. Gli oggetti che popolano il mondo; possono essere oggetti veri e propri (cubi, robot, mele..) oppure dati (punti nello spazio 3D, iso-superfici ..). Gli oggetti hanno proprietà posizionali (dove sono, come sono orientati etc) e di apparenza (di che colore, com’è fatta la superficie, se sono riflettenti etc) 2. Le luci che determinano le proprietà di illuminazione del mondo; hanno anch’esse proprietà posizionali, ma non di apparenza (tipicamente le luci non si vedono, al più si vedono degli oggetti che rappresentano l’emettitore di luce). 3. L’osservatore che descrive gli algoritmi che servono a generare una immagine 2D (lo schermo) dalla descrizione 3D del mondo, ovvero implementa una telecamera virtuale; anch’esso possiede proprietà posizionali, ma non di apparenza

59 Processo di modellazione
Il modello di un oggetto da rappresentare può essere ottenuto essenzialmente in tre modi: Manuale, ovvero viene “disegnato” tramite un opportuno strumento grafico. In genere si ottengono oggetti complessi assemblando assieme oggetti semplici; es sfera, questa spesso viene disegnata tramite il mouse, selezionando il centro e trascinando il puntatore fino ad ottenere il raggio desiderato. Automatica da strumenti che consentono l’acquisizione di un modello digitale di un oggetto reale. Per esempio le tecniche basate sulle immagini dell’oggetto sono molto studiate in Visione Computazionale, ed ultimamente anche in grafica. Spesso vengono indicare come Image based modeling Procedurale, ovvero viene generato tramite una procedura opportuna. Un esempio tipico sono gli oggetti frattali, che hanno varie applicazioni nella grafica al calcolatore, o gli oggetti geometrici, come sfere, cubi, poliedri regolari o altro. Ad esempio una sfera è ottenuta specificando il raggio e la posizione del centro, poi ci pensa una procedura basata sull’equazione analitica della sfera a disegnarla. Le tecniche si possono mescolare tra di loro.

60 Processo di modellazione
3d modeler 3d scanners Editor

61 3d scanners Modello: battistero di Cremona
Hardware: laser scanner + camera

62 3d scanners

63 Processo di rendering In base a tutte queste informazioni, dobbiamo effettuare un certo numero di passi per ottenere l’immagine desiderata: Proiezione: proiettare (geometricamente) la scena dallo spazio 3D allo spazio 2D dello schermo della telecamera virtuale. Shading: per ogni punto dell’immagine dobbiamo determinare il suo colore, che è funzione del colore della superficie dell’oggetto e della sua orientazione, della posizione delle luci e (nei modelli cosiddetti “globali”) della riflessione indiretta della luce da parte di altre superfici. Rimozione delle superfici nascoste: gli elementi più vicini alla telecamera coprono quelli più lontani: dobbiamo determinare quali superfici sono visibili e quali no. Rasterizzazione: quando sappiamo che colore assegnare a ciascun punto della immagine, il passo finale è mappare questa informazione sul display (ovvero: accendere i pixel).

64 Modellazione vs Rendering
In un immagine generata al calcolatore (3D o 2D, interattiva o meno) concorrono essenzialmente due elementi: I modelli geometrici degli oggetti (o dati) rappresentati Le loro caratteristiche di colore, ombreggiatura, tessitura, etc.; queste ultime vanno sotto il nome di shading Alle volte è praticamente impossibile ottenere un modello di un oggetto con i dettagli desiderati; in tal caso si aggiungono i dettagli nella fase di rendering (alterando lo shading). In genere è uno spreco di risorse costruire un modello complicato quando è possibile ottenere lo stesso effetto con un modello semplice ed un suo opportuno shading.

65 Shading Add Lines Add colors Distance falloff “Real world” shading

66 Breve storia della CG La CG nasce insieme ai calcolatori, ma si mantiene fuori dal mercato del grande consumo per effetto dei costi elevati dei dispositivi grafici. Il suo sviluppo nasce dalla necessità di rappresentare in maniera semplice e altamente flessibile i dati elaborati dal calcolatore; è il caso di applicazioni scientifiche e di simulazione di processi.

67 Breve storia della CG Problemi connessi con la larga diffusione delle applicazioni di CG: costo HW grafico necessità di elevate risorse computazionali difficoltà di scrivere programmi interattivi (epoca del FORTRAN) SW dedicato per l’HW grafico.

68 Breve storia della CG La diffusione, negli anni '80, dei primi calcolatori (ad esempio Apple Macintosh) che usano monitor con display di concezione moderna favorisce lo sviluppo di applicazioni grafiche per uso diffuso Prime fra tutte si sviluppano le interfacce grafiche che consentono agli utenti inesperti di interagire con sistema operativo e le applicazioni presenti su un calcolatore.

69 Breve storia della CG I primi display per la visualizzazione grafica sono basati sull’uso di monitor del tipo televisivo in cui un “Tubo a Raggi Catodici” (Cathode Ray Tube: CRT) forma le immagini comandando la deflessione di un fascio focalizzato di elettroni (pennello elettronico). Il fascio è in grado di colpire qualunque punto del fondo del tubo sul quale è disposto uno strato di materiale fotosensibile (fosfori) che reagisce all’impatto emettendo luce.

70 Tubo a raggi catodici

71

72 Architettura del sistema

73 Il Video controller Il componente hardware che, all’interno dell’ambiente computer-monitor è responsabile di guidare il fascio elettronico è il video controller che trasforma informazioni grafiche(digitali) in impulsi elettrici (analogici). La tecnologia del video controller può essere di due tipi: raster o vettoriale.

74 I primi dispositivi di output grafico basati sull’uso del CRT, erano detti vettoriali (dove il termine vettoriale è da intendersi come sinonimo di lineare). In questi dispositivi, il fascio di elettroni può muoversi direttamente da una posizione all’altra, guidato dal computer, secondo l’ordine arbitrario dei comandi di display, e durante il moto traccia una linea. Chiaramente, annullando l’intensità del fascio, questo può essere spostato in una nuova posizione, senza modificare l’immagine visibile sullo schermo. Questa tecnica, chiamata random scan (scansione casuale), è rimasta in uso fino agli anni settanta, quando hanno cominciato a diffondersi i sistemi di grafica raster, basati sulle tecnologia televisiva.

75

76

77 Il termine raster (o percorso di scansione) è sinonimo di matrice.
Nella grafica raster, ogni immagine viene infatti rappresentata tramite una matrice di elementi, i cosiddetti pixel, ciascuno dei quali corrisponde ad una precisa porzione dell’immagine. L’elaborazione delle immagini è dunque basata su matrici di pixel, che vengono memorizzate in un’apposita area di memoria, il frame buffer, localizzata nella memoria della CPU, o in una memoria separata. Il contenuto del frame buffer, ovvero la rappresentazione in memoria delle matrici di pixel, è chiamato pixmap (da pixel map) o bitmap. La risoluzione del frame buffer, definita dal numero di pixel che può memorizzare, determina la qualità dell’immagine visualizzata.

78

79

80 L’immagine complessiva su un display di tipo raster si ottiene effettuando una scansione sistematica, raster scan, della matrice di pixel attraverso il fascio di elettroni, ovvero scorrendo sequenzialmente le linee di scansione orizzontali, composte da righe di pixel, una alla volta, e regolando l’intensità del fascio in modo da riflettere l’intensità di ciascun pixel. Ogni volta che il fascio di elettroni completa un ciclo di scansione, si dice che il CRT è refreshed.

81 I principali vantaggi della grafica raster rispetto a quella vettoriale includono costi più bassi (grazie allo sviluppo tecnologico che ha reso disponibili memorie di capacità elevata a basso costo) e la possibilità di visualizzare aree piene di colore, e disegni. Uno dei principali svantaggi consiste invece nella natura intrinsecamente discreta della rappresentazione tramite pixel: le primitive grafiche (quali linee, cerchi, poligoni), devono essere convertite nelle matrici di pixel che meglio le rappresentano, per poter essere visualizzate su un display di tipo raster. Questa operazione è chiamata scan conversion. Inoltre, mentre nella grafica vettoriale è possibile disegnare curve continue tra una qualsiasi coppia di punti del CRT, la riduzione a matrici di pixel può comportare problemi di frastagliamento delle immagini.

82 Monitor LCD Cristalli liquidi: determinate sostanze cristalline con struttura tipica di un solido, che se opportunamente riscaldate assumono una consistenza semiliquida, pur mantenendo una struttura cristallina al loro interno. I cristalli liquidi al microscopio appaiono come dei piccoli filamenti. I filamenti cristallini facendo parte di una sostanza semifluida sono caratterizzati da una certa libertà di movimento ed inoltre rifrangono i fasci di luce su di essi emessi. La rifrazione dipenderà dal loro orientamento. Questi filamenti, sotto lo stimolo di un opportuno campo elettrico possono modificare il proprio orientamento e di conseguenza modificare le caratteristiche del fascio di luce che li attraversa. I display a cristalli liquidi (LCD) dipendono da una sorgente di luce esterna. Essi funzionano polarizzando la luce dell’ambiente esterno. Alla base del funzionamento dei monitor LCD troviamo l’utilizzo della luce polarizzata.

83 La luce è un’onda elettromagnetica che viaggia nel vuoto
La luce è un’onda elettromagnetica che viaggia nel vuoto. E' di solito non polarizzata in quanto prodotta da cariche elettriche che vibrano in tutte le direzioni . E' possibile trasformare la luce non polarizzata in luce che vibra in una sola direzione (luce polarizzata linearmente).Il processo si dice di polarizzazione. La luce viene polarizzata facendole attraversare un filtro che permette il passaggio solo di vettori luminosi posti su piani paralleli (es: solo orizzontali o solo verticali etc..). 

84 Se polarizzassimo la luce per piani orizzontali e questa incontrasse poi un filtro che polarizza per piani verticali, essa non potrebbe passare e verrebbe quindi bloccata totalmente. Per passare attraverso un filtro polarizzante per piani verticali la luce polarizzata orizzontalmente necessita di essere ruotata di 90°.

85 I monitor LCD sono composti da ben sette strati
I monitor LCD sono composti da ben sette strati. Internamente abbiamo delle lampade a fluorescenza che producono la luce. Poi un pannello che polarizza la luce per orizzontali e due pannelli centrali che racchiudono uno strato di celle contenenti i cristalli liquidi. Più esternamente abbiamo un altro pannello che polarizza la luce per piani orizzontali. E infine il cristallo esterno del display LCD.

86 Non viene applicato nessun campo elettrico
Non viene applicato nessun campo elettrico. I cristalli presentano la tipica disposizione a elica. La luce, che entra polarizzata orizzontalmente, ruota di 90° seguendo i cristalli e può così attraversare il filtro di polarizzazione verticale Viene applicato un campo elettrico. I cristalli vengono attivati e perdono la loro disposizione a elica. La luce, polarizzata orizzontalmente, non può più seguire i cristalli e non viene quindi ruotata. Arrivando ancora polarizzata orizzontalmente contro il filtro di polarizzazione verticale, la luce viene quindi bloccata.

87 Retroilluminazione a LED
Quando si parla di schermi a LED non si intende una nuova tecnologia di generazione dell'immagine. Un termine più appropriato sarebbe "schermo LCD basato su retroilluminazione a LED" in quanto il pannello che produce le immagini resta quello di uno schermo piatto tradizionale. All'interno dello schermo a LED la luce emessa da 2160 piccoli LED rossi, verdi e blu, si combina per formare una luce bianca. Il fascio di luce attraversa una piastra di diffusione che la rende omogenea. Il vantaggio più evidente rispetto alla lampada tradizionale è la migliore qualità dei colori: il neon degli schermi LCD tradizionali, non restituisce infatti un bianco perfetto e la luce deve essere corretta utilizzando filtri di colore che non garantiscono risultati sorprendenti.La luce bianca illumina quindi il pannello a cristalli liquidi per formare l'immagine finale. La durata dello schermo LCD basato su tecnologia a LED è nell'ordine delle 100 mila ore mentre quella di uno schermo tradizionale è di 50 mila ore. Grazie alla tecnologia a LED è possibile costruire degli schermi sottilissimi spessi anche un paio di millimetri.

88 Evoluzione dei controllori grafici
Pipeline di rendering Cenni storici sui controllori grafici Implementazione della pipeline di rendering Pipeline logica programmabile Pipeline mappata sul processore Architetture dei sistemi GPU Cenni alla programmazione delle GPU

89 Pipeline di rendering

90 Cenni storici sui controllori grafici
Video and Graphics Array controller - VGA (<1990) Controllore di una memoria DRAM chiamata framebuffer e generatore di segnali (RAMDAC) collegato direttamente al video Basato sul principio della grafica vettoriale Implementa l’aritmetica intera indicizzata 1990 – 1997 circa Si aggiungono funzioni al controllore VGA Gestione triangoli Rasterizzazione triangoli Shading

91 Cenni storici sui controllori grafici
Anni 2000 Chip integrato che incorpora praticamente tutti gli elementi di una pipeline di rendering Nasce la Graphics Processing Unit (GPU) > 2005 GPU con implementazione dell’aritmetica in virgola fissa e mobile GPU programmabili API di alto livello (OpenGL, Direct3D) shaders delle geometrie, dei vertici e dei pixel

92 Architettura GPU Unificata di base
Adesso (>2008 circa) I processori sono massicciamente paralleli e multithread Streaming Processors (SP) a flusso continuo Gli SP sono organizzati in Streaming Multiprocessors (SM) La memoria è condivisa due livelli Dentro lo SM tra gli SP Tramite rete di interconnessione tra gli SM Soluzione scalabile

93 Pipeline mappata su schiera di processori
Adesso (>2008 circa) L’esecuzione degli shaders viene mappata sulla “schiera di processori unificati”

94 Architettura di una GPU unificata
Arch. TESLA 112 SP 14 SM 1 SP  96 thread DRAM 64 bit NVIDIA GeForce 8800

95 Programmazione Grafica
Tre livelli API grafiche OpenGL Direct3D Linguaggi di shading GLSL HLSL Cg API di programmazione diretta dei core SP CUDA OpenCL

96 API grafiche Sono API di alto livello che definiscono logicamente la pipeline di rendering L’applicazione si sviluppa definendo i vari stadi con primitive di alto livello I dettagli sono nascosti allo sviluppatore e gestiti dalle API

97 Linguaggi di shading Gestiscono i tre tipi di shader
Shader dei vertici Mappano la posizione dei vertici dei triangoli nello schermo, modificando posizione, colore e orientamento Shader delle geometrie Lavorano sulla base di primitive geometriche (ad es. interi triangoli) definite come insiemi di vertici; le modificano ovvero ne aggiungono di nuove Shader dei pixel (o dei frammenti) Dipingono il pixel sullo schermo e gestiscono gli artefatti visivi

98 Linguaggi di shading Gli shader sono programmati a “a flusso continuo” cioè su sequenze ininterrotte di dati; l’I/O è implicito Le strutture di dati su cui operano consentono un elevato parallelismo e quindi possono essere lanciati più thread dello stesso shader Hanno primitive per operazioni trigonometriche e su matrice, interpolazione, filtraggio …

99 Programmazione dei core SP
Sono API per programmazione general purpose su GPU GPGPU: General Purpose computing on GPU Il problema viene parallelizzato mappandolo sull’architettura Il programmatore CUDA scrive una procedura detta kernel che istanzia tante esecuzioni di thread paralleli

100 Programmazione CUDA I thread sono organizzati gerarchicamente in blocchi 1D, 2D o 3D i quali sono organizzati in griglie 1D, 2D o 3D Il mapping dipende dai core SP disponibili ed è scelto dal programmatore


Scaricare ppt "Introduzione alla computer graphics"

Presentazioni simili


Annunci Google