Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
1
Computer Graphics
Marco Tarini
Università dell’Insubria
Facoltà di Scienze MFN di Varese
Corso di Laurea in Informatica
Anno Accademico 2012/13
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 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 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 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 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 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 ProjectinTrace 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
Rasterization is fast, but needs cleverness to support complex visual effects.
Ray tracing supports complex visual effects, but needs cleverness to be fast.
David Luebke (NVIDIA)