1
Computer Graphics
Marco Tarini Università dell’Insubria
Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2011/12
Lezione 15 Lezione 15 Lezione 15 Lezione 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 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
• 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 rifrazioni
raggio 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 Project
inTrace 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 differente dal 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 corrsipondente e' 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 dipende dal 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