La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Determinazione.

Presentazioni simili


Presentazione sul tema: "Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Determinazione."— Transcript della presentazione:

1 Informatica Grafica a.a DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Determinazione delle superfici visibili Prof. Roberto Pirrone 31 maggio 2011

2 Informatica Grafica a.a DICGIM – University of Palermo Sommario Generalità Tipologie di algoritmi DSV Preprocessing Confronto tra volumi includenti Back-face culling Algoritmi principali Roberts Z-buffer Depth sort BSP tree Scan-line Wieler-Atherton 31 maggio 2011

3 Informatica Grafica a.a DICGIM – University of Palermo Generalità Il processo di rendering di unimmagine sintetica è molto oneroso dal punto di vista computazionale. Risultano necessarie delle tecniche per ridurre questonere di calcolo. Gli algoritmi che svolgono questanalisi vanno sotto il nome di tecniche di determinazione delle superfici (o delle linee) visibili (DSV), noti anche con la denominazione di eliminazione delle superfici (o delle linee) nascoste. 31 maggio 2011

4 Informatica Grafica a.a DICGIM – University of Palermo Generalità (2) Tali algoritmi consistono nelleliminiazione di ciò che non è effettivamente visibile dallosservatore. Trovano applicazione anche nella generazione delle ombre poiché per determinare unombra bisogna valutare quali siano le superfici visibili dal punto di vista della sorgente luminosa. Essi vengono applicati dopo il clipping ed assumendo una proiezione parallela, eventualmente avendo trasformato il volume di vista canonico prospettico in quello ortografico. 31 maggio 2011

5 Informatica Grafica a.a DICGIM – University of Palermo Tipi di algoritmi Algoritmi di tipo Image space/precision Object space/precision Tecniche di pre-elaborazione Confronto tra volumi includenti Back face culling 31 maggio 2011

6 Informatica Grafica a.a DICGIM – University of Palermo Confronto tra volumi includenti Si confrontano i minimi parallelepipedi o le minime sfere includenti per escludere oggetti totalmente invisibili. Possibilità di falsi positivi.

7 Informatica Grafica a.a DICGIM – University of Palermo Back-face culling Si calcola prodotto scalare della normale uscente dal poligono con il versore dell asse z negativo (0,0,-1):. Se questo prodotto è positivo, cioè se la normale N p ha componente z<0, allora il poligono non guarda verso l osservatore e può essere scartato. l algoritmo DSV si applicherà solo sui rimanenti.

8 Informatica Grafica a.a DICGIM – University of Palermo Algoritmi DSV Algoritmi per la visibilità di linee (object space) Algoritmo di Roberts Algoritmi per la visibilità di singoli pixel (image space) Z-buffer e suoi derivati Algoritmi basati sullordinamento di liste di poligoni (di tipo ibrido object/image space) Depth sort BSP tree Algoritmi di tipo scan line, di tipo image space che combinano la DSV con la scansione raster. Algoritmi a suddivisione di aree (object space o image space) si suddivide il piano di proiezione in aree sempre più piccole fino a quando si può determinare con esattezza la visibilità in ciascuna. Algoritmo di Wieler-Atherton. 31 maggio 2011

9 Informatica Grafica a.a DICGIM – University of Palermo Algoritmo di Roberts calcolo della cosiddetta invisibilità quantitativa dei lati di un poligono che è 0 per le linee visibili, cresce per ogni intersezione entrante con una linea di contorno che sia davanti al lato su cui ci si sta muovendo e decresce per ogni intersezione uscente. lalgoritmo utilizza il calcolo dellintersezione tra il triangolo formato dagli estremi del segmento in considerazione e dal punto di vista con una qualunque linea di contorno per vedere se questa passa davanti o dietro al lato stesso.

10 Informatica Grafica a.a DICGIM – University of Palermo Z-buffer Lalgoritmo Z-buffer è, forse, lapproccio più usato per la DSV. E semplice, si può integrarlo con il processo di rendering, di calcolo delle ombre e di estenderlo con caratteristiche di anti-aliasing. Inoltre è possibile realizzarne una versione di tipo scan-line per ridurre la memoria utilizzata. lo Z-buffer consente di effettuare il rendering di nuovi oggetti nella scena senza dover ri-calcolare tutto dallinizio. 31 maggio 2011

11 Informatica Grafica a.a DICGIM – University of Palermo Z-Buffer Si usano due buffer di dimensione pari allimmagine da visualizzare: il frame buffer F(x,y) che contiene il colore dei singoli pixel e lo Z-buffer o depth buffer Z(x,y) che contiene i valori di profondità di ogni punto proiettato sullimmagine. Se la z del punto appartenente al poligono in esame, che si proietta in (x,y), è maggiore (più vicina) di quella presente in Z(x,y) allora viene sostituita al valore di Z(x,y) ed il colore di quel punto viene scritto nel frame buffer in F(x,y). 31 maggio 2011

12 Informatica Grafica a.a DICGIM – University of Palermo Traccia dello Z-Buffer Ripeti per x che va da 1 a larghezza_immagine Ripeti per y che va da 1 a altezza_immagine F(x,y)=BACKGROUND Z(x,y)=-1 // profondità del back-plane del // volume di vista normalizzato Fine ripeti Ripeti per ogni poligono Ripeti per ogni punto p(x,y,z) proiettato in (x,y) Se z>Z(x,y) Z(x,y)=z F(x,y)=p Fine ripeti 31 maggio 2011

13 Informatica Grafica a.a DICGIM – University of Palermo Calcolo di z(x,y) allinterno di un poligono Forma incremental e Interpolazione bilineare (usata anche nello shading) 31 maggio 2011

14 Informatica Grafica a.a DICGIM – University of Palermo Esempio di Z-Buffer 31 maggio 2011

15 Informatica Grafica a.a DICGIM – University of Palermo Algoritmo Depth-Sort Ordina i poligoni per valori decrescenti di z // dal più vicino al più lontano Ripeti per ogni poligono p dall ultimo al primo Ripeti per tutti i poligoni q precedenti Se l estensione in x dei poligoni non si sovrappone Vai al prossimo poligono nella lista Altrimenti se l estensione in y dei poligoni non si sovrappone Vai al prossimo poligono nella lista Altrimenti se p si trova totalmente sul lato back-facing di q Vai al prossimo poligono nella lista Altrimenti se q si trova totalmente sul lato front-facing di p Vai al prossimo poligono nella lista Altrimenti se le proiezioni in (x,y) dei due poligoni non si sovrappongono Vai al prossimo poligono nella lista Altrimenti // probabile occlusione Se q si trova totalmente sul lato back-facing di p OR p si trova totalmente sul lato front-facing di q scambia q e p Altrimenti Dividi q e p intersecandoli Ordina i nuovi poligoni nella lista Reinizializza la scansione della lista Fine ripeti 31 maggio 2011

16 Informatica Grafica a.a DICGIM – University of Palermo Algoritmo Depth-Sort 31 maggio 2011

17 Informatica Grafica a.a DICGIM – University of Palermo Algoritmo BSP tree lalgoritmo BSP (Binary Space Partition) tree, crea un albero di partizioni dello spazio in coppie di semispazi front-facing e back-facing, rispetto alla normale ogni poligono della lista. A partire da un poligono radice, in ogni partizione sono raccolti i poligoni che si trovano interamente nei due semispazi, mentre quelli che sono intersecati dal piano cui appartiene il poligono radice vengono divisi in due. Il processo si ripete, scegliendo un nuovo poligono radice per ogni semispazio. 31 maggio 2011

18 Informatica Grafica a.a DICGIM – University of Palermo Esempio di BSP tree 31 maggio 2011

19 Informatica Grafica a.a DICGIM – University of Palermo Algoritmo di visita del BSP tree Se il punto di vista è di fronte al poligono_radice Visita il sottoalbero back Mostra poligono_radice Visita il sottoalbero front Altrimenti Visita il sottoalbero front Mostra poligono_radice Visita il sottoalbero back 31 maggio 2011

20 Informatica Grafica a.a DICGIM – University of Palermo Algoritmo scan line lalgoritmo scan-line per la DSV possiede molte caratteristiche in comune con lequivalente algoritmo per la scansione raster dei poligoni nel caso bidimensionale: la principale differenza è che viene gestita una lista di poligoni e non un singolo poligono. Lalgoritmo impiega diverse strutture di dati: Tabella degli edge (ET) Tabella dei poligoni (PT) Tabela degli edge attivi (AET) 31 maggio 2011

21 Informatica Grafica a.a DICGIM – University of Palermo Algoritmo scan line La ET è un array di liste di lati di tutti i poligoni, indicizzata con la y min (ordinata dellestremo inferiore) di ognuno di essi. Ogni lato contiene: ID del poligono di appartenenza Lascissa dellestremo inferiore x(y min ) Lordinata dellestremo superiore y max Lincremento x=1/m per il tracciamento del lato in maniera incrementale: x(y + 1) = x (y) + 1/m La PT è una lista i cui elementi contengono: ID del poligono I coefficienti dellequazione del piano I parametri di shading del poligono o il suo colore unico Un flag booleano in, inizialmente posto a false, per indicare se la linea di scansione è interna al poligono 31 maggio 2011

22 Informatica Grafica a.a DICGIM – University of Palermo Edge table 31 maggio 2011

23 Informatica Grafica a.a DICGIM – University of Palermo Tracciamento raster incrementale di una retta (DDA) Una retta sul raster può essere tracciata attraverso la sua equazione y=mx+q Le coordinte raster sono intere quindi: y new =m(x+1) + q=mx + q + m=y + m Vale solo per |m|<=1 per cui ad ogni passo x si incrementa certamente di 1 Nel caso di |m|>1 è certo che y ad ogni passo si incrementa di 1 quindi: x new =(y+1)/m - q/m=(y - q)/m + 1/m = x + 1/m 31 maggio 2011

24 Informatica Grafica a.a DICGIM – University of Palermo Algoritmo scan line Per ogni linea di scansione di quota y c, la AET è costruita dalla ET aggiungendo i lati tali che y min <=y c e rimuovendo quelli per cui y max

25 Informatica Grafica a.a DICGIM – University of Palermo Traccia dellalgoritmo scan-line 31 maggio 2011 y=y0 //minima linea di scansione Ripeti finché AET==null e ET==null Inserisci gli elementi di ET(y) ordinatamente in AET Rimuovi ET(y) Ripeti per ogni elemento i di AET Se AET(i).ymax

26 Informatica Grafica a.a DICGIM – University of Palermo Algoritmo scan line (3) 31 maggio 2011

27 Informatica Grafica a.a DICGIM – University of Palermo Algoritmo di Wieler-Atherton 31 maggio 2011 Lalgoritmo di Wieler-Atherton è un approccio basato sullidea che si possa procedere per successive suddivisioni del piano di proiezione della scena, cercando di individuare delle regioni in cui si possa decidere, senza alcun dubbio, sulla visibilità o meno. Al contrario di altri approcci di tipo image space, come lalgoritmo di Warnock che suddivide il piano in quadranti sempre più piccoli, al più coincidenti con il singolo pixel, questa tecnica ritaglia le porzioni sovrapposte dei vari poligoni della scena.

28 Informatica Grafica a.a DICGIM – University of Palermo Algoritmo di Wieler-Atherton 31 maggio 2011 Ogni poligono della lista, ordinata in senso crescente per massima z di ogni poligono, è utilizzato per effettuare il clipping di tutti gli altri. Tutte le porzioni ritagliate, cioè quelle la cui proiezione ricade allinterno della proiezione del poligono corrente, che si trovano dietro al poligono, sono certamente invisibili e vanno scartate.

29 Informatica Grafica a.a DICGIM – University of Palermo Algoritmo di Wieler-Atherton 31 maggio 2011 Se ci sono porzioni ritagliate che stanno davanti, allora si effettua unoperazione in cui il poligono contenente la porzione ritagliata viene usato per fare il clipping del poligono corrente al fine di determinare la porzione visibile di questultimo, cioè la sua porzione esterna rispetto al poligono di taglio. Questa operazione è, in genere, ricorsiva perché potrebbero esserci più porzioni ritagliate che stanno davanti al poligono corrente.

30 Informatica Grafica a.a DICGIM – University of Palermo Algoritmo di Wieler-Atherton 31 maggio 2011 Alla fine sono disponibili tutte le porzioni visibili che ricadono nellarea del poligono corrente le quali vengono mostrate e si passa al successivo poligono della lista. Per effettuare il clipping si considerano sempre i poligoni originali e non le porzioni visibili.


Scaricare ppt "Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Determinazione."

Presentazioni simili


Annunci Google