Rendering. Dove si descrivono i principali metodi di alto livello utilizzati per ottenere una immagine a partire da una descrizione degli oggetti 3D

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Rendering. Dove si descrivono i principali metodi di alto livello utilizzati per ottenere una immagine a partire da una descrizione degli oggetti 3D"

Transcript

1 Rendering Dove si descrivono i principali metodi di alto livello utilizzati per ottenere una immagine a partire da una descrizione degli oggetti 3D Introduzione Rendering di mesh poligonali 3D Viewing Clipping Shading Rimozione delle facce nascoste Scan conversion La rendering pipeline Rendering di altre descrizioni

2 Grafica al Calcolatore Rendering - 1 Introduzione Modeling (modellazione) e Rendering sono i due stadi principali della pipeline grafica. Fin ora abbiamo parlato di modellazione. Il termine rendering indica la serie di algoritmi, geometrici e non, a cui si sottopone una data descrizione di una serie di oggetti per ottenere una immagine Le descrizioni possono essere: mesh poligonali superfici parametriche CSG volumetriche Per ogni descrizione esistono tecniche ad hoc. Ci occuperemo nel dettaglio di mesh poligonali, perché: sono la rappresentazione più diffusa le altre rappresentazioni si possono ricondurre a questa.

3 Grafica al Calcolatore Rendering - 2 Rendering di mesh poligonali L ingresso è una lista di poligoni, e l uscita è una immagine, ovvero una matrice di pixels a ciascuno dei quali è associato un colore. Rendering Modeling front end Geometric processing back end Rasterization Display Transformations Clipping Projection Hidden surface removal Shading Scan conversion La primitiva geometrica che viene processata sono i poligoni Tuttavia il processo può essere object driven oppure image driven, a seconda che il ciclo più esterno sia sui poligoni o sui pixel (Angel pg. 284).

4 Grafica al Calcolatore Rendering - 3 3D Viewing Vedremo come vengono gestite dal punto di vista geometrico le trasformazioni 3D e la proiezione prospettica. In molti sistemi grafici (e OpenGL non fà eccezione) il processo coinvolge diversi sistemi di riferimento e trasformazioni tra di essi. Uno di questi è la proiezione. Il motivo dell esistenza di diversi sistemi di riferimento sarà chiaro nel seguito.

5 Grafica al Calcolatore Rendering - 4 Sistemi di coordinate Spazio Locale (local space): è lo spazio dove ciascun singolo oggetto viene definito. Si chiama anche spazio oggetto (object space) o spazio di modellazione (modeling space) Spazio Mondo (world coordinate system): è lo spazio dove la scena o l oggetto completo è rappresentato. Spazio Vista (view space): è un sistema di riferimento centrato sulla telecamera virtuale, che definisce il volume (o frustum) di vista. Si chiama anche camera coordinate system o empheye coordinate system. Spazio 3D-Screen: è lo spazio di vista canonico, che si ottiene trasformando (con deformazione) il volume di vista (frustum) in un parallelepedo. Molte operazioni del processo di rendering avvengono qui (in 3D normalized device coordinates). Spazio Immagine è il sistema di coordinate della immagine finale (pixel). Si ottiene proiettando ortogonalmente il volume di vista canonico e trasformando le coordinate 2D.

6 Grafica al Calcolatore Rendering - 5 Proiezione prospettica Y image plane X P image P C pinhole Z object d Il modello geometrico più semplice della formazione dell immagine è la pinhole camera (letteralmente: macchina fotografica a foro di spillo.) Sia P un punto della scena, di coordinate (x, y, z) e sia P la sua proiezione sul piano vista (o immagine), di coordinate (x, y, z ). Se d è la distanza del foro (o centro di proiezione) C dal piano immagine (distanza focale), allora dalla similarità dei triangoli si ottiene: x d = x z e y d = y z (1)

7 Grafica al Calcolatore Rendering - 6 e quindi x = dx z y = dy z z = d (2) Si noti che l immagine è invertita rispetto alla scena, sia destra-sinistra che sopra-sotto, come indicato dal segno meno. Queste equazioni definiscono il processo di formazione dell immagine che prende il nome di proiezione prospettica. In forma matriciale si può effettuare la proiezione prospettica, applicando ai punti P rappresentati in coordinate omogenee ( P = (x, y, z, 1)) la matrice di proiezione prospettica 3 4: M = /d 0 dove d è la distanza tra C ed il piano vista (distanza focale). Si ottiene cosìuna tripla P = (x, y, z/d), che rappresenta in coordinate omogenee il punto di coordinate cartesiane P = ( x, y ). P è la proiezione di P sul piano (z/d) (z/d) vista.

8 Grafica al Calcolatore Rendering - 7 La divisione prospettica (o normalizzazione proiettiva) indica il passaggio da coordinate omogenee a coordinate cartesiane e consiste nel dividere per l ultima coordinata omogenea e rimuovere l 1 rimanente. Da notare che nella proiezione si perde l informazione di profondità di un punto, ovvero punti con z iniziale di partenza diversa vengono proiettati nello stesso punto sul piano proiettivo Vi è modo di recuperare tale informazione? Vedremo nel seguito che sarà molto importante poter stabilire dati due punti proiettati nella stessa posizione quale dei due ha profondità (distanza dal piano vista) minore

9 Grafica al Calcolatore Rendering - 8 Spazio vista Lo spazio vista (o view space) è un sistema di coordinate centrato sulla telecamera con l aggiunta della specifica di un volume di vista: un view point C, che stabilisce la posizione dell osservatore nel world space e definisce il centro della proiezione. un sistema di riferimento desctrorso UVN centrato sull osservatore, che definisce la direzione di vista - N e la direzione verticale V (U non ha scelta e punta alla destra dell osservatore). un piano vista (view plane), ortogonale a N e distante d da C, sul quale viene proiettata la scena un volume di vista (o frustum), definito da due piani di taglio (clipping) paralleli al view plane, il near plane ed il far plane. L intersezione del frustum con il piano vista definisce la finestra di vista

10 Grafica al Calcolatore Rendering - 9 far plane y V view plane w near plane z N C U x d θ n h f Il frustum è definito dall angolo di vista (verticale) θ e dal fattore di aspetto a = w/h della finestra di vista.

11 Grafica al Calcolatore Rendering - 10 In linea di principo, nello spazio vista si potrebbe effettuare la proiezione prospettica, applicando ai punti P la matrice la matrice di proiezione prospettica vista prima. si noti che abbiamo messo il piano vista davanti al centro di proiezione, ma l asse Z punta indietro, quindi le equazioni della proiezione prospettica rimangono inalterate. La proiezione viene effettuata in modo più contorto (apparentemente) di quello appena visto introducendo la trasformazione prospettica (che porta nello spazio 3D-Screen) per poter aggiungere informazione di profondità ai punti proiettati.

12 Grafica al Calcolatore Rendering - 11 Spazio 3D-Screen Trasformazione prospettica Invece di proiettare i punti, applichiamo loro la trasformazione 3D specificata dalla seguente matrice (parente della matrice di proiezione prospettica a ); M = /d 0 Si ottiene cosìuna 4-pla P = (x, y, z, z/d), che dopo la divisione prospettica sortisce P = ( x, y, d) (z/d) (z/d) Le prime due componenti di P sono le coordinate del punto proiettato. La terza coordinata è inutile, nel senso che è uguale a d per tutti i punti proiettati (infatti il piano vista ha equazione z = d). Si osservi che non viene etteffuata alcuna proiezione, anche se le coordinate del punto proiettato prospetticamente sono disponibili. a Angel chiama questa matrice di trasformazione prospettica

13 Grafica al Calcolatore Rendering - 12 Si vuole costruire una trasformazione che abbia le stesse coordinate x ed y della proiezione standard, ma che metta nella coordinata z un valore dal quale si possa risalire all ordine di profondità dei punti. A tal scopo sostituiamo la matrice M vista prima con la seguente matrice (che prende il nome di matrice di trasformazione prospettica b ): M = α β 0 0 1/d 0 Applicando M a P si avrà quindi la 4-pla (x, y, αz + β, z/d) che, dopo la divisione prospettica fornisce P = ( x, y, dα dβ/z) (z/d) (z/d) Le prime due componenti sono identiche alla proiezione standard, ma la terza componente (pseudo-profondità) z s = dα dβ/z. per valori opportuni di α e β è una funzione monotona di z. La relazione tra z e z s è non lineare, ma l ordinamento sulla profondità è conservato. b Angel la chiama matrice di normalizzazione prospettica

14 Grafica al Calcolatore Rendering - 13 Volume di vista canonico La trasformazione (normalizzazione) prospettica mappa il frustum di vista in un parallelepipedo (per αeβ opportuni) chiamato volume di vista canonico. Gli oggetti vengono distorti di conseguenza. Proiettando questo parallelepipedo ortogonalmente (ovvero si elimina la terza coordinata cartesiana, z s nel nostro caso) si ottiene la proiezione prospettica desiderata. y y s z x z s x s sintetizzando, la proiezione prospettica viene realizzata in due fasi: proiezione prospettica = trasformazione prospettica + proiezione ortografica Se invece si voleva effettuare una proiezione ortogonale (ortografica), basta sostituire la trasformazione prospettica con una trasformazione (affine) che mappa il volume di vista (un parallelepipedo in questo caso) nel volume di vista canonico.

15 Grafica al Calcolatore Rendering - 14 Diversi sietemi (PHIGS, OpenGL, Renderman,...) adottano convenzioni diverse per le dimensioni del volume di vista canonico. In OpenGL il volume di vista canonico un cubo di lato unitario, in cui il far plane ha equazione z s = 1, ed il near plane z s = 1 Vogliamo dunque scegliere α e β in modo che l intervallo di profondità z [n, f] venga mappato in z s [ 1, 1]. z= f y z= n y=+1 y z z piano immagine piano immagine y= 1 z=+1 z= 1 Nota: il piano vista si prende coincidente con il near plane, dunque d = n.

16 Grafica al Calcolatore Rendering - 15 Una tale trasformazione è implementata dalla seguente matrice di trasformazione prospettica con M = c/a c α β α = f + n n f β = 2fn n f c = cot(θ/2) Si può verificare trasformando i vertici del frustum di vista. Questa matrice 4 4 viene chiamata anche (in terminologia OpenGL) matrice di proiezione (projection matrix) anche se, a rigore, non effettua una proiezione dello spazio 3D, ma una sua trasformazione. Si noti che abbiamo sempre considerato la trasformazione operata da una matrice in coordinate omogenee composta da: moltiplicazione matrice-vettore seguita da divisione prospettica. Risulterà utile per il clipping separare le due operazioni (vedi pipeline OpenGL).

17 Grafica al Calcolatore Rendering - 16 Spazio Immagine La trasformazione nello spazio immagine si applica dopo la proiezione ortografica. Dipende dalle caratteristiche del display (in senso ampio) Ai punti proiettati del 3D screen viene applicata una matrice di trasformazione affine che : ripristina il fattore di aspetto corretto per l immagine (distorto dalla trasformazione prospettica) scala e trasla l immagine per aggiustarla alla finestra di vista corrente (es )

18 Grafica al Calcolatore Rendering - 17 Clipping Il clipping consiste nella rimozione dei poligoni che cadono fuori dal volume di vista. avviene nello spazio 3D screen: infatti lavorando con il volume di vista canonico, l operazione risulta semplificata, poiché le facce del volume di vista sono ortogonali. I due principali algoritmi di clipping sono (non li vedremo, ma sono spiegati nell Angel, a pg. 288 e seguenti): Cohen-Sutherland Liang-Barsky Esempio di uso del near plane per vedere all interno degli ogetti. c Alan Watt

19 Grafica al Calcolatore Rendering - 18 Shading Gli algoritmi di shading consentono di colorare i poligoni, ovvero di assegnare un colore ai pixels sui quali il poligono viene proiettato. A monte serve un modello di riflessione locale consente di asseganre un colore a ciscun punto di una superficie (3D). Il modello di riflessione locale è trattato in un altro capitolo. Qui diciamo solo che per calcolare il colore di un punto servono: la normale M della superficie nel punto, il vettore V che punta verso l osservatore (direzione di vista) ed il vettore L che punta verso la sorgente luminosa.

20 Grafica al Calcolatore Rendering - 19 In una mesh poligonale a cisascun vertice di un poligono è associata una normale M. Ogni faccia ha una lista di vertici e di normali di vertice (quindi lo stesso vertice può essere associato a normali diverse) Tipicamente: Se la superficie da rappresentare è poliedrica allora ciascun vertice di una faccia ha la medesima normale (la normale della faccia). Se invece la mesh è una approssimazione di una superficie interpolante, in ciascun vertice mettiamo la normale alla superficie. Comunque possiamo mettere quello che vogliamo: la normale di vertice è non è un concetto definito matematicamente. dunque l applicazione del modello di riflessione avviene sui vertici dei poligoni (nello spazio vista) quelli che vediamo sono essenzialmente schemi di interpolazione di valori calcolati sui vertici dei poligoni, che si applicano durante il processo di scan-conversion del poligono.

21 Grafica al Calcolatore Rendering - 20 Flat shading Il flat shading è il più semplice di tutti: si colora una faccia con un colore. Se la normale fosse definita per la faccia, si colorerebbe il poligono con il colore ottenuto usando la sua normale M ed il modello di riflessione locale. Poiché la normale è definita sul vertice, si calcola il colore su un solo vertice del poligono (il primo che si incontra) usando il modello di riflessione locale, e si applica quel colore a tutto il poligono. Nota: Per una suprficie poliedrica, se il punto di vista e la sorgente luminosa sono lontani, i vettori V ed L sono costanti su una faccia, quin di è corretto, secondo il modello di riflessione locale, assegnare un solo colore a tuta la faccia.

22 Grafica al Calcolatore Rendering - 21 Vantaggi: semplicità e velocità Svantaggi: Si percepiscono distintamente i poligoni. Questo effetto è indesiderato quando la mesh rappresenta una superficie continua. La normale, infatti, varia e quindi anche il colore associato a triangoli vicini. c Alan Watt Anche nel caso di superfici piatte, se osservatore e luce sono vicini, mentre M è costante su tutta la superficie, V ed L cambiano da triangolo a triangolo, quindi i triangoli hanno colori diversi, e si può percepire la transizione.

23 Grafica al Calcolatore Rendering - 22 c Alan Watt

24 Grafica al Calcolatore Rendering - 23 Gouraud shading È la tecnica di shading interpolative più antica, e la più semplice (veloce) che produce una variazione dell intensità atraverso il poligono. si considerano le normali di vertice; si calcola il colore in ogni vertice usando il modello di riflessione locale; si calcola l intensità luminosa dei punti interni al poligono con interpolazione bilineare (vedi esempio di rasterizzazione in fondo) Se la normale alla superficie soggiacente non è disponibile, si può calcolare una normale di vertice fittizia prendendo la media delle normali dei poligoni che condividono il vertice (idea di Gouraud); Nota: nel caso di una superficie poliedrica, in cui le normali ai vertici di ciascuna faccia sono le stesse, si ha lo stesso effetto del flat shading, visto che ai vertici del poligono viene associato il medesimo colore.

25 Grafica al Calcolatore Rendering - 24 Vantaggi: attenua il salto di colre tra facce adiacenti, è semplice e veloce (è solo poco più oneroso di flat). Svantaggi: Non elinina completamente la percezione dei poligoni e non rende bene le riflessioni speculari (highlights). c Alan Watt

26 Grafica al Calcolatore Rendering - 25 c Alan Watt

27 Grafica al Calcolatore Rendering - 26 Phong shading Maggiore realismo si ottiene con il metodo di interpolazione di Phong (da non conforndersi con il modello di riflessione locale di Phong). Le normali dei vertici vengono interplate all interno del poligono. La normale interpolata viene usata nel modello di riflessione locale per calcolare il colore dei punti interni al poligono. Il metodo cattura le riflessioni speculari poiché usa il modello di riflessione locale anche sui punti interni del poligono.

28 Grafica al Calcolatore Rendering - 27 Vantaggio: buon realismo. Svantaggi: è circa 5 volte più lento di Gouraud. Per questo spesso confinato all uso off-line. bisogna tirarsi dietro le normali fino alla fase di scan-conversion (quando vengono dipinti i poligoni). Infatti OpenGL non lo supporta per questo motivo: le normali vengono abbandonate dopo la proiezione prospettica c Alan Watt

29 Grafica al Calcolatore Rendering - 28 c Alan Watt

30 Grafica al Calcolatore Rendering - 29 Tecniche di miscelazione Vediamo ora alcune tecniche di miscelazione (compositing) di colori. Per pirma cosa come si rappresenta il colore di un pixel? Ci sono essenzialmente due modi: 1. Indicizzato: viene costruita una tabella di colori predefiniti (la cosiddetta palette); ad ogni pixel si può quindi associare semplicemente un numero intero che indica una posizione nella palette. In genere la dimensione della palette è di 256 elementi a cui corrisponde un frame-buffer a 8-bit di profondità di colore. 2. True color: viene associato ad ogni pixel direttamente un colore parametrizzato dalla sue componenti RGB. In genere ciascuna componente può assumere 256 valori, da 0 a 255; si ha quindi un frame-buffer a 24-bit di profondità di colore. La rappresentazione con RGB non è l unica parametrizzazione di un colore; è quella usata dalle OpenGL, quindi non ne vediamo altre. Nelle OpenGL si possono specificare le componenti RGB con valori float tra 0 e 1 In genere si può associare una quarta componente ad ogni pixel, detta α. Si ha a che fare in tal caso con un frame-buffer RGBA a 32-bit; la componente α può essere usata per esempio per specificare un valore di opacità del pixel.

31 Grafica al Calcolatore Rendering - 30 Opacità In generale si può associare ad un punto oltre all intensità di colore calcolata anche un coefficente di opacità k o compreso tra zero ed uno Se in un punto k o è pari a uno, allora il punto è completamente opaco e si effettua uno shading normalmente con le tecniche che vedremo in questo capitolo. Se k o è pari a zero allora in quel punto l oggetto è completamente invisibile; lo shading di quel punto non conta e bisogna vedere come è colorato il punto che sta otticamente dietro Per valori di k o intermedi bisogna fare un blending del colore I associato a quel punto dal modello di shading ed il colore dietro.

32 Grafica al Calcolatore Rendering - 31 Esempio: si supponga che per un dato pixel si sia stabilito un colore C dopo aver disegnato una serie di poligoni in ordinamento del pittore; si supponga che disegnando un nuovo poligono la formula di shading assegni intensità I per quel pixel dovuta al nuovo poligono e che tale pixel risulti di opacità k o. Allora il dato pixel assumerà un colore pari a C = (1 k o )C + k o I Per inciso, avere poligoni con opacità diversa da 1 è facile da gestire con un algoritmo di rimozione delle facce nascoste tipo BSP (cioè un algoritmo di depth-ordering); è molto più complesso con uno z-buffer (si fa rendendo di sola lettura lo z-buffer in corrispondenza ai poligoni traslucidi, Angel pg. 400) In generale l opacità viene modificata con una texture (vedi dopo)

33 Grafica al Calcolatore Rendering - 32 Depth cueing Una tecnica usata per dare un senso di profondità all immagine è la seguente Si stabilisce un colore di depth-cue pari a C f Se lo shading fornisce il colore C s per il pixel il colore C s con cui si colora il pixel è allora data dalla formula C s = (1 z s )C s + z s C f ovvero si interpola linearmente (usando la profondità nello spazio 3D screen) tra la vera intensità data dallo shading e l intensità di depth-cue. In tal modo oggetti vicini appaiono colorati normalmente (o quasi), oggetti lontani invece sfumano in C f Se C f è nero, per esempio, gli oggetti tendono a sparire man mano che si avvicinano al piano di far clipping (z s = 1) Se C f è bianco, invece, si ha un effetto nebbia Si può anche usare una funzione di z s per avere effetti diversi.

34 Grafica al Calcolatore Rendering - 33

35 Grafica al Calcolatore Rendering - 34 Rimozione delle facce nascoste Dopo che i poligoni hanno attraversato tutte le trasformazioni geometriche e sono stati tagliati (clipping), prima di poterli disegnare dobbiamo risolvere il problema dela rimozione di quelli che non sono visibili dall osservatore. Problema: dati un insieme di poligoni in 3D ed un punto di vista, si vogliono disegnare solo i poligoni visibili (o porzioni di essi). Ogni poligono si assume essere piatto ed opaco. Vi sono essenzialmente due approcci: object-space: l algoritmo lavora sui poligoni stabilendo relazioni di occlusione reciproca. Il costo è quadratico nel numero dei poligoni. Però la precisione è elevata (precisione macchina). image-space: l algoritmo stabilisce occlusioni a livello del pixel. è più veloce ma la precisione è limitata.

36 Grafica al Calcolatore Rendering - 35 Back-face culling Non è un algoritmo generale di rimozione di facce nascoste, ma solo una euristica utile per eliminare subito poligoni ovviamente invisibili. viene effettuato nello spazio vista (o telecamera) l eliminazione delle facce posteriori (o back-face culling), elimina i poligoni che, a causa della loro orientazione, non possono essere visti. Se V è la direzione di vista (punta verso l osservatore) ed N p è la normale al poligono, è facile rendersi conto che il poligono è visibile solo se: N p V > 0 Nota: se la scena è composta da un solo solido convesso, il culling risolve anche il problema della eliminazione delle facce nasoste.

37 Grafica al Calcolatore Rendering - 36 Depth-Buffer È un algoritmo image-space, ma processa un poligono alla volta Opera nel 3D screen space Fa parte del processo di rasterizzazione Il depth-buffer o z-buffer è una matrice (grande come l immagine) che contiene, per ciascun pixel, il più piccolo valore di profondità (z) incontrato finora. Durante il rendering, per ciascun poligono che viene processato: si calcola la profondità (z) dei punti interni con interpolazione della z dei vertici (come l intensità in Gouraud shading). se la z del pixel è inferiore a quella contenuta nello z-buffer, allora la sua intensità viene scritta nell immagine e la z viene viene aggiornata. Vantaggio: semplicità di implementazione Svantaggio: occupazione di memoria: servono almeno bits per pixel per avere una discretizzazione accettabile delle profondità.

38 Grafica al Calcolatore Rendering - 37 Depth-sort Algoritmo Object-space Idea: si disegnano i poligoni dal più lontano al più vicino, così quelli lontani vengono sovrascritti da quelli più vicini (back-to-front rendering). Due problemi: come ordinare i poligoni e cosa fare se si sovrappongono. Non sempre è possibile ordinare i poligoni per profondità. Allora bisogna spezzarli. Algoritmo del pittore: i poligoni vengono ordinati in una lista in base al vertice di massima distanza dall osservatore (o pseudo-profondità). si effettua il rendering dei poligoni della lista, dal più lontano al più vicino. La sovrapposizione non è considerata (si possono di disegnare immagini sbagliate).

39 (! $#" Grafica al Calcolatore Rendering - 38 Depth sort: nell algoritmo di depth sort, dopo avere ordinato i poligoni in base al vertice di massima distanza, vengono risolte le ambiguità, eventualmente spezzando alcune faccie e riordinando la lista. Dati due poligoni P e Q le cui z-estensioni si sovrappongono, è corretto disegnare P prima di Q solo se almeno uno di questi test è vero: 1. le x-estensioni di P e Q sono disgiunte (veloce); 2. le y-estensioni di P e Q sono disgiunte (veloce); 3. Si consideri il piano contenente Q. P è contenuto completamente nel semipiano opposto a quello dove è l osservatore (abbastanza veloce)? 4. Si consideri il piano contenente P. Q è contenuto completamente nello stesso semipiano dove è l osservatore (abbastanza veloce)? 5. Le proiezioni di P e Q sullo schemo sono disgiunte (pesante)? + *) %&' c E. Angel Se tutti i test falliscono, controllo se è corretto disegnare Q prima di P. Se anche questo fallisce Q viene taliato usando il piano contenente P, ed i pezzi vengono collocati nella lista al posto giusto.

40 Grafica al Calcolatore Rendering - 39 BSP trees: Un metodo elegante per la rimozione di superfici nascoste basato su alberi BSP. Nel depth sort, poiché l ordine dipende dal punto di vista, bisogna ricalcolarlo ad ogni spostamento. Non è praticabile in una applicazione interattiva (es: simulatore di volo). Un albero BSP, invece, una volta costruito (richiede pre-processing), consente di ottenere rapidamente l ordine giusto al cambiare del punto di vista. Costruisco un albero BSP auto-partitioning con i triangoli (divido usando i piani che contengono i triangoli). Vediamo come si ottiene l ordinamento: consideriamo la radice dell albero il punto di vista si trova (diciamo) a destra dell iperpiano associato alla radice. allora gli oggetti che stanno a sinistra sono più lontani di quelli che stanno a destra dell iperpiano. l ordine per gli oggetti che si trovano nei due semipiani si ottiene ricorsivamente considerando separatamente i due sottoalberi.

41 Grafica al Calcolatore Rendering - 40 Scan conversion La scan conversion a consiste nel disegnare i poligoni sulla immagine, riempendoli con il colore determinato dallo shading. Questo equivale a risolvere i seguenti due problemi. Determinare i pixel interessati da un segmento Determinare i punti interni del poligono Algoritmo di Bresenham. Il classico algoritmo per disegnare un segmento è quello di Bresenham. Esso genera una sequenza connessa di pixel. Dopo avere disegnato un pixel l algoritmo sceglie tra i suoi 8-vicini quale accendere in base all equazione della retta, usando solo aritmetica intera. Algoritmo scan-line. è l algoritmo standard per riempire i poligoni si chiama algoritmo scan-line (attenzione: assieme al termine sweep line è molto usato in Grafica e Geometria Computazionale, consideratelo un identificatore sovraccarico ). Il poligono viene riempito considerando una linea che lo scandisce riga dopo riga dal basso verso l alto. Per ciascuna riga si effettua una scansione da sinistra a destra, e quando si incontra un edge del poligono si inizia a riempire, quando si incontra un altro edge si smette. Ci sono casi speciali da gestire con accortezza. a Alcuni usano scan conversion e rasterization come sinonimi. Noi manterremo la differenza: scan conversion è parte della rasterizzazione

42 Grafica al Calcolatore Rendering - 41 Nota: la richiesta che i pixel siano connessi è necessaria quando il segnento è disegnato da solo, ma non lo è se il segnmento è il lato di un poligono da riempire con l algoritmo scan-line. In questo caso basta che ce ne sia uno per riga. Non ci occupiamo nel dettaglio di questi algoritmi, che sono ormai dei classici della Grafica, poiché per il programmatore la scan-conversion è un processo ormai completamente trasparente. Il lettore interessato potrà trovare maggiori dettagli in Mount, Lecture 25 e 26 ed Angel, sez. 7.8.

43 Grafica al Calcolatore Rendering - 42 Problema dell aliasing Un argomento di cui non abbiamo parlato, e di cui non parleremo, è quello dell aliasing Nella costruzione di una immagine per la natura discreta del raster display (o del frame buffer, che è lo stesso) è inevitabile la comparsa di artefatti che degradano la qualità dell immagine L esempio più tipico sono le scalette che si formano quando si disegnano linee rette Vi sono vari metodi di anti-aliasing e i più comuni sono basati sul calcolo di medie di shading tra pixel vicini (1) Aliasing (2) Anti aliasing

44 Grafica al Calcolatore Rendering - 43 Esempio di rasterizzazione Vediamo come avviene la rasterizzazione di un poligono con: scan-line (per scan conversion) depth-buffer (per rimozione faccie nascoste) Gouraud shading Il modello locale di riflessione assegna un colore ai vertici del poligono. La proiezione nello screen space asocia una pseudo-profondità ai vertici del poligono. Si procede alla scan conversion del poligono: i valori sui vertici vengono interpolati all interno del poligono nel corso della sua scansione per righe, per determinare 1) la visibilità dei pixel interni e 2) il loro colore (con Gouraud). L interpolazione bilineare si presta ad essere incorporata nello scan-line (si parla anche di scan-line interpolation).

45 Grafica al Calcolatore Rendering - 44 Vediamo come funziona: Dato un triangolo sui cui vertici P 0, P 1, P 2, sono definite tre quantità c 0,c 1,c 2. Se la scan line interseca due lati del triangolo in P a e P b (come in figura), calcoliamo il valore c a per interpolazione lineare tra i valori c 0 e c 1, ed il valore c b per interpolazione lineare tra i valori c 1 e c 2. calcoliamo quindi il valore c s per tutti i punti del segmento di scan line (P a,p b ) per interpolazione lineare tra i valori agli estremi, c a e c b. è più effieciente calcolare il valore interpolato in modo incrementale. Nota. L interpolazione effettuata nello screen space è una approssimazione di un processo che andrebbe svolto nell world space. P 0 P a P s P 1 P b scan line Infatti una interpolazione lineare nello screen space non lo è nel world space, e spesso vorremmo che lo fosse. P 2

46 Grafica al Calcolatore Rendering - 45 La rendering pipeline Riassumendo, abbiamo descritto sin qui la segeunte pipeline: Spazio oggetto (locale) Spazio mondo Spazio vista o camera Spazio 3D screen Spazio immagine Object definition Compose scene Define lighting Culling Local reflecion model Clipping Shading Hidden surface removal Scan conversion Sistemi diversi definiscono pipeline diverse.

47 Grafica al Calcolatore Rendering - 46 La pipeline di OpenGL In OpenGL i sistemi di riferimento non si mappano esattamente su quelli che abbiamo visto precedentemente: Spazio oggetto (locale) Spazio mondo Spazio vista Spazio 3D screen Spazio immagine... World (or standard) coord. Eye (or camera) coord. Normalized device coord. Viewport (or window) coord. Modelview Matrix Projection Matrix Viewport tranformation Nel nostro sistema le coordinate immagine sono 2D, mentre in OpenGL sono 3D. in OpenGL, nelle window coordinates la pseudo-profondità viene conservata, quindi a rigore si tratta di uno spazio 3D. Per confondere ulteriormente le cose, OpenGL chiama invece screen coordinates le coordinate immagine 2D.

La Pipeline Grafica. Vediamo come avviene il rendering, ovvero la visualizzazione di oggetti. Introduzione. La Pipeline Grafica.

La Pipeline Grafica. Vediamo come avviene il rendering, ovvero la visualizzazione di oggetti. Introduzione. La Pipeline Grafica. La Pipeline Grafica Vediamo come avviene il rendering, ovvero la visualizzazione di oggetti. Introduzione La Pipeline Grafica Spazio vista Spazio 3D-screen Shading Rasterizzazione Rimozione delle facce

Dettagli

Rendering I - geometric processing

Rendering I - geometric processing Rendering I - geometric processing Dove si descrivono i principali metodi di alto livello utilizzati per ottenere una immagine a partire da una descrizione degli oggetti 3D Introduzione Trasformazioni

Dettagli

Grafica al calcolatore - Computer Graphics

Grafica al calcolatore - Computer Graphics Grafica al calcolatore - Computer Graphics 7 Pipeline di rasterizzazione 23/11/13 Grafica 2013 1 Rasterization pipeline Sappiamo implementare ray casting (o ray tracing). Abbiamo tuttavia già visto che

Dettagli

Grafica al calcolatore - Computer Graphics

Grafica al calcolatore - Computer Graphics Grafica al calcolatore - Computer Graphics 8 Pipeline di rasterizzazione - 2 12/12/14 Grafica 2014 1 Riepilogo Operazioni geometriche Pixel processing 12/12/14 Grafica 2014 2 Rasterizzazione/scan connversion

Dettagli

Informatica Grafica. Prof. Massimiliano Dellisanti Fabiano Vilardi. (2a parte) a.a. 2011/2012

Informatica Grafica. Prof. Massimiliano Dellisanti Fabiano Vilardi. (2a parte) a.a. 2011/2012 Informatica Grafica (2a parte) a.a. 2011/2012 Prof. Massimiliano Dellisanti Fabiano Vilardi 1 Grafica 3D Con Grafica 3D si indicano quelle tecniche informatiche finalizzate alla descrizione (e rappresentazione

Dettagli

Grafica al Calcolatore Fotorealismo - 1. Introduzione

Grafica al Calcolatore Fotorealismo - 1. Introduzione Fotorealismo Dove si elecano trucchi sagaci ed effetti speciali che servono ad aumentare con poca spesa il fotorealismo. Introduzione Environment map Light map Ombre geometriche Trasparenza Multi-pass

Dettagli

Introduzione alla Computer Graphics

Introduzione alla Computer Graphics 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

Dettagli

Tecniche avanzate. Quello che avanza... Image-based rendering. Quaternioni e rotazioni 3D. Intersezioni

Tecniche avanzate. Quello che avanza... Image-based rendering. Quaternioni e rotazioni 3D. Intersezioni Tecniche avanzate Quello che avanza... Image-based rendering Quaternioni e rotazioni 3D Intersezioni Grafica al Calcolatore Tecniche avanzate - 1 Image-based rendering Il problema è della grafica interattiva

Dettagli

Tecniche di mappatura

Tecniche di mappatura Tecniche di mappatura Dove si discute l utile tecnica di texture mapping che consente di aggiungere dettagli alle superfici senza gravare sulla geometria. Introduzione Texture mapping Bump mapping Grafica

Dettagli

Interazione luce - materia

Interazione luce - materia Interazione luce - materia 1 Modelli di illuminazione Il modello di illuminazione descrive l interazione tra la luce e gli oggetti della scena Descrive i fattori che determinano il colore di un punto della

Dettagli

Computer Graphics. v 1. Rasterizer: lines (segmenti) la rasterizzazione from vertex to pixels. Rasterizzazione: lines (segmenti)

Computer Graphics. v 1. Rasterizer: lines (segmenti) la rasterizzazione from vertex to pixels. Rasterizzazione: lines (segmenti) Computer Graphics Università dell Insubria Corso di Laurea in Informatica la rasterizzazione from vertex to pixels Rasterizer: lines (segmenti) Vertici (punti in R 3 ) computazioni per vertice Z Vertici

Dettagli

Introduzione alla Grafica al Calcolatore

Introduzione alla Grafica al Calcolatore Introduzione alla Grafica al Calcolatore La grafica al calcolatore Modellazione Rendering di mesh poligonali Trasformazioni geometriche Rimozione delle facce nascoste Riflessione della luce (modello locale)

Dettagli

Processo di rendering

Processo di rendering Processo di rendering 1 Trasformazioni di vista Trasformazioni di vista Il processo di visione in tre dimensioni Le trasformazioni di proiezione I parametri della vista 3D I sistemi di coordinate 2 I parametri

Dettagli

Rendering ed illuminazione

Rendering ed illuminazione Rendering ed illuminazione Dove si introduce un metodo per ottenere una immagine a partire da una descrizione degli oggetti tridimensionali e si presenta la legge fondamentale che governa l illuminazione.

Dettagli

Grafica al calcolatore. Computer Graphics. 6 Modelli di illuminazione 18/11/12

Grafica al calcolatore. Computer Graphics. 6 Modelli di illuminazione 18/11/12 Grafica al calcolatore Computer Graphics 6 Modelli di illuminazione 18/11/12 Grafica 2013 1 Ray casting e colore Tornando al problema della formazione dell'immagine, possiamo creare le immagini se sappiamo

Dettagli

Processo di rendering

Processo di rendering Processo di rendering Trasformazioni di vista Trasformazioni di vista Il processo di visione in tre dimensioni Le trasformazioni di proiezione 2 Rendering nello spazio 2D Il processo di rendering (visualizzazione)

Dettagli

Modelli per i materiali

Modelli per i materiali Texture mapping 1 Modelli per i materiali Il realismo visivo può essere ottenuto mediante i modelli di illuminazione e dei materiali Per modellare i materiali si possono utilizzare delle immagini dette

Dettagli

Applicazioni 3D avanzate

Applicazioni 3D avanzate Azienda Ospedaliera Card. G. Panico Applicazioni 3D avanzate VR e segmentazione delle articolazioni: campi applicativi Indice Applicazioni 3D avanzate Articolazioni e grandi macchine 1. Definizioni 2.

Dettagli

1.1 Modello di un Processo di Rendering. Gestore delle Geometrie (Ricostruzione delle Geoemtrie e Clipping)

1.1 Modello di un Processo di Rendering. Gestore delle Geometrie (Ricostruzione delle Geoemtrie e Clipping) Capitolo 1 Esercizi sulla Pipeline di Rendering 1.1 Modello di un Processo di Rendering Componenti dell Architettura di Rendering: Processore Bus di Comunicazione Scheda Grafica Moduli della Pipeline di

Dettagli

Capitolo 8 Rendering Globale. Dal modello locale ai modelli globali. Cap. 8 - Contenuti. Rendering Locale. Sezione 8.1. Limitazioni del modello locale

Capitolo 8 Rendering Globale. Dal modello locale ai modelli globali. Cap. 8 - Contenuti. Rendering Locale. Sezione 8.1. Limitazioni del modello locale Cap. 8 - Contenuti Capitolo 8 Rendering Globale 8.1 Dal modello locale ai modelli globali Limitazioni del modello locale, effetti globale e modi per approssimarli in un contesto locale 8.2 Ray-tracing

Dettagli

Lezione 3: Grafica 3D*

Lezione 3: Grafica 3D* Lezione 3: Grafica 3D* Informatica Multimediale Docente: Umberto Castellani *I lucidi sono tratti da una lezione di Maura Melotti (m.melotti@cineca.it) Sommario Il processo grafico La modellazione 3D Rendering

Dettagli

Luci/Ombre. YAFARAY motore di rendering Open Source. Federico Frittelli aka fredfrittella. SUTURA-studio di progettazione.

Luci/Ombre. YAFARAY motore di rendering Open Source. Federico Frittelli aka fredfrittella. SUTURA-studio di progettazione. Luci/Ombre YAFARAY motore di rendering Open Source Federico Frittelli aka fredfrittella SUTURA-studio di progettazione LinuxDay, 2010 fredfrittella (SUTURA-studio di progettazione) Luci/Ombre 23 Ottobre

Dettagli

Grafica al calcolatore. Computer Graphics. 5 - Rendering 19/11/12

Grafica al calcolatore. Computer Graphics. 5 - Rendering 19/11/12 Grafica al calcolatore Computer Graphics 5 - Rendering 19/11/12 Grafica 2013 1 Rendering Il termine rendering indica la serie di algoritmi, geometrici e non, a cui si sottopone una data descrizione di

Dettagli

Modellazione. Dove si delineano le principali tecniche per descrivere e rappresentare oggetti in uno spazio tridimensionale.

Modellazione. Dove si delineano le principali tecniche per descrivere e rappresentare oggetti in uno spazio tridimensionale. Modellazione Dove si delineano le principali tecniche per descrivere e rappresentare oggetti in uno spazio tridimensionale. Rappresentazione poligonale Curve e superfici Gometria Solida Costruttiva Suddivisione

Dettagli

Le ombre in OpenGl. Daniele Varin LS Ing. Informatica Corso di Elementi di Grafica Digitale http://varindaniele.altervista.org

Le ombre in OpenGl. Daniele Varin LS Ing. Informatica Corso di Elementi di Grafica Digitale http://varindaniele.altervista.org Le ombre in OpenGl Daniele Varin LS Ing. Informatica Corso di Elementi di Grafica Digitale http://varindaniele.altervista.org Punto di partenza In OpenGl le luci non proiettano ombre 2 Perché si introducono

Dettagli

Capitolo 4 Trasformazioni Geometriche

Capitolo 4 Trasformazioni Geometriche Capitolo 4 Trasformazioni Geometriche Prima parte: argomenti trattati Trasformazioni geometriche e matrici Entità geometriche e trasformazioni affini; Trasformazioni geometriche nel piano (traslazione,

Dettagli

Rasterizzazione. Dove si introduce un metodo di rendering adatto alle applicazioni in real-time. Introduzione. Trasformazioni geometriche.

Rasterizzazione. Dove si introduce un metodo di rendering adatto alle applicazioni in real-time. Introduzione. Trasformazioni geometriche. Rasterizzazione Dove si introduce un metodo di rendering adatto alle applicazioni in real-time. Introduzione Trasformazioni geometriche Clipping Rimozione delle superfici nascoste Scan conversion Shading

Dettagli

Dalla Sfera a Luigi del film Cars L Algoritmo di Ray Tracing

Dalla Sfera a Luigi del film Cars L Algoritmo di Ray Tracing Dalla Sfera a Luigi del film Cars L Algoritmo di Ray Tracing Ing. Federico Bergenti E-mail federico.bergenti@unipr.it Telefono +39 0521 90 6929 Sintesi di Immagini Digitali Generazione automatica di immagini

Dettagli

Il rendering fotorealistico. Conferimento ad oggetti 3D di un aspetto particolarmente fotorealistico

Il rendering fotorealistico. Conferimento ad oggetti 3D di un aspetto particolarmente fotorealistico Il rendering fotorealistico Conferimento ad oggetti 3D di un aspetto particolarmente fotorealistico Rendering fotorealistico Gli oggetti sottoposti a rendering devono essere facce 3D o essere tridimensionali.

Dettagli

INFORMATICA GRAFICA SSD ING-INF/05 Sistemi di elaborazione delle informazioni a.a. 2007/2008. CAP 5. Pipeline grafica

INFORMATICA GRAFICA SSD ING-INF/05 Sistemi di elaborazione delle informazioni a.a. 2007/2008. CAP 5. Pipeline grafica INFORMATICA GRAFICA SSD ING-INF/05 Sistemi di elaborazione delle informazioni a.a. 2007/2008 CAP 5. Pipeline grafica Introduzione Pipeline grafica:= sequenza di trasformazioni che i dati grafici devono

Dettagli

Rappresentazione di oggetti 3D

Rappresentazione di oggetti 3D Rappresentazione di oggetti 3D 1 Modellazione geometrica La modellazione geometrica riguarda le tecniche di rappresentazione di curve e superfici Surface modeling Rappresentazione della superficie di un

Dettagli

Grafica e Geometria Computazionale

Grafica e Geometria Computazionale Grafica e Geometria Computazionale Andrea Torsello e Giuseppe Maggiore DAIS, CdL Informatica Via Torino, 155, Venezia Mestre Slides scaricabili da http://www.dsi.unive.it/~grafica/pls/slides.pdf Cos è

Dettagli

Capitolo 6 Interazione luce-materia

Capitolo 6 Interazione luce-materia Capitolo 6 Interazione luce-materia Modelli di illuminazione Modello di illuminazione: formulazione matematica dell equazione del trasporto dell energia luminosa L equazione che risolve questo problema:

Dettagli

Tecniche di Post-processing. Tsrm Dr. Daniele Di Di Feo Dir U.O. Dr C.Fonda A.O.U. Meyer Firenze

Tecniche di Post-processing. Tsrm Dr. Daniele Di Di Feo Dir U.O. Dr C.Fonda A.O.U. Meyer Firenze Tecniche di Post-processing Tsrm Dr. Daniele Di Di Feo Dir U.O. Dr C.Fonda A.O.U. Meyer Firenze introduzioni Gli algoritmi di visualizzazione tridimensionale richiedono l uso di dati di tipo volumetrico,,

Dettagli

ESTRAZIONE DI DATI 3D DA IMMAGINI DIGITALI. (Visione 3D)

ESTRAZIONE DI DATI 3D DA IMMAGINI DIGITALI. (Visione 3D) ESTRAZIONE DI DATI 3D DA IMMAGINI DIGITALI () Una immagine (digitale) permette di percepire solo una rappresentazione 2D del mondo La visione 3D si pone lo scopo di percepire il mondo per come è in 3 dimensioni

Dettagli

Introduzione Computer Graphics

Introduzione Computer Graphics Knowledge Aided Engineering Manufacturing and Related Technologies Dipartimento di Ingegneria Industriale Università di Parma Introduzione Computer Graphics Cosa e la computer graphics Computer Graphics

Dettagli

Modulo 1. Rappresentazione e trasformazione dello spazio 3d.

Modulo 1. Rappresentazione e trasformazione dello spazio 3d. Modulo 1. Rappresentazione e trasformazione dello spazio 3d. Un primissimo passo nel percorso che porta dalla astrazione di una scena tridimensionale ad una sua realizzazione grafica è come rappresentare

Dettagli

Introduzione. La grafica al calcolatore. Schema di una applicazione grafica. Strumenti software della grafica al calcolatore.

Introduzione. La grafica al calcolatore. Schema di una applicazione grafica. Strumenti software della grafica al calcolatore. Introduzione Dove si cerca di inquadrare l argomento del corso, dando una possibile definizione di grafica al calcolatore, delineandone brevemente i paradigmi, introducendo la struttura tipica di una applicazione

Dettagli

Lezione1. Cos è la computer grafica. Lezione del 10 Marzo 2010. Michele Antolini Dipartimento di Ingegneria Meccanica Politecnico di Milano

Lezione1. Cos è la computer grafica. Lezione del 10 Marzo 2010. Michele Antolini Dipartimento di Ingegneria Meccanica Politecnico di Milano Lezione1 Informatica Grafica Cos è la computer grafica Lezione del 10 Marzo 2010 Grafica OpenGL vs Direct Dipartimento di Ingegneria Meccanica Politecnico di Milano 1.1 Tubo a Raggi Catodici Cathode Ray

Dettagli

Grafica vettoriale. applicazioni di tipo fotografico

Grafica vettoriale. applicazioni di tipo fotografico Grafica vettoriale Come abbiamo visto in un certo dettaglio, la grafica raster si basa sull'idea di definire certe proprietà (colore, trasparenza, ecc.) di ogni pixel applicazioni di tipo fotografico Al

Dettagli

Grafica vettoriale. Al contrario la grafica vettoriale si basa sull'idea di dare una descrizione geometrica dell'immagine

Grafica vettoriale. Al contrario la grafica vettoriale si basa sull'idea di dare una descrizione geometrica dell'immagine Grafica vettoriale Come abbiamo visto in un certo dettaglio, la grafica raster si basa sull'idea di definire certe proprietà (colore, trasparenza, ecc.) di ogni pixel applicazioni di tipo fotografico Al

Dettagli

Proiezioni Grafica 3d

Proiezioni Grafica 3d Proiezioni Grafica 3d Giancarlo RINALDO rinaldo@dipmat.unime.it Dipartimento di Matematica Università di Messina ProiezioniGrafica 3d p. 1 Introduzione Il processo di visualizzazione in 3D è intrinsecamente

Dettagli

Modelli di illuminazione

Modelli di illuminazione Modelli di illuminazione Dove si discutono modelli per l interazione della luce con le superfici. Introduzione Modello di Phong Modello di Cook-Torrance Tipi di luci Ray tracing Radiosity Grafica al Calcolatore

Dettagli

Fondamenti di Grafica Tridimensionale

Fondamenti di Grafica Tridimensionale Fondamenti di Grafica Tridimensionale La Pipeline Grafica Marco Di Benedetto marco.dibenedetto@isti.cnr.it Visualizzazione dell Informazione noi siamo qui Informazione mondo reale (es: 3D scans) creazione

Dettagli

0. Piano cartesiano 1

0. Piano cartesiano 1 0. Piano cartesiano Per piano cartesiano si intende un piano dotato di due assi (che per ragioni pratiche possiamo scegliere ortogonali). Il punto in comune ai due assi è detto origine, e funziona da origine

Dettagli

4. Proiezioni del piano e dello spazio

4. Proiezioni del piano e dello spazio 4. Proiezioni del piano e dello spazio La visualizzazione di oggetti tridimensionali richiede di ottenere una vista piana dell'oggetto. Questo avviene mediante una sequenza di operazioni. Innanzitutto,

Dettagli

Grafica Real-Time, Hardware Grafico e Linguaggi di Shading. Alessandro Martinelli

Grafica Real-Time, Hardware Grafico e Linguaggi di Shading. Alessandro Martinelli Grafica Real-Time, Hardware Grafico e Linguaggi di Shading Alessandro Martinelli Grafica Real Time Il concetto di 'Real Time' in ambito grafico ha una valenza molto particolare: Fino agli anni '80, solo

Dettagli

Computer Graphics. La disciplina fornisce metodi per creare elaborare memorizzare visualizzare. immagini di oggetti o scene mediante un computer

Computer Graphics. La disciplina fornisce metodi per creare elaborare memorizzare visualizzare. immagini di oggetti o scene mediante un computer Computer Graphics La disciplina fornisce metodi per creare elaborare memorizzare visualizzare immagini di oggetti o scene mediante un computer Image Processing La disciplina fornisce metodi per acquisire

Dettagli

AMBIENTE VIRTUALE UTENTE

AMBIENTE VIRTUALE UTENTE Moduli logici di un Ambiente Virtuale Sintesi Campionamento Comportamenti Proprietà AMBIENTE VIRTUALE Management Rendering Interazione UTENTE È il processo che porta alla descrizione di un oggetto (modello),

Dettagli

Open Source 3D Engine. OpenGL Rendering System. Il Framework

Open Source 3D Engine. OpenGL Rendering System. Il Framework Open Source 3D Engine OpenGL Rendering System Il Framework I moderni mezzi di programmazione, consentono a noi sviluppatori di utilizzare librerie avanzate e testate che si prestano eccellentemente allo

Dettagli

Capitolo 6 ELABORAZIONE DI IMMAGINI A COLORI

Capitolo 6 ELABORAZIONE DI IMMAGINI A COLORI Capitolo 6 ELABORAZIONE DI IMMAGINI A COLORI Il colore viene utilizzato nelle immagini digitali per due motivi principali: è un descrittore che semplifica l identificazione di un oggetto e la sua estrazione

Dettagli

Grafica 3D Interattiva

Grafica 3D Interattiva Informatica Grafica ][ Marco Gribaudo marcog@di.unito.it Grafica 3D Interattiva sono una libreria di funzioni a basso livello per facilitare la scrittura di videogiochi e di applicazioni multimediali.

Dettagli

Le superfici e i modelli di elevazione digitale in genere possono essere rappresentati mediante le strutture raster Difetto delle strutture dati

Le superfici e i modelli di elevazione digitale in genere possono essere rappresentati mediante le strutture raster Difetto delle strutture dati Triangulated Irregular Network Le superfici e i modelli di elevazione digitale in genere possono essere rappresentati mediante le strutture raster Difetto delle strutture dati raster classiche: sono a

Dettagli

ScuolaSI computer grafica 3d

ScuolaSI computer grafica 3d ScuolaSI computer grafica 3d pagina stampata dal sito ScuolaSI http://www.scuolasi.it pubblicato il 22/04/2011 Grafica - La computer grafica 3D è un ramo della computer grafica che basa la creazione di

Dettagli

Introduzione al 3D con Autocad

Introduzione al 3D con Autocad 2 Introduzione al 3D con Autocad Coso di CAD B condotto da Daniela Sidari a.a. 2012/2013 19.02.2013 Modellazione geometrica 3D wireframe superfici solidi Si distinguono tre tecniche principali di modellazione:

Dettagli

Di Blasi Gianpiero - D.M.I. - Università di Catania. Lezione 6. Luci

Di Blasi Gianpiero - D.M.I. - Università di Catania. Lezione 6. Luci Di Blasi Gianpiero - D.M.I. - Università di Catania Java3D Lezione 6 Luci Cosa impareremo oggi? Il modello di illuminazione di Java3D Come creare luci Come fare interagire gli oggetti visuali con le luci

Dettagli

Information Visualization

Information Visualization Information Visualization Introduzione alla CG Prof. Andrea F. Abate abate@unisa.it http://www.unisa.it/docenti/andreafrancescoabate/index CG e VR: cosa sono e a cosa servono Con il termine Computer Graphics,

Dettagli

AMBIENTE VIRTUALE. Moduli logici di un Ambiente Virtuale. Modellazione. Management Rendering Interazione. Sintesi. Comportamenti.

AMBIENTE VIRTUALE. Moduli logici di un Ambiente Virtuale. Modellazione. Management Rendering Interazione. Sintesi. Comportamenti. Moduli logici di un Ambiente Virtuale Sintesi Campionamento Comportamenti Proprietà AMBIENTE VIRTUALE Management Rendering Interazione UTENTE È il processo che porta alla descrizione di un oggetto (modello),

Dettagli

SISTEMA DI MISURAZIONE, SISTEMA DI RICOSTRUZIONE, SISTEMA DI VISUALIZZAZIONE

SISTEMA DI MISURAZIONE, SISTEMA DI RICOSTRUZIONE, SISTEMA DI VISUALIZZAZIONE LA TOMOGRAFIA COMPUTERIZZATA: MODALITA DI FORMAZIONE DELL IMMAGINE SISTEMA DI MISURAZIONE, SISTEMA DI RICOSTRUZIONE, SISTEMA DI VISUALIZZAZIONE SISTEMA DI MISURAZIONE: ACQUISIZIONE DELL IMMAGINE TC Un

Dettagli

Modellare una copertura a falde

Modellare una copertura a falde 4 Modellare una copertura a falde Costruire un tetto a falde partendo dalla posizione dei muri. Utilizzeremo sia strumenti di creazione sia strumenti di deformazione dei solidi. Introduzione In questo

Dettagli

Algoritmo per il rilevamento di targhe

Algoritmo per il rilevamento di targhe Algoritmo per il rilevamento di targhe 19 maggio 2008 Nell affrontare il problema del riconoscimento delle targhe sono stati sviluppati due algoritmi che basano la loro ricerca su criteri differenti. Lo

Dettagli

IR(3): Illuminazione Globale

IR(3): Illuminazione Globale IR(3): Illuminazione Globale Alessandro Martinelli alessandro.martinelli@unipv.it 21 Dicembre 2011 IR(3): Illuminazione Globale Illuminazione e Rendering: Principi di Illuminazione Rendering Real-Time

Dettagli

Trasformazioni 2D. Grande differenza rispetto alla grafica raster!

Trasformazioni 2D. Grande differenza rispetto alla grafica raster! Trasformazioni 2D Il grande vantaggio della grafica vettoriale è che le immagini vettoriali descrivono entità matematiche È immediato manipolare matematicamente tali entità In quasi tutte le manipolazioni

Dettagli

DOMINIO E LIMITI. Esercizio 3 Studiare gli insiemi di livello della funzione f, nei seguenti casi: 1) f(x,y) = y2 x 2 + y 2.

DOMINIO E LIMITI. Esercizio 3 Studiare gli insiemi di livello della funzione f, nei seguenti casi: 1) f(x,y) = y2 x 2 + y 2. FUNZIONI DI DUE VARIABILI 1 DOMINIO E LIMITI Domini e disequazioni in due variabili. Insiemi di livello. Elementi di topologia (insiemi aperti, chiusi, limitati, convessi, connessi per archi; punti di

Dettagli

Grafica computazionale

Grafica computazionale Grafica computazionale Lezione 1 (slide parzialmente basate su Computer Graphics - MIT Opencourseware Grafica Computazionale - Massimiliano Corsini Università di Siena) 1 Che cos è la Computer Graphics?

Dettagli

EQUAZIONI E DISEQUAZIONI POLINOMIALI E COLLEGAMENTI CON LA GEOMETRIA ELEMENTARE

EQUAZIONI E DISEQUAZIONI POLINOMIALI E COLLEGAMENTI CON LA GEOMETRIA ELEMENTARE EQUAZIONI E DISEQUAZIONI POLINOMIALI E COLLEGAMENTI CON LA GEOMETRIA ELEMENTARE 1. EQUAZIONI Definizione: un equazione è un uguaglianza tra due espressioni letterali (cioè in cui compaiono numeri, lettere

Dettagli

Corrado Malanga ARCHETIPI E NUMERI

Corrado Malanga ARCHETIPI E NUMERI Corrado Malanga Nel precedente lavoro ho parlato degli archetipi, ne ho fornito le definizioni ed ho descritto cosa i suddetti archetipi siano, come funzionino e perché siano legati ad alcuni numeri e

Dettagli

Corso di Grafica Computazionale

Corso di Grafica Computazionale Corso di Grafica Computazionale Premesse Teoriche Docente: Massimiliano Corsini Laurea Specialistica in Ing. Informatica Università degli Studi di Siena Overview Premesse Teoriche Mini-ripasso geometria

Dettagli

Pipeline di rendering. Pipeline di rendering. Outline. Grafica off-line vs Grafica real-time

Pipeline di rendering. Pipeline di rendering. Outline. Grafica off-line vs Grafica real-time Pipeline di rendering Davide Gadia Corso di Programmazione Grafica per il Tempo Reale Laurea Magistrale in Informatica per la Comunicazione a.a. 2013/2014 Outline Grafica off-line vs Grafica real-time

Dettagli

Lezione 19: Grafica in tempo reale. I problemi del Real Time. I problemi del Real Time. I problemi del Real Time. I problemi del Real Time

Lezione 19: Grafica in tempo reale. I problemi del Real Time. I problemi del Real Time. I problemi del Real Time. I problemi del Real Time I problemi del Real Time Lezione 19: Grafica in tempo reale Come visto nelle precedenti lezioni, i calcoli necessari a generare immagini 3D sono numerosi e complessi. I programmi di grafica 3D impiegano

Dettagli

Indice. Indice vi- III. Unità 1 Il personal computer, 1. Unità 2 AutoCAD, 9

Indice. Indice vi- III. Unità 1 Il personal computer, 1. Unità 2 AutoCAD, 9 Percezione Costruzioni e comunicazione geometriche Indice vi- III Indice Unità 1 Il personal computer, 1 1.1 Struttura del personal computer, 2 1.2 Il software, 5 1.3 I dispositivi informatici di stampa,

Dettagli

RETTE, PIANI, SFERE, CIRCONFERENZE

RETTE, PIANI, SFERE, CIRCONFERENZE RETTE, PIANI, SFERE, CIRCONFERENZE 1. Esercizi Esercizio 1. Dati i punti A(1, 0, 1) e B(, 1, 1) trovare (1) la loro distanza; () il punto medio del segmento AB; (3) la retta AB sia in forma parametrica,

Dettagli

I tracciati sono contorni che potete trasformare in selezioni o a cui potete applicare un riempimento o una traccia di colore. tracciato temporaneo

I tracciati sono contorni che potete trasformare in selezioni o a cui potete applicare un riempimento o una traccia di colore. tracciato temporaneo Disegnare Il disegno (1) Quando si disegna in Adobe Photoshop si creano forme vettoriali e tracciati. Per disegnare potete usare gli strumenti: Forma Penna Penna a mano libera Le opzioni per ogni strumento

Dettagli

OpenGL: visualizzazione 3D

OpenGL: visualizzazione 3D OpenGL: visualizzazione 3D La visualizzazione di una scena avviene come se si stesse usando una macchina fotografica per la quale si può controllare la posizione nello spazio 3D; si può cambiare il tipo

Dettagli

3 Lavorare con i livelli

3 Lavorare con i livelli INTRODUZIONE 3 Lavorare con i livelli I livelli costituiscono un elemento essenziale nella programmazione di un filmato FLASH. Mentre i fotogrammi individuano la sequenzialità, i livelli definiscono la

Dettagli

Capitolo 11. Il disegno in 3D

Capitolo 11. Il disegno in 3D Capitolo 11 Il disegno in 3D o 11.1 Uso delle coordinate nello spazio o 11.2 Creazione di oggetti in 3D o 11.3 Uso dei piani di disegno in 3D (UCS) o 11.4 Creazione delle finestre di vista o 11.5 Definizione

Dettagli

Geometria analitica di base (prima parte)

Geometria analitica di base (prima parte) SAPERE Al termine di questo capitolo, avrai appreso: come fissare un sistema di riferimento cartesiano ortogonale il significato di equazione di una retta il significato di coefficiente angolare di una

Dettagli

Prof. Caterina Rizzi Dipartimento di Ingegneria Industriale

Prof. Caterina Rizzi Dipartimento di Ingegneria Industriale RUOLO DELLA MODELLAZIONE GEOMETRICA E LIVELLI DI MODELLAZIONE PARTE 2 Prof. Caterina Rizzi... IN QUESTA LEZIONE Modelli 2D/3D Modelli 3D/3D Dimensione delle primitive di modellazione Dimensione dell oggettoy

Dettagli

Elementi di grafica raster

Elementi di grafica raster Elementi di grafica raster Le immagini Una immagine è una rappresentazione spaziale di un oggetto o di una scena Una immagine digitale è una rappresentazione di una scena anche 3D dopo il processo di acquisizione

Dettagli

Modulo 3. Rappresentazione di solidi mediante forntiera e strutture dati collegate.

Modulo 3. Rappresentazione di solidi mediante forntiera e strutture dati collegate. Modulo 3. Rappresentazione di solidi mediante forntiera e strutture dati collegate. Nel precedente modulo abbiamo presentato le modalità di rappresentazione di un solido mediante enumerazione o mediante

Dettagli

GeoGebra vers.5 - vista Grafici 3D

GeoGebra vers.5 - vista Grafici 3D GeoGebra vers.5 - vista Grafici 3D Marzo 2015 (manuale on-line, con aggiunte a cura di L. Tomasi) Questo articolo si riferisce a un componente della interfaccia utente di GeoGebra. Viste Menu Vista Algebra

Dettagli

Le immagini digitali: introduzione

Le immagini digitali: introduzione Le immagini digitali: introduzione 1 L immagine digitale Un immagine pittorica è compsta da milioni di pigmenti colorati molto piccoli che, messi vicino l uno all altro, danno l impressione dei vari oggetti.

Dettagli

Fondamenti di Elaborazione di Immagini Estrazione dei Bordi e Segmentazione. Raffaele Cappelli raffaele.cappelli@unibo.it

Fondamenti di Elaborazione di Immagini Estrazione dei Bordi e Segmentazione. Raffaele Cappelli raffaele.cappelli@unibo.it Fondamenti di Elaborazione di Immagini Estrazione dei Bordi e Segmentazione Raffaele Cappelli raffaele.cappelli@unibo.it Contenuti Estrazione dei bordi Calcolo del gradiente Operatori di Roberts Operatori

Dettagli

Sviluppo di un motore grafico in tempo reale. di Marco Altomonte

Sviluppo di un motore grafico in tempo reale. di Marco Altomonte Sviluppo di un motore grafico in tempo reale di Marco Altomonte Dicembre 2005 1 Capitolo 1 Introduzione L attività di Tesi è stata finalizzata allo sviluppo di un motore grafico interattivo: un software

Dettagli

Manuale italiano di T-Splines (release non ufficiale) info corsi:

Manuale italiano di T-Splines (release non ufficiale) info corsi: Manuale italiano di T-Splines (release non ufficiale) info corsi: www.corsirhino.it info@corsirhino.it Notes 1 - Modellare il corpo di un telecomando Metodo: Creare una superficie t-splines da una primitiva.

Dettagli

High Dynamic Range Rendering in OpenGL

High Dynamic Range Rendering in OpenGL Università degli Studi di Trieste Corso di Laurea Specialistica in Ingegneria Informatica Elementi di Grafica Digitale High Dynamic Range Rendering in OpenGL Studente: Alberto Dotta - 81700080 Docente:

Dettagli

Tecniche per applicazioni interattive

Tecniche per applicazioni interattive Tecniche per applicazioni interattive Dove si affronta il problema del rendering dalla parte della applicazione grafica interattiva. Introduzione Rappresentazione della scena Tecniche di abbattimento della

Dettagli

VRay Map: VRayEdgesTex

VRay Map: VRayEdgesTex VRay Map: VRayEdgesTex INTRODUZIONE Uno dei classici impieghi della VRayEdgeTex consiste nella simulazione dell effetto filo di ferro, effetto simile a quello generato tramite l attivazione dell opzione

Dettagli

APPUNTI DI MATEMATICA GEOMETRIA \ GEOMETRIA EUCLIDEA \ GEOMETRIA DEL PIANO (1)

APPUNTI DI MATEMATICA GEOMETRIA \ GEOMETRIA EUCLIDEA \ GEOMETRIA DEL PIANO (1) GEOMETRIA \ GEOMETRIA EUCLIDEA \ GEOMETRIA DEL PIANO (1) Un ente (geometrico) è un oggetto studiato dalla geometria. Per descrivere gli enti vengono utilizzate delle definizioni. Una definizione è una

Dettagli

I file raster gestione e stampa

I file raster gestione e stampa Alla fine del capitolo saremo in grado di: Conoscere il significato dei file di raster Saper distinguere il file raster da quello vettoriale. Saper gestire i file Raster Saper vettorializzare manualmente

Dettagli

analisi e sviluppo di un compressore spettrale per mesh poligonali ad elevato grado di complessità

analisi e sviluppo di un compressore spettrale per mesh poligonali ad elevato grado di complessità Università di Pisa Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea Specialistica in Tecnologie Informatiche Tesi di Laurea analisi e sviluppo di un compressore spettrale per mesh poligonali

Dettagli

La teoria delle ombre nelle proiezioni ortogonali

La teoria delle ombre nelle proiezioni ortogonali La teoria delle ombre nelle proiezioni ortogonali Nello studio della storia dell'arte è facilmente verificabile come la luce sia sempre stata considerata un importante mezzo espressivo. Artisti di ogni

Dettagli

Modulo di apprendimento DALL INTERSEZIONE DI SOLIDI con CAD ALLE SALDATURE

Modulo di apprendimento DALL INTERSEZIONE DI SOLIDI con CAD ALLE SALDATURE ITIS A. Righi Cerignola (FG) Modulo di apprendimento DALL INTERSEZIONE DI SOLIDI con CAD ALLE SALDATURE SOMMARIO: Unità 1 MODELLAZIONE SOLIDA con CAD Unità 2 INTERSEZIONE DI SOLIDI E DI TUBOLARI Prof.

Dettagli

LE FUNZIONI A DUE VARIABILI

LE FUNZIONI A DUE VARIABILI Capitolo I LE FUNZIONI A DUE VARIABILI In questo primo capitolo introduciamo alcune definizioni di base delle funzioni reali a due variabili reali. Nel seguito R denoterà l insieme dei numeri reali mentre

Dettagli

Ricostruzione e visualizzazione 3D di un cervello da acquisizioni manuali di sezioni istologiche

Ricostruzione e visualizzazione 3D di un cervello da acquisizioni manuali di sezioni istologiche Ricostruzione e visualizzazione 3D di un cervello da acquisizioni manuali di sezioni istologiche Sergio Demelio e Enrico Gobbetti CRS4 Centro di Ricerca, Sviluppo e Studi Superiori in Sardegna VI Strada

Dettagli

Rendering & ray tracing. Implementazione e applicazione pratica

Rendering & ray tracing. Implementazione e applicazione pratica Rendering & ray tracing Implementazione e applicazione pratica Che cos e CG(computer graphics)? Quando si parla di CG si intendono immagini, o video creati al computer. CG e una branca dell informatica

Dettagli

Informazioni Tecniche riguardo a PhoToPlan

Informazioni Tecniche riguardo a PhoToPlan Informazioni Tecniche riguardo a PhoToPlan Le seguenti pagine forniranno una visione dettagliata dei possibili utilizzi di PhoToPlan Q1 Cosa significa Fotoraddrizzamento? Q2 Come si effettua un fotoraddrizzamento?

Dettagli

DISPENSA DI GEOMETRIA

DISPENSA DI GEOMETRIA Il software di geometria dinamica Geogebra GeoGebra è un programma matematico che comprende geometria, algebra e analisi. È sviluppato da Markus Hohenwarter presso la Florida Atlantic University per la

Dettagli

STUDIO DI UNA FUNZIONE

STUDIO DI UNA FUNZIONE STUDIO DI UNA FUNZIONE OBIETTIVO: Data l equazione Y = f(x) di una funzione a variabili reali (X R e Y R), studiare l andamento del suo grafico. PROCEDIMENTO 1. STUDIO DEL DOMINIO (CAMPO DI ESISTENZA)

Dettagli