1
Computer Graphics
Marco Tarini Università dell’Insubria
Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2012/13
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 2 / 1 3 ‧ 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 2 / 1 3 ‧ 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 2 / 1 3 ‧ 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 2 / 1 3 ‧ 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 2 / 1 3 ‧ 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 2 / 1 3 ‧ 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 2 / 1 3 ‧ 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 2 / 1 3 ‧ 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 2 / 1 3 ‧ 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:
– GPU non pensata per ray-tracing
– 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 2 / 1 3 ‧ 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 2 / 1 3 ‧ 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?
(esperimenti negli anni
2000)
3
RayTracing su GPU (es su 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 2 / 1 3 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a 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 2 / 1 3 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
“Real Time Ray-Tracing: The End of Rasterization?” (Jeff Howard )
Un paragone meno forzato
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 2 / 1 3 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Ray-tracing (VS rasterization-based):
semplicità ed eleganza?
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 2 / 1 3 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
un intero raytracer su una buseness card :-P !
(by Paul Heckbert)
Ma…
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 2 / 1 3 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a