ottimizzazione della scena

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

Upload: keala

Post on 23-Feb-2016

51 views

Category:

Documents


0 download

DESCRIPTION

Corso di Programmazione Grafica per il Tempo Reale. Ottimizzazione della scena. Daniele Marini. Esigenze del RT rendering. maggiori frame /sec risoluzione più alta oggetti più accurati e realistici. Limiti?. Dimensioni e risoluzioni di frame buffer e display crescono - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Ottimizzazione della scena

Ottimizzazione della scena

Daniele Marini

Corso di Programmazione Grafica per il Tempo Reale

Page 2: Ottimizzazione della scena

Esigenze del RT rendering• maggiori frame /sec• risoluzione più alta• oggetti più accurati e realistici

2PGTR aa 2010/2011

Page 3: Ottimizzazione della scena

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

3PGTR aa 2010/2011

Page 4: Ottimizzazione della scena

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)

4PGTR aa 2010/2011

Page 5: Ottimizzazione della scena

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

5PGTR aa 2010/2011

Page 6: Ottimizzazione della scena

Bounding Volumes• possono essere:

– Sfere– Scatole (box)

• AABB• OOBB• k-DOP

• E’ la soluzione più comune

6PGTR aa 2010/2011

Page 7: Ottimizzazione della scena

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

7PGTR aa 2010/2011

Page 8: Ottimizzazione della scena

8

Vogliamo trovare l’oggetto cliccato

1) Test primala radice2) Scendi ’albeero ricorsivamente3) Termina quando possibile

In generale: O(log n) invece di O(n)

click!

PGTR aa 2010/2011

Page 9: Ottimizzazione della scena

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(logkn) con n numero totale nodi (interni e foglie)

9PGTR aa 2010/2011

Page 10: Ottimizzazione della scena

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=k0+k1+..+kh=(kh+1-1)/(k-1)• il numero delle foglie è: l=kh il numero dei nodi

interni è: i=n-l• se l’albero è binario k=2 e n=2l-1=2*2h-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

10PGTR aa 2010/2011

Page 11: Ottimizzazione della scena

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.

11PGTR aa 2010/2011

Page 12: Ottimizzazione della scena

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

12PGTR aa 2010/2011

Page 13: Ottimizzazione della scena

AA BSP trees1. l’intera scena viene racchiusa in un AABB2. la scatola viene suddivisa ricorsivamente con

piani allineati alle facce del AABB3. i piani possono essere scelti in modo:

1. dividere il volume esattamente a metà2. mettere nei sottovolumi circa la metà della

geometria4. la ricorsione termina quando si giunge a una

soglia1. può essere l’altezza massima dell’albero2. oppure il numero di primitive contenuto in un

sottospazio è inferiore a una soglia

13PGTR aa 2010/2011

Page 14: Ottimizzazione della scena

Suddividere sull’asse più lungo

14

x + lungo Trova box minima

Taglia lungo asse + lungo

Trova box minima

PGTR aa 2010/2011

Page 15: Ottimizzazione della scena

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

15PGTR aa 2010/2011

Page 16: Ottimizzazione della scena

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

16PGTR aa 2010/2011

Page 17: Ottimizzazione della scena

PA BSP trees1. 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

17PGTR aa 2010/2011

Page 18: Ottimizzazione della scena

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

18PGTR aa 2010/2011

Page 19: Ottimizzazione della scena

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

19PGTR aa 2010/2011

Page 20: Ottimizzazione della scena

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

Page 21: Ottimizzazione della scena

21

AB

C

D

E

F

G

A

B C

D E F G

Ordinamento di occlusione (non di distanza):G C F A E B D

PGTR aa 2010/2011

Page 22: Ottimizzazione della scena

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 tree22PGTR aa 2010/2011

Page 23: Ottimizzazione della scena

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!)

23PGTR aa 2010/2011

Page 24: Ottimizzazione della scena

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

24PGTR aa 2010/2011

Page 25: Ottimizzazione della scena

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

visiva25PGTR aa 2010/2011

Page 26: Ottimizzazione della scena

26PGTR aa 2010/2011

Page 27: Ottimizzazione della scena

Livelli di dettaglio LOD• lo switching può provocare effetti di

popping• diverse tecniche:

– a geometria discreta, – blending, – alpha– CLOD e geomorphing

27PGTR aa 2010/2011

Page 28: Ottimizzazione della scena

Livelli di dettaglio LOD• geometria discreta

– si usano modelli a dettaglio differente e distinti

– quando necessario avviene lo switching– manifesta effetti di popping

28PGTR aa 2010/2011

Page 29: Ottimizzazione della scena

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

29PGTR aa 2010/2011

Page 30: Ottimizzazione della scena

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)

30PGTR aa 2010/2011

Page 31: Ottimizzazione della scena

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

31PGTR aa 2010/2011

Page 32: Ottimizzazione della scena

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)

32PGTR aa 2010/2011