Introduzione alla Computer Graphics Informatica Grafica CdLS a ciclo unico in Ingegneria Edile-Architettura a.a. 2008/09 Computer Graphics e Image Processing Image processing Insieme di teorie ed algoritmi per la elaborazione di immagini (raster) Modifiche di contrasto, luminosita Individuazione di contorni di oggetti o regioni Correzione di colore Computer Graphics Insieme di teorie ed algoritmi per la visualizzazione (rendering) di solidi su uno schermo bidimensionale Trasformazioni geometriche di figure piane o di solidi Calcolo dell illuminazione e delle ombre Simulazione delle caratteristiche ottiche delle superfici (riflessione, rifrazione, trasparenza, opacita ) 2
Applicazioni della CG Ambito ludico Videogiochi, giochi per computer Cinema ed intrattenimento Un numero consistente di film, pubblicita, video, etc. adotta tecniche di CG CAD Visualizzazione scientifica Medical Imaging Simulazione e realta virtuale Geographical Information Systems 3 Esempio 1 (computer art) 4
Esempio 2 (Medical imaging, GIS) 5 Esempio 3 (computer games) 6
Il fattore tempo nella CG Non Real Time Non ha importanza quanto tempo e richiesto per il rendering di un immagine (e.g., CAD, computer art) algoritmi arbitrariamente complessi Non c e necessita di hardware specializzato Real Time il rendering di un immagine deve avvenire entro un tempo predefinito (e.g., giochi, applicazioni interattive), anche a costo di perdere in qualita algoritmi semplici Hardware specializzato (GPU) 7 Rendering Modellazione di oggetti tridimensionali Trasformazioni geometriche Illuminazione e shading Texture mapping Rasterizzazione 8
Modellazione di solidi - geometria Geometria Triangle mesh : superfici di solidi rappresentate come insieme di triangoli con vertici a comune 9 Modellazione di solidi geometria (2) Come rappresentare la triangle mesh Mesh = ( V, T ) ( ) { i i i, i, i }, ( i, i, i) { j j ( l, m, n) }, m V = v v = x y z x y z T = t t = v v v v V 3 10
Descrizione di un solido - aspetto Texture Mapping Adattamento di un immagine raster su una triangle mesh Conferisce realismo all oggetto rappresentato 11 Trasformazioni geometriche In coordinate omogenee Dai singoli oggetti ad un unico spazio 3d (world space) Proiezione del world space sul piano di vista Rimozione delle superfici nascoste Clipping dei poligoni 12
Coordinate omogenee Vettori n+1 dimensionali (3 dim. per R 2, 4 per R 3 ) Trasformazioni affini, lineari e proiettive come moltiplicazioni di matrici Es: traslazione in R 2 GPU ottimizzate per eseguire moltiplicazioni matriciali (~milioni di vertici/s) 13 Esempio Rappresentazione C. Cartesiane (2D) C. Omogenee xv xv Vertice V = y V = y V V 1 1. rotazione di angolo θ 2. traslazione di Δ, Δ 3. scalatura di s, s x x y y M R cosθ sinθ = sinθ cosθ M Δ Δ= Δ S x y M R s x 0 = 0 s M y cosθ sinθ 0 = sinθ cosθ 0 0 0 1 1 0 Δ x M Δ = 0 1 Δ y 0 0 1 S s x 0 0 = 0 sy 0 0 0 1 ' ' trasformazione finale V = M ( M V + Δ ) ( ) S R V = M M M V = M V S Δ R 14
Rimozione delle superfici nascoste Calcolo del p. scalare tra la normale alla superficie (piana) e l angolo di visuale se positivo, superficie non visibile Ordinamento su z tra superfici visibili Algoritmi complessi 15 Clipping dei poligoni La rimozione di superfici, l ordinamento in profondita ed i contorni dell aera di visualizzazione creano nuovi vertici (nuovi triangoli) 16
Sottosistema raster Calcolo del colore dei punti Modelli di illuminazione Applicazione delle texture sulle superfici visibili Formazione del raster nel frame buffer della memoria video 17 Equazione della luce Equazione di illuminazione w Ω n θ w ' ' dw x 18
Bidirectional Reflectance Distribution Function xw, ', w BRDF, fr ( ) Misura la quanita di luce riflessa in una data direzione Funzione della direzione del raggio incidente e della direzione di vista Si misura con gonioreflettometri 19 Fenomeni ottici rilevanti per il calcolo dell illuminazione Riflessione Materiali opachi Diffusiva (sup. scabra ) Speculare (sup. liscia ) Rifrazione Materiali trasparenti 20
Riflessione speculare e angolo di visuale n R λ L λ θ θ V α I = I k V R α r λ s ( ) λ k s α: esponente >1 ks: coefficiente di riflessione speculare (caratteristiche del materiale) 1.2 1 0.8 0.6 0.4 alpha=1 alpha=2 alpha=10 alpha=100 0.2 0 0 0.5 1 1.5 2-0.2 21 Riflessione diffusiva Legge di Lambert r La luce riflessa e identica in ogni direzione Dipende dall angolo di incidenza Non dipende dall angolo di visuale I = I k L n λ d ( ) λ n R λ L λ θ θ V 22
Modelli di illuminazione Globale (CG Non Real Time) Tengono conto di (alcune tra) Riflessioni (di ogni ordine) Ombre portate Rifrazione Trasparenza Ray Tracing, Photon Mapping, Radiosity Locale (CG Real Time) Il calcolo viene semplificato in modo tale che possa essere compiuto in tempi sufficientemente brevi Modello di Phong 23 Modello (locale) di Phong Luci puntiformi, e nessuna riflessione 2 o ordine Riflessione speculare e diffusiva (no rifrazione) Nessuna ombra portata n R λ L λ θ θ V I I k I = + k ( L n) + k ( V R ) α tot a λ d λ s λ λ lights 24
Dove calcolare l equazione di illuminazione Trade-off tra costo e resa Una volta per superficie (flat shading) In alcuni punti (e.g., nei vertici) in modo esatto e negli altri in maniera interpolata (Gouraud shading) In tutti i punti (Phong shading), piu adatto per superfici con riflessione localizzata 25 Gouraud Shading Triangolo -> superficie piana 1 sola normale Vertici condivisi tra triangoli n AB n A n B V 1 n B n A T B T A Calcolo il colore nei vertici Interpolo il colore nei punti interni V 2 V 3 Pseudo-normale sul vertice calcolata interpolando le normali a tutti i triangoli che contengono il vertice 26
Gouraud Shading (2) Calcolo esatto del colore sui vertici (applicando un modello di illuminazione), basandosi sulle pseudonormali calcolate colore nei punti interni ottenuto interpolando i colori calcolati nei vertici V 1 T B Problema: la riflessione speculare concentrata vicino ad un vertice viene stirata lungo il triangolo T A V 2 V 3 27 Phong Shading Ho le pseudo-normali nei vertici (calcolate come visto prima) Interpolo le pseudo-normali nei punti interni al triangolo (tutti, o alcuni) Calcolo il colore (applicando l equazione di Phong) per i punti dove ho una pseudo-normale (Eventualmente) interpolo il colore dove non ho pseudonormali T A V 1 V 2 V 3 Piu conti, miglior resa grafica 28
Applicazione di texture Se il texture non assorbe interamente la luce, il colore calcolato tramite il modello di illuminazione e l algoritmo di shading si puo comporre con il colore del texture ( γ ) ' I = 1 It + γ I 0 γ 1 29 Bump mapping Alterazione delle normali alla superficie Modifica la maniera in cui la luce viene riflessa Simula rugosita del materiale geometry + Bump map Modifica le normali = Bump mapped geometry 30
Rasterizzazione di poligoni Algoritmo di Bresenham Annerire un solo pixel Per ascissa (se la pendenza e < 45 ) Per ordinata (se la pendenza e > 45 ) Quello dove si concentra la maggior parte della linea 31 Rasterizzazione di circonferenze Si divide la circonferenza in ottanti, e si fa il conto esatto per un solo ottante, replicando il resto per simmetria 32
Aliasing Effetto di scalettatura dovuto al contrasto bianco/nero di pixel adiacenti 33 Verso il rendering fotorealistico Modelli di illuminazione globale Ray tracing Photon mapping Radiosity 34
Ray Tracing Tiene conto di Riflessione speculare e (in qualche modo) diffusiva Rifrazione (trasparenza) Ombre portate 35 Ray Tracing (2) Tracciare i singoli raggi luminosi Dall occhio alla sorgente luminosa (e non viceversa) Infatti, molti raggi emessi dalla sorgente non colpiscono l occhio (si sprecherebbe tempo) 36
Ray tracing (3) raggio primario: dall occhio al primo oggetto Se la superficie ha riflessione diffusiva: tanti raggi ombra quante sono le luci Si calcola l illuminazione del punto come somma dei contributi di ogni luce Si trovano le ombre portate 37 Ray tracing (4) Se la superficie ha riflessione speculare - rifrazione Si calcolano anche i raggi speculari / trasparenza secondo le leggi dell ottica Per ciascuno di questi si calcolano i raggi ombra, e cosi via 38
Alcuni esempi z Internet Ray Tracing Competition, www.irtc.org 39 Alcuni esempi (2) z http://www.q4rt.de/ 40
Limiti del ray tracing Resa non corretta della riflessione diffusiva In teoria, per calcolare il colore in A dovrei considerare anche il raggio 2-C-A Da A, invece che 2 raggi ombra, dovrei tirare infiniti raggi ombra C 41 Photon Mapping sparare fotoni nella scena, e calcolare come si distribuiscono dopo un certo numero di riflessioni/rifrazioni etc. Mappa di fotoni come contributo aggiuntivo, ad esempio, al ray tracing Riflessione diffusiva Caustiche 42
Photon Mapping (2) Esempio di formazione di caustica con photon mapping + ray-tracing 0 1000 2000 6000 fotoni 43 Rendering non fotorealistico Applicazioni: Disegno tecnico Entertainment (cartoni animati) Tecniche artistiche varie 44
Chi fa cosa nel rendering Real Time Applicazione (e.g., gioco interattivo) Stabilisce quali solidi debbano essere visualizzati Ne mette in memoria una descrizione (geometria e texture) Scheda video (con acceleratore 3d) Costruisce la scena 3d inserendo tutti i solidi in un sistema di coordinate comune Crea la vista 2d proiettando la scena sul piano dello schermo Stabilisce quali facce dei solidi sono visibili e quali non lo sono Applica texture e bump map su ciascuna superficie Calcola il colore (lighting) di ogni punto delle facce visibili modelli di illuminazione locali Crea il raster ( in un 15mo di secondo o meno) 45 Da Doom a AutoCAD Fino agli anni 90 Scheda video: ~ frame buffer + adattatore grafico Software grafico: macchine specializzate (Silicon Graphics), dal costo molto elevato 1993: Doom (~15M copie) Giochi che richiedono abilita di rendering cominciano ad avere grande diffusione Si apre un largo mercato per l hardware grafico I costi si abbattono Schede video: ~ frame buffer + adattatore grafico + 3d acceleration GPU Le applicazioni grafiche diventano possibili su home PC 46