Introduzione alla Computer Graphics Informatica Grafica CdLS a ciclo unico in Ingegneria Edile-Architettura a.a. 2008/09 Computer Graphics e Image Processing z Image processing – Insieme di teorie ed algoritmi per la elaborazione di immagini (raster) z z z z z 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 z z z z 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 z Ambito ludico – z Cinema ed intrattenimento – z z z z z Videogiochi, giochi per computer 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 z Non Real Time – Non ha importanza quanto tempo e’ richiesto per il rendering di un’immagine (e.g., CAD, computer art) z z z 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’ z z algoritmi semplici Hardware specializzato (GPU) 7 Rendering z z z z z Modellazione di oggetti tridimensionali Trasformazioni geometriche Illuminazione e shading Texture mapping Rasterizzazione 8 Modellazione di solidi - geometria z Geometria – “Triangle mesh”: superfici di solidi rappresentate come insieme di triangoli con vertici a comune 9 Modellazione di solidi – geometria (2) z Come rappresentare la triangle mesh Mesh = (V , T ) V = {vi | vi = ( xi , yi , zi )} , ( xi , yi , zi ) ∈ \3 T = {t j | t j = ( vl , vm , vn )} , vm ∈ V 10 Descrizione di un solido - aspetto z Texture Mapping – – Adattamento di un’immagine raster su una triangle mesh Conferisce realismo all’oggetto rappresentato 11 Trasformazioni geometriche z In coordinate omogenee – – z z 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 z z Vettori n+1 dimensionali (3 dim. per R2, 4 per R3) Trasformazioni affini, lineari e proiettive come moltiplicazioni di matrici – z Es: traslazione in R2 GPU ottimizzate per eseguire moltiplicazioni matriciali (~milioni di vertici/s) 13 Esempio Rappresentazione C. Cartesiane (2D) ⎡x ⎤ V =⎢ V⎥ ⎣ yV ⎦ Vertice 1. rotazione di angolo θ 2. traslazione di Δ x , Δ y 3. scalatura di s x , s y trasformazione finale MR ⎡ cos θ =⎢ ⎣ sin θ − sin θ ⎤ cos θ ⎥⎦ ⎡Δ x ⎤ Δ=⎢ ⎥ ⎣Δ y ⎦ ⎡ sx MS = ⎢ ⎣0 0⎤ s y ⎥⎦ V ' = M S ⋅ (M R ⋅V + Δ ) C. Omogenee ⎡ xV ⎤ V = ⎢⎢ yV ⎥⎥ ⎢⎣ 1 ⎥⎦ ⎡ cos θ M R = ⎢⎢ sin θ ⎢⎣ 0 ⎡1 M Δ = ⎢⎢ 0 ⎢⎣ 0 ⎡ sx M S = ⎢⎢ 0 ⎢⎣ 0 − sin θ cos θ 0 0⎤ 0 ⎥⎥ 1 ⎥⎦ Δx ⎤ 1 Δ y ⎥⎥ 0 1 ⎥⎦ 0 0⎤ s y 0 ⎥⎥ 0 1 ⎥⎦ 0 V ' = (M S ⋅ M Δ ⋅ M R ) ⋅V = M ⋅V 14 Rimozione delle superfici nascoste z Calcolo del p. scalare tra la normale alla superficie (piana) e l’angolo di visuale – z se positivo, superficie non visibile Ordinamento su z tra superfici visibili – Algoritmi complessi 15 Clipping dei poligoni z La rimozione di superfici, l’ordinamento in profondita’ ed i contorni dell’aera di visualizzazione creano nuovi vertici (nuovi triangoli) 16 Sottosistema raster z Calcolo del colore dei punti – z z Modelli di illuminazione Applicazione delle texture sulle superfici visibili Formazione del raster nel frame buffer della memoria video 17 Equazione della luce z Equazione di illuminazione JG w JJG w' Ω G n dw' θ x 18 Bidirectional Reflectance Distribution Function z z JJG JG BRDF, f r x, w ', w ( ) 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 z Riflessione – – – z Materiali opachi Diffusiva (sup. “scabra”) Speculare (sup. “liscia”) Rifrazione – Materiali trasparenti 20 Riflessione speculare e angolo di visuale G n JJG Lλ θ α JJG Rλ JG V θ ks JG JJG I r = I λ ⋅ k s ⋅ V ⋅ Rλ ( ) α α: esponente >1 1.2 alpha=1 alpha=2 alpha=10 alpha=100 1 ks: coefficiente di riflessione speculare 0.8 0.6 (caratteristiche del materiale) 0.4 0.2 0 0 0.5 1 1.5 2 21 -0.2 Riflessione diffusiva z Legge di Lambert – z – JJG Lλ La luce riflessa e’ z G n identica in ogni direzione Dipende dall’angolo di incidenza θ JJG Rλ θ JG V Non dipende dall’angolo di visuale JJG G I r = I λ ⋅ kd ⋅ Lλ ⋅ n ( ) 22 Modelli di illuminazione z Globale (CG Non Real Time) – Tengono conto di (alcune tra) z z z z – z 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 z z z Luci puntiformi, e nessuna riflessione 2o ordine Riflessione speculare e diffusiva (no rifrazione) G Nessuna ombra portata n JJG Lλ θ JJG Rλ JG V θ JJG G JG JJG α ⎤ ⎡ I = I tot ⋅ ka + ∑ I λ ⋅ kd ⋅ Lλ ⋅ n + k s ⋅ V ⋅ Rλ ⎢⎣ ⎥⎦ λ∈lights ( ) ( ) 24 Dove calcolare l’equazione di illuminazione z 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 z z Triangolo -> superficie piana 1 sola normale z Vertici condivisi tra triangoli nAB nA nB V1 nB nA TB TA V2 z z Calcolo il colore nei vertici Interpolo il colore nei punti interni z V3 Pseudo-normale sul vertice calcolata interpolando le normali a tutti i triangoli che contengono il vertice 26 Gouraud Shading (2) z z z 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 Problema: la riflessione speculare concentrata vicino ad un vertice viene “stirata” lungo il triangolo V1 TB TA V2 V3 27 Phong Shading z z z z z 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 V1 TA V2 V3 Piu’ conti, miglior resa grafica 28 Applicazione di texture z 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 − γ ) ⋅ I t + γ ⋅ I 0 ≤ γ ≤1 29 Bump mapping z 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 z Algoritmo di Bresenham z Annerire un solo pixel – – z 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 z Si divide la circonferenza in ottanti, e si fa il conto esatto per un solo ottante, replicando il resto per simmetria 32 Aliasing z Effetto di scalettatura dovuto al contrasto bianco/nero di pixel adiacenti 33 Verso il rendering fotorealistico z Modelli di illuminazione globale – – – Ray tracing Photon mapping Radiosity 34 Ray Tracing z Tiene conto di – – – Riflessione speculare e (in qualche modo) diffusiva Rifrazione (trasparenza) Ombre portate 35 Ray Tracing (2) z 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) z 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) z 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 z z z 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 z “sparare” fotoni nella scena, e calcolare come si distribuiscono dopo un certo numero di riflessioni/rifrazioni etc. z Mappa di fotoni come contributo aggiuntivo, ad esempio, al ray tracing – – Riflessione diffusiva Caustiche 42 Photon Mapping (2) z Esempio di formazione di caustica con photon mapping + ray-tracing 0 1000 2000 6000 fotoni 43 Rendering non fotorealistico z Applicazioni: – – – Disegno tecnico Entertainment (cartoni animati) Tecniche artistiche varie 44 Chi fa cosa nel rendering Real Time z Applicazione (e.g., gioco interattivo) – – z 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 z – modelli di illuminazione locali Crea il raster (…in un 15mo di secondo o meno) 45 Da Doom a AutoCAD z Fino agli anni ’90 – – z 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 z z z I costi si abbattono Schede video: ~ frame buffer + adattatore grafico + 3d acceleration GPU Le applicazioni grafiche diventano possibili su home PC 46