3
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

Computer Graphics Ray-Tracing - CNRvcg.isti.cnr.it/~tarini/teaching/cg12/Lez15.Raytracing.pdfSolid 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

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

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

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

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

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)

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

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)