Ottimizzazione della scena Daniele Marini Corso di Programmazione Grafica per il Tempo Reale.

Slides:



Advertisements
Presentazioni simili
Appunti di analisi matematica: Integrale Definito
Advertisements

Strutture dati per insiemi disgiunti
Informatica Generale Alessandra Di Pierro
Algoritmi e Strutture Dati
Lez. 91 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Alberi di ricerca.
esponente del radicando
RB-alberi (Red-Black trees)
Alberi binari di ricerca
1 la Torre Berardino Force rendering & Collision detection Dipartimento di Ingegneria dellInformazione Siena Ore F1F1 F2F2.
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Ordinamenti ottimi.
Algoritmi e Strutture Dati
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Strutture dati per.
Algoritmi e Strutture Dati
Corso di Informatica grafica 1 Introduzione Quando si rappresentano modelli di oggetti 3D costituiti da facce poligonali secondo delle proiezioni alcune.
U V U V (a) |cfc|=2 prima e dopo (b) |cfc|=2 prima e |cfc|=1 dopo
Algoritmo di Ford-Fulkerson
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 4 Ordinamento: Heapsort Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Algoritmi e Strutture Dati
Capitolo 9 Il problema della gestione di insiemi disgiunti (Union-find) Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2005/06 Lezione.
Costruzione di Interfacce - Paolo Cignoni1 Costruzione di Interfacce Lezione 30 MMeditor e collision detection
Seminario su clustering dei dati – Parte II
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
1 Modelli di Illuminazione Daniele Marini. 2 Obiettivo Visualizzare scene cercando di simulare al meglio la realtà Interazione luce-materiali –Modellare.
1 Superfici nascoste Daniele Marini. 2 Ray casting adatto a CSG o superfici parametriche dipende dal punto di vista è una sorta di campionamento spaziale.
1 Effetti impressionistici Daniele Marini. 2 Tecniche discrete di manipolazione del frame buffer: –Texture mapping –Antialiasing –Compositing –Alpha blending.
1 Modelli Globali Radiosity Daniele Marini. 2 Radiosity Bilancio radiativo in un ambiente chiuso (senza scambio di energia con lesterno) Indipendente.
Modellazione di terreni a risoluzione adattiva
4 aprile 2011 Modellazione Solida Prof. Roberto Pirrone.
Elementi di Informatica di base
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
Esercizio 10.* Un cassiere vuole dare un resto di n centesimi di euro usando il minimo numero di monete. a) Descrivere un algoritmo goloso per fare ciò.
Determinazione delle superfici visibili
Cominciamo a parlare di tangenti.
1101 = x 10 x 10 x x 10 x = CORRISPONDENZE
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Modelli Globali: Ray Tracing
Image Based Rendering Daniele Marini.
Daniele Marini, Maurizio Rossi
Texturing - Tessiture Daniele Marini.
Superfici nascoste Daniele Marini.
1 Visualizzazione scientifica Daniele Marini. 2 Visualizzazione scientifica Trovare un modo per rendere i risultati di un calcolo scientifico, o rilevati.
Modelli di Illuminazione
1 Ottimizzazione della scena: culling (decimazione) Daniele Marini.
Intersezioni e distanze
Intersezioni e distanze
Collisioni Corso di Programmazione Grafica e Laboratorio Daniele Marini.
1 Ottimizzazione della scena Daniele Marini. 2 Esigenze del RT rendering maggiori frame /sec risoluzione più alta oggetti più accurati e realistici.
Ottimizzazione della scena Daniele Marini. Esigenze del RT rendering maggiori frame /sec risoluzione più alta oggetti più accurati e realistici 2 Programmazione.
1 Ottimizzazione della scena Daniele Marini. 2 Esigenze del RT rendering maggiori frame /sec risoluzione più alta oggetti più accurati e realistici.
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.
Ottimizzazione della scena: culling (decimazione) Daniele Marini.
Ottimizzazione della scena: culling (decimazione) Daniele Marini Corso di Programmazione Grafica per il Tempo Reale.
Collisioni Daniele Marini Corso di Programmazione Grafica per il Tempo Reale.
Corso di Algoritmi e Strutture Dati con Laboratorio A.A. 2014/15 Alberi bilanciati (rif. Algoritmi in Java, di R. Sedgewick)
1 PerfectFit06 Sistema di personalizzazione dei contenuti per gli scavi archeologici di Ercolano Candidato: Vincenzo Scognamiglio Relatore: Prof. Ernesto.
Alberi CORDA – Informatica A. Ferrari Testi da
alberi completamente sbilanciati
Prof.ssa Rossella Petreschi Lezione del 17 /10/2014 del Corso di Algoritmica Lezione n°5.
Transcript della presentazione:

Ottimizzazione della scena Daniele Marini Corso di Programmazione Grafica per il Tempo Reale

Esigenze del RT rendering maggiori frame /sec risoluzione più alta oggetti più accurati e realistici 2 PGTR aa 2010/2011

Limiti? Dimensioni e risoluzioni di frame buffer e display crescono complessità della scena cresce, ci sono modelli con 500 Mtriangoli o più qualità del rendering cresce quindi: occorre accelerare gli algoritmi 3 PGTR aa 2010/2011

Escogitare strutture dati adeguate il problema della accelerazione è determinato dalla complessità computazionale di un problema di ricerca: –trova gli elementi della scena che devono certamente venire visualizzati (oppure che non devono certamente venire visualizzati) lo scopo è di ridurre il numero di elementi da esaminare e trasformare organizzare la geometria in qualche spazio per accelerare il problema di ricerca, es: da O(n) a O(logn) 4 PGTR aa 2010/2011

Soluzioni: strutture dati spaziali tre tipi principali di strutture dati spaziali: –gerarchia di volumi di contenimento - bounding volume hierarchy BVH –alberi a partizione binaria dello spazio binary space partition trees BSP trees –alberi a otto rami octrees 5 PGTR aa 2010/2011

Bounding Volumes possono essere: –Sfere –Scatole (box) AABB OOBB k-DOP E’ la soluzione più comune 6 PGTR aa 2010/2011

Bounding Volumes La gerarchia di BV è organizzata ad albero, le foglie contengono l’effettiva geometria, nodi interni contengono puntatori a nodi figli o a nodi foglia ogni nodo, incluse le foglie, comprende il BV della geometria contenuta la radice ha un BV che contiene l’intera geometria della scena 7 PGTR aa 2010/2011

8 Vogliamo trovare l’oggetto cliccato 1)Test primala radice 2)Scendi ’albeero ricorsivamente 3)Termina quando possibile In generale: O(log n) invece di O(n) click! PGTR aa 2010/2011

Alberi di BV in generale alberi a k figli, k-ary trees è definito il concetto di livello: la radice ha livello 0, una foglia discendente dalla radice ha livello 1 etc. un albero è bilanciato se tutti i nodi foglia sono al livello h in un albero bilanciato il livello massimo è floor(log k n) con n numero totale nodi (interni e foglie) 9 PGTR aa 2010/2011

Alberi di BV un albero è pieno (full) se tutti i nodi foglia sono alla stessa altezza h (k è l’ordine dell’albero) il numero totale di nodi di un albero pieno è: n=k 0 +k k h =(k h+1 -1)/(k-1) il numero delle foglie è: l=k h il numero dei nodi interni è: i=n-l se l’albero è binario k=2 e n=2l-1=2*2 h -1 più elevato è k minore è l’altezza dell’albero, più rapido l’attraversamento l’albero binario è il più semplice da trattare si è verificato che l’efficienza maggiore si ottiene con alberi di ordine k=2 o k=4 o k=8 10 PGTR aa 2010/2011

Alberi BV La costruzione di un albero con k=8 si fa semplicemente dividendo lo spazio lungo i tre assi principali con alberi BV la ricerca di intersezioni è ricorsiva dalla radice; se un raggio non interseca un BV non interseca neppure la geometria contenuta, e la ricerca nel sottoalbero può terminare Nel caso di scene dinamiche la gerarchia BV deve venire aggiornata: se il volume è spostato si controlla se appartiene ancora allo stesso BV, altrimenti si rimuove il volume e si ricomputa il padre, risalendo se necessario la gerarchia fino alla radice Per computare un BV occorre trovare una scatola che racchiude in modo efficiente i volumi della scena. 11 PGTR aa 2010/2011

BSP trees due varianti principali: –allineati agli assi axis aligned (aa) –allineati ai poligoni polygon aligned (pa) si crea un BSP tree bisecando ricorsivamente lo spazio con piani un vantaggio è che se l’albero è percorso in modo opportuno, il contenuto geometrico dell’albero può venire ordinato secondo qualunque punto di vista (approssimato con AA esatto con PA ) –questo non è possibile con alberi BV 12 PGTR aa 2010/2011

AA BSP trees 1.l’intera scena viene racchiusa in un AABB 2.la scatola viene suddivisa ricorsivamente con piani allineati alle facce del AABB 3.i piani possono essere scelti in modo: 1.dividere il volume esattamente a metà 2.mettere nei sottovolumi circa la metà della geometria 4.la ricorsione termina quando si giunge a una soglia 1.può essere l’altezza massima dell’albero 2.oppure il numero di primitive contenuto in un sottospazio è inferiore a una soglia 13 PGTR aa 2010/2011

Suddividere sull’asse più lungo 14 x + lungo Trova box minima Taglia lungo asse + lungo Trova box minima PGTR aa 2010/2011

AA BSP trees la strategia nella ricorsione può essere: –ciclare a turno con piani orientati con gli assi: k-d trees si incomincia dividendo lungo x, poi i figli vengono suddivisi lungo y e i nipoti lungo z, e si ripete il ciclo –trovare il lato massimo del volume e suddividerlo in tal caso per avere un albero bilanciato bisogna dividere in modo che i due semispazi abbiano circa lo stesso numero di primitive, ma questo ha un costo 15 PGTR aa 2010/2011

AA BSP trees come è ordinata approssimatamente la geometria secondo il punto di vista? –sia N il nodo in esame –N diviene la radice da cui continua l’esplorazione dell’albero –l’attraversamento dell’albero prosegue nel semispazio in cui si trova il punto di vista –l’attraversamento di questo semispazio termina quando qualche BV è dietro l’osservatore (il piano near) –Si affronta poi l’attraversamento dell’altro semispazio –L’attraversamento produce un ordinamento vicino-lontano degli oggetti 16 PGTR aa 2010/2011

PA BSP trees 1.si sceglie un poligono come luogo di divisione dello spazio (il piano del poligono è il piano di divisione) 2.ogni poligono intersecato dal piano di divisione viene suddiviso un due sotto poligoni 3.ricorsivamente in ciascun semispazio si sceglie un nuovo poligono che definisce il nuovo piano di divisione 17 PGTR aa 2010/2011

PA BSP trees il processo termina quando tutti i poligoni sono stati esaminati è costoso, in genere si usa per scenari statici e viene pre-computato si cerca di creare alberi bilanciati, scegliendo poligoni che dividono circa a metà il sottospazio 18 PGTR aa 2010/2011

PA BSP trees strategia di scelta bilanciata: –si sceglie a caso un numero di candidati –oppure si sceglie quello il cui piano suddivide meno poligoni è stato dimostrato che in una scena con 1000 poligoni, 5 poligoni scelti a caso bastano per creare un albero bilanciato 19 PGTR aa 2010/2011

PA BSP trees 20 ordinamento secondo il punto di vista –dato il punto di vista l’albero può essere attraversato in ordine secondo la direzione di vista, dal più lontano al più vicino –si determina da che parte si trova il punto di vista rispetto al nodo corrente (radice corrente) –i poligoni nell’altro semispazio sono dietro l’osservatore –si cerca ricorsivamente nel semispazio visibile un nuovo piano che è più vicino al punto di vista –si crea un ordinamento di poligoni dal più vicino al più lontano adatti a un algoritmo del pittore (non si usa lo z-buffer) PGTR aa 2010/2011

21 A B C D E F G A BC DEFG Ordinamento di occlusione (non di distanza): G C F A E B D PGTR aa 2010/2011

Octrees simile a un AA BSP tree suddivisione uniforme dello spazio: il punto di divisione in tre piani ortogonali è sempre al centro del sottospazio gli oggetti sono sempre nei nodi foglia (criterio di terminazione) si tratta come AA BSP tree 22 PGTR aa 2010/2011

Scene graph Anche i grafi di scena possono essere usati per organizzare lo spazio oltre alla geometria possono registrare informazioni per il rendering e trasformazioni può essere organizzato ad albero i nodi possono avere associato anche un BV i nodi possono avere associato un intero albero di qualunque tipo (organizzazione gerarchica di scene complesse con oggetti in movimento anche gerarchici: le trasformazioni sono nei nodi!) 23 PGTR aa 2010/2011

Livelli di dettaglio LOD usare versioni semplificate di un modello in funzione della distanza di osservazione spesso con LOD si usa effetto fog per mascherare i minori dettagli tre parti: –generazione dei LOD –scelta del LOD –switching tra LOD 24 PGTR aa 2010/2011

Livelli di dettaglio LOD la generazione dei modelli LOD avviene in fase di modellazione o in modo manuale o automatico con algoritmi di semplificazione la selezione del LOD avviene stimando l’area di schermo utilizzata, fissando soglie –si sfruttano anche criteri di percezione visiva 25 PGTR aa 2010/2011

26PGTR aa 2010/2011

Livelli di dettaglio LOD lo switching può provocare effetti di popping diverse tecniche: –a geometria discreta, –blending, –alpha –CLOD e geomorphing 27 PGTR aa 2010/2011

Livelli di dettaglio LOD geometria discreta –si usano modelli a dettaglio differente e distinti –quando necessario avviene lo switching –manifesta effetti di popping 28 PGTR aa 2010/2011

Livelli di dettaglio LOD blending –si può interpolare geometricamente tra i due modelli ottenendo un blending –è costoso, si fa il rendering di due oggetti invece che di uno solo –avviene solo per alcuni oggetti quindi il costo può essere accettabile –ci sono problemi per l’ordine con cui gli oggetti vengono trattati nello z-buffer (artefatti) –un modo per passare da LOD1 a LOD2 riducendo l’effetto popping è di usare alpha buffer facendo crescere la visibilità di LOD2 e decrescere quella di LOD1 29 PGTR aa 2010/2011

Livelli di dettaglio LOD alpha –gli oggetti sono tutti allo stesso LOD –in funzione dell’area schermo utilizzata si controlla la trasparenza dell’oggetto: al crescere della distanza e al ridursi del numero di pixel coinvolti, la trasparenza dell’oggetto cresce (operando su alpha buffer) fino a scomparire –dà luogo a un effetto gradevole e molto continuo, senza artefatti; –accelerazione effettiva nel rendering si ha solo quando l’oggetto scompare (sotto la soglia di visibilità fissata) 30 PGTR aa 2010/2011

Livelli di dettaglio LOD CLOD (continuous level of detail CLOD) –la semplificazione che si usa per generare diversi LOD viene sfruttata animando il processo di semplificazione stesso –si anima il collasso di ogni edge –se i valori intermedi vengono salvati il processo si può invertire (vertex split) –richiede una precisa definizione del numero di poligoni di ciascun livello 31 PGTR aa 2010/2011

Livelli di dettaglio LOD geomorph –si crea l’insieme dei modelli a diversi LOD conservando la connettività tra i vertici –al cambiare del LOD si sfrutta la connettività per animare la trasformazione per interpolazione –alla fine della trasformazione si opera solo sul nuovo LOD –l’interpolazione ha un costo –gli oggetti sono in continua trasformazione (con le texture questo è fastidioso) 32 PGTR aa 2010/2011