Computer Graphics Ray-Tracing - CNRvcg.isti.cnr.it/~tarini/teaching/cg10/Lez15.Raytracing...Solid...
Transcript of Computer Graphics Ray-Tracing - CNRvcg.isti.cnr.it/~tarini/teaching/cg10/Lez15.Raytracing...Solid...
Computer Graphics
Università dell’Insubria
Facoltà di Scienze MFN di Varese
Corso di Laurea in Informatica
Lezione 15Lezione 15Lezione 15Lezione 15 ::::Paradigmi di rendering
RAY-TRACING
Marco Tarini
Corso di Laurea in Informatica
Anno Accademico 2010/11
RAY-TRACING
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
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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i apunto di vista screen buffer
Ray-Tracing
• Implementazione:– tutta basata su
intersezione raggio-primitive (che va super-ottimizzata)
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 0 / 1 1 ‧ 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 0 / 1 1 ‧ 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 0 / 1 1 ‧ 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
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 0 / 1 1 ‧ 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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
( Advanced Rendering Toolkit - Alexander Wilkie - 1999)
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 0 / 1 1 ‧ 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 in verità SUBLINEARE col numero di primitive
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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
– ma in verità SUBLINEARE col numero di primitive• se vengono usate strutture dati adeguate
• In pratica, usato solo per rendering off-line
• Nota: spesso non usa nessun HW specializzato– implementazioni tipicamente su CPU– trend recente: implementazioni su GP-GPU o CUDA
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
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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
– superfici implicite• sfere• GSM• …
Modelling
Ray-Tracing: HW apposito?
HW specializzatoper fare RayTracing.
Per ora, solo prototipinei laboratori.
Stessa idea base (parallelizzare).
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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Scene: 5 alberi (milionate di triangoli) 28mila girasoli (11 tipi), 35K triangoli ciascuno.
OpenRT ProjectinTrace Realtime Ray Tracing Technologies GmbHMPI Informatik, Saarbrueken - Ingo Wald 2004
(parallelizzare).
Implementazionedel tutto differentedal nostro pipelinedi rasterizzazione.
Sfonderà?
Computer Graphics
Università dell’Insubria
Facoltà di Scienze MFN di Varese
Corso di Laurea in Informatica
Lezione 14:Lezione 14:Lezione 14:Lezione 14:Paradigmi di rendering 2/2
Radiosity
Marco Tarini
Corso di Laurea in Informatica
Anno Accademico 2010/11
Radiosity
• Algoritmo di illuminazione globale• Gestisce bene riflessioni multiple diffusive
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 0 / 1 1 ‧ 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 uguali– (non necessariamente come 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 0 / 1 1 ‧ 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!)
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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
• 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)
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 0 / 1 1 ‧ 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 (in slang: “backed” lighting)
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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
– può essere salvato nella scena • come colore per vertice• o in una tessitura, etc• (stiamo assumendo materiali lambertiani)
– 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)
Radiosity: 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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a