Computer Graphics Ray-Tracingvcg.isti.cnr.it/~tarini/teaching/cg11/Lez15.Raytracing...Microsoft...
Transcript of Computer Graphics Ray-Tracingvcg.isti.cnr.it/~tarini/teaching/cg11/Lez15.Raytracing...Microsoft...
1
Computer Graphics
Marco Tarini
Università dell’Insubria
Facoltà di Scienze MFN di Varese
Corso di Laurea in Informatica
Anno Accademico 2011/12
Lezione 15Lezione 15Lezione 15Lezione 15 ::::Paradigmi di rendering
RAY-TRACING
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Ray-Tracing
• Idea: si seguono a ritroso i raggi di luce che giungono all’osservatore
– per ogni pixel sullo schermo:• mando un raggio (il "raggio primario" di quel pixel)
• trovo la sua 1ma intersezione con un oggetto della scena
punto di vista screen buffer
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Ray-Tracing
• Implementazione:– tutta basata su
intersezione raggio-primitive (che va super-ottimizzata)
punto di vista screen bufferM a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Ray-Tracing
• Facile fare: ombre portate (nette)raggio primario
raggio di shadowing (interseca, quindi il punto e' in ombra)
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Ray-Tracing
• Facile fare: riflessioni speculari (anche multiple)raggio primario
raggio di riflessione
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Ray-Tracing
• Facile fare: semitrasparenze con rifrazioniraggio primario
raggio di riflessione
raggio di rifrazione
2
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Ray-Tracing: tipici esempi di risultati
( Advanced Rendering Toolkit - Alexander Wilkie - 1999)
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Ray-Tracing: tipici esempi di risultati
( Advanced Rendering Toolkit - Alexander Wilkie - 1999)
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Ray-Tracing : tipici esempi di risultati
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Ray-Tracing : costo
• Task principale:– computo dell'intersezione fra RAGGIO 3D e PRIMITIVE 3D
• E' computazionalmente caro– costanti alte– ma SUBLINEARE col numero di primitive
• se vengono usate strutture dati adeguate• (es, strutture di indicizzazione spaziale)
• In pratica, usato quasi solo per rendering off-line• Nota: spesso non usa nessun HW specializzato
– implementazioni tipicamente su CPU– trend recente: implementazioni su GP-GPU o CUDA
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Ray-Tracing : Primitive di rendering
Q: quali primitive di randering x raytracing?A: qualunque cosa io sappia intersecare con un raggio!
Es:– triangoli – superfici implicite
• sfere• GSM• …
Goemetric Solid
Modelling
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Ray-Tracing: HW apposito?
Scene: 5 alberi (milionate di triangoli) 28mila girasoli (11 tipi), 35K triangoli ciascuno.
OpenRT ProjectinTrace Realtime Ray Tracing Technologies GmbH
MPI Informatik, Saarbrueken - Ingo Wald 2004
HW specializzato
per fare RayTracing.
Per ora, solo prototipi
nei laboratori.
Stessa idea base
(parallelizzare).
Implementazione
del tutto differentedal nostro pipeline
di rasterizzazione.
Sfonderà?
3
Computer Graphics
Marco Tarini
Università dell’Insubria
Facoltà di Scienze MFN di Varese
Corso di Laurea in Informatica
Anno Accademico 2011/12
Lezione 14:Lezione 14:Lezione 14:Lezione 14:Paradigmi di rendering 2/2
Radiosity
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Radiosity
• Classe di algoritmi di illuminazione globale• Gestiscono bene riflessioni multiple diffusive• Tipicamente assumono materiali Lambertiani!
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Radiosity: Concetto
• Dividere la scena in “pezzetti di superficie”– circa stessa area– (e non necessariamente sono i nostri triangoli...)
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Radiosity: Concetto
• Dividere la scena in pezzetti• Per ogni coppia di pezzetti i e j
– calcolare quanta luce ...• che parte da i• e si diffonde in tutte le direzioni (DIFFUSE!)
– ... raggiunge j
• Alcuni pezzetti emanano luce propria (le fonti di luce)
– gli altri diffondono solo quella che gli arriva da fuori
• Poi risolvere tutto (facile a dirsi)
la matriciona corrsipondentee' detta Form Factor
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Radiosity: Come
• Vecchia scuola:– invertire una matrice enorme
• Come si fa davvero:– metodi randomizzati stocastici (Monte Carlo)
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Radiosity: Costo
• E troppo caro da calcolare in tempo reale– e sarà così a lungo
• Ma... il risultato di questa computazione NON dipendedal punto di vista! (è "view independent")
– può essere salvato nella scena (“baked” lighting)• come colore per vertice• o in una tessitura, etc
– e renderizzato in real-time tramite rasterizzazione:• almeno finché cambia solo il punto di vista
– (ne' l'illuninazione, ne' la scena)• togliendo il lighting (almento le componenti AMBIENT e DIFFUSE)
4
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Radiosity: Costo
• Approssimazione (al prim’ordine) di Radiosity:– “ambient occlusion”!
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Radiosity: esempi di risultati