1 Superfici nascoste Daniele Marini. 2 Ray casting adatto a CSG o superfici parametriche dipende dal punto di vista è una sorta di campionamento spaziale.

Slides:



Advertisements
Presentazioni simili
Coordinate di un punto P(x,y,z)
Advertisements

Ombre e riflessioni in tempo reale
Geometria analitica dello spazio
1 la Torre Berardino Force rendering & Collision detection Dipartimento di Ingegneria dellInformazione Siena Ore F1F1 F2F2.
ELETTROMAGNETISMO APPLICATO ALL'INGEGNERIA ELETTRICA ED ENERGETICA
Curve e Superfici Il mondo non è fatto di rette e poligoni.
Corso di Informatica grafica 1 Introduzione Quando si rappresentano modelli di oggetti 3D costituiti da facce poligonali secondo delle proiezioni alcune.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 Lezione.
Seminario su clustering dei dati – Parte II
Architetture per la sintesi di immagini Daniele Marini Gennaio 2000.
Scan conversione di poligoni
Modelli Globali Daniele Marini.
Smoothing Daniele Marini.
Modellare 1 Daniele Marini.
Il calcolo di radiosity
1 Effetti impressionistici Daniele Marini. 2 Tecniche discrete di manipolazione del frame buffer: –Texture mapping –Antialiasing –Compositing –Alpha blending.
Lavorare con le matrici in OGL
1 Modelli Globali Radiosity Daniele Marini. 2 Radiosity Bilancio radiativo in un ambiente chiuso (senza scambio di energia con lesterno) Indipendente.
4 aprile 2011 Modellazione Solida Prof. Roberto Pirrone.
Determinazione delle superfici visibili
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Daniele Marini Con contributi di Maurizio Rossi
Le proiezioni e la prospettiva
Modelli Globali: Ray Tracing
Daniele Marini, Maurizio Rossi
Texturing - Tessiture Daniele Marini.
Daniele Marini Con contributi di Maurizio Rossi
Le ombre proiettate Daniele Marini.
1 Scan conversione di poligoni Daniele Marini. 2 Test interno-esterno Scan conversione di un poligono = decidere se pixel interno Test di intersezione:
Dal modello alla visualizzazione: Verso il foto realismo Daniele Marini.
Architettura di OGL e pipe-line Daniele Marini Corso Di Programmazione Grafica.
Corso Di Programmazione Grafica
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
Le proiezioni e la prospettiva
Le proiezioni e la prospettiva
Programmazione grafica 1
Superfici nascoste Daniele Marini.
1 Struttura di un sistema grafico e frame buffer Daniele Marini.
1 Visualizzazione scientifica Daniele Marini. 2 Visualizzazione scientifica Trovare un modo per rendere i risultati di un calcolo scientifico, o rilevati.
1 Il rendering Daniele Marini. 2 Fasi del rendering Modellare Elaborazione geometrica - geometric processing Rasterizzazione Display.
Pippo.
Modelli di Illuminazione
1 Ottimizzazione della scena: culling (decimazione) Daniele Marini.
Controllare le proiezioni
Intersezioni e distanze
Intersezioni e distanze
Collisioni Corso di Programmazione Grafica e Laboratorio Daniele Marini.
Corso di Programmazione Grafica e Laboratorio Daniele Marini
Architettura di OGL e pipe-line Daniele Marini Corso Di Programmazione Grafica.
1 Ottimizzazione della scena Daniele Marini. 2 Esigenze del RT rendering maggiori frame /sec risoluzione più alta oggetti più accurati e realistici.
Rotazioni e quaternioni
Ottimizzazione della scena Daniele Marini. Esigenze del RT rendering maggiori frame /sec risoluzione più alta oggetti più accurati e realistici 2 Programmazione.
Controllare la prospettiva
Ombre e riflessioni in tempo reale Daniele Marini Parzialmente tratte de: Haines-M ö ller Corso di Programmazione Grafica aa2006/2007.
1 Ottimizzazione della scena Daniele Marini. 2 Esigenze del RT rendering maggiori frame /sec risoluzione più alta oggetti più accurati e realistici.
Controllare la prospettiva
Architettura di OGL e pipe-line Daniele Marini Davide Gadia Davide Selmo Corso Di Programmazione Grafica aa2005/2006.
Collisioni Corso di Programmazione Grafica e Laboratorio Daniele Marini.
Intersezioni e distanze Daniele Marini Corso di Programmazione Grafica per il Tempo Reale.
Collisioni Corso di Programmazione Grafica e Laboratorio Daniele Marini.
Controllare le proiezioni Daniele Marini Corso Di Programmazione Grafica aa 2007/2008.
Ottimizzazione della scena: culling (decimazione) Daniele Marini.
Ottimizzazione della scena: culling (decimazione) Daniele Marini Corso di Programmazione Grafica per il Tempo Reale.
Ottimizzazione della scena Daniele Marini Corso di Programmazione Grafica per il Tempo Reale.
Controllare le proiezioni
Collisioni Daniele Marini Corso di Programmazione Grafica per il Tempo Reale.
Risolvere sistemi lineari
Paola Disisto, Erika Griffini, Yris Noriega.  Insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce.
UNITA’ OPERATIVA DISI UNIVERSITA’ DI GENOVA Progetto MURST 5% Multimedialita’ Linea di ricerca 4 “Applicazione ai beni culturali”
Transcript della presentazione:

1 Superfici nascoste Daniele Marini

2 Ray casting adatto a CSG o superfici parametriche dipende dal punto di vista è una sorta di campionamento spaziale della geometria

3 scegli COP e WINDOW for tutte le linee di scansione do for tutti i pixel nella linea do begin determina retta COP-pixel for ogni oggetto nella scena do if retta interseca oggetto e oggetto è il più vicino a COP then attiva pixel end

4 Per il calcolo della intersezione si rappresenta la retta in forma parametrica e se loggetto è rappresentato in forma analitica si calcola lintersezione, altrimenti si usano metodi approssimati (es. Newton) Il calcolo delle intersezioni è molto costoso, si può ridurre con varie tecniche: boundong box o b. volume, orientare la scena con la retta COP-pixel coincidente con z, organizzazione gerarchica dei volumi, partizionamento dello spazio (octree o BSPtree)

5 Ray casting CSG Testare le relazioni booleane:

6 Se la scena è composta di più oggetti con operatori booleani, si determina loggetto visibile applicando gli operatori booleani ai tratti di retta COP-pixel che intersecano gli oggetti Il metodo di ray casting risolve automaticamente anche il problema delle superfici nascoste.

7 Superfici nascoste in scene con poliedri Si abbiano oggetti composti da n poligoni per ogni pixel della immagine: determina loggetto più vicino allosservatore (COP) calcola il valore del pixel se p è il numero di pixel il problema è O(n.p) questo approccio limita la precisione a livello di immagine ( image precision )

8 Un approccio object precision ha complessità dellordine O(n 2 ), richiede il confronto tra tutti gli oggetti per decidere chi è davanti e chi dietro rispetto allosservatore.

9 Sfruttare la coerenza: tra oggetti: oggetti disgiunti non richiedono confronto di vicinanza tra facce: le proprietà di superficie variano lentamente e si può procedere in modo incrementale tra spigoli: uno spigolo può decidere il cambio di visibilità quando delimita facce orientate opposte allosservatore o quando delimita facce che si intersecano scan_line: tra due linee di scansione adiacenti le variazioni sono piccole (metodi incrementali) darea :pixel vicini sono coperti dalla stessa faccia visibile di profondità: la profondità dei punti di una stessa faccia cambia meno che tra punti di facce diverse (ancora metodi incrementali) di frame: valida per sequenze di immagini (sfruttata dai metodi di compressione video)

10 Ogni metodo di rimozione di superfici nascoste richiede un test di profondità Va eseguito in coordinate 3D prima della proiezione piana. Si può eseguire in coordinate normalizzate se si adotta la matrice canonica N persp Come decidere se un punto p 1 maschera un punto p 2 ? occorre prima testare se (COP, p 1 e p 2 ) sono colineari, in tal caso si può confrontare direttamente z 1 con z 2.

11 Per decidere la colinearità: se è una proiezione parallela condizione necessaria e sufficiente è: x 1 =x 2 e y 1 =y 2 se è una proiezione prospettica CNS è: x 1 /z 1 =x 2 /z 2 per evitare la divisione si esegue il test prima di deformare lo spazio prospettico (proiezione parallela)

12 Per escludere poligoni che non si possono eventualmente mascherare si esegue un test su bounding box, o test minimax:

13 Back face culling - rimozione facce autonascoste e spigoli autonascosti n.DOP > 0 dove DOP = (0, 0, -1) si riduce a un test sul segno di n z

14 Per ottimizzare il metodo si ricorre al partizionamento spaziale: partizionamento regolare (griglie) partizionamento adattivo (BSPtree, quadtree, octree) gerarchie di oggetti

15 Z-Buffer

16 Procedure z_buffer; var pz:integer; begin for y:=0 to YMAX do for x:=0 to XMAX do begin WritePixel(x,y,background_color); WriteZbuffer(x,y,0) end for each polygon do for each pixel in polygons projection do begin pz:=polygons z_value in (x,y) if pz >= ReadZbuffer(x,y) then begin WriteZbuffer(x,y,pz); WritePixel(x,y,polygons color at (x,y)) end end.

17 Calcolo di z in (x,y) per un triangolo: equazione del piano del triangolo: Ax+By+Cz+D = 0 z = (-D -Ax-By)/C noto z 1 in (x,y) si calcola z 2 in (x+ x, y+ y): z1 - A. x/C ma A/C =cost, x=1 e si riduce a una sottrazione

18 Problemi dello z-buffer

19 Suddivisione ricorsiva: Warnock Suddivisione ricorsiva dello spazio immagine, fino al livello del singolo pixel Criteri di colorazione: –Un poligono circonda un quadrante –Un poligono interseca un quadrante –Un poligono è contenuto in un quadrante –Poligono e quadrante sono disgiunti

20