Computer Graphics Ray-Tracing - CNRvcg.isti.cnr.it/~tarini/teaching/cg10/Lez15.Raytracing...Solid...

3
Computer Graphics Università dell’Insubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Lezione 15 Lezione 15 Lezione 15 Lezione 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 a punto 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 rifrazioni raggio 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

Transcript of Computer Graphics Ray-Tracing - CNRvcg.isti.cnr.it/~tarini/teaching/cg10/Lez15.Raytracing...Solid...

Page 1: Computer Graphics Ray-Tracing - CNRvcg.isti.cnr.it/~tarini/teaching/cg10/Lez15.Raytracing...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

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

Page 2: Computer Graphics Ray-Tracing - CNRvcg.isti.cnr.it/~tarini/teaching/cg10/Lez15.Raytracing...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

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

Page 3: Computer Graphics Ray-Tracing - CNRvcg.isti.cnr.it/~tarini/teaching/cg10/Lez15.Raytracing...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

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