• Non ci sono risultati.

RASTERIZATION BASED:RAY-TRACING

N/A
N/A
Protected

Academic year: 2021

Condividi "RASTERIZATION BASED:RAY-TRACING"

Copied!
12
0
0

Testo completo

(1)

3D Rendering

Immagine Scena 3D rendering

...

modello 3D

• punti 3D

• primitive...

1

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 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

3D Rendering

Scena 3D rendering image

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 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

3D Rendering

Scena 3D rendering RASTER

image

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 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Computer Graphics

Marco Tarini

Università dell’Insubria

Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2014/15

Rendering algorithms: overview

(2)

Rendering algorithms

• To visualize 3D scenes we need to transform them into a synthetic image that can be displayed on the screen

• Many different algorithms exist to transform a 3D scene into a raster image, we briefly overview two families:

– Raytracing algorithms – Rasterization-based algorithms

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 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Modelling the picture making apparatus

• Human Visual System • Camera

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 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

CCD or film lens

Pin-Hole camera Pin-Hole camera

focal distance

(3)

3D Scene and Photons

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 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

viewpoint

«eye» position

Pin Hole camera

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 4 / 1 5 ‧ 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 4 / 1 5 ‧ 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

viewpoint frame buffer

Ray Tracing pseudo-code

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 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

For each pixel p:

make a ray r (viewpoint to p) for each primitive o in scene:

find intersect(r,o)

keep closest intersection o j

find color of o j at p

(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 4 / 1 5 ‧ 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)

viewpoint frame 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 4 / 1 5 ‧ 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)

Ray-Tracing

• Facile fare: riflessioni speculari (anche multiple)

raggio primario raggio di riflessione

Ray-Tracing

• Facile fare: semitrasparenze con rifrazioni

raggio primario

raggio di riflessione

raggio di rifrazione

(5)

Ray Tracing pseudo-code: secondary rays

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 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

For each pixel p:

make a ray r (from viewpoint to p)

while (…)

for each primitive o in scene:

find if intersect(r,o) keep closest intersection;

r = new_bounce( r );

find color for p (according to all path)

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 4 / 1 5 ‧ 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 4 / 1 5 ‧ 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 4 / 1 5 ‧ 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

(6)

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 4 / 1 5 ‧ 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 4 / 1 5 ‧ 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 per raytracing?

A: qualunque cosa io sappia intersecare con un raggio!

Es:

– triangoli

– superfici implicite

• sfere

• GSM

• …

Goemetric Solid Modelling

RayTracing su GPU (es su CUDA) PART 2: the other main approach

3D Scene rendering Image

(7)

Rendering Algorithms Paradigms

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 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

For each pixel p:

make a ray r

for each primitive o in scene:

if intersect(r,o) then find color for o

color p with it

For each primitive o:

find where o falls on screen rasterize 2D shape

for each produced pixel p : find color for o

color p with it

RASTERIZATION BASED:RAY-TRACING

LIGHTING

LIGHTING PROJECTION

3D 2D (aka TRANSFORM)

to “Rasterize”:

• convert a 2D shape

– e.g.: text, polygons, curves, …

into pixel

– of a raster image

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 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Jim Blinn, C.G. pioneer.

(OLD photo) One hobby: colleting algorithms

to rasterize circles

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 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Rasterization based : Primitive di rendering Q: quali primitive di rendering per rasterization based?

A: qualunque cosa io sappia:

1) proiettare da 3D a 2D 2) «rasterizzare» in 2D

• == convertire in pixel

Most commonly:

– SEGMENTI – PUNTI

– ma soprattutto TRIANGOLI

aka T&L: Transform & Lighting...

• Transform :

– trasformazioni di sistemi di coordinate – scopo: portare le primitive in spazio schermo

– … ma anche comporre le primitive per formare la scena

• Lighting :

– computo illuminazione

– scopo: calcolare il colore finale di ogni parte della scena

• risultante da

– le sue caratteristiche ottiche – l'ambiente di illuminazione – la geometria (forma degli oggetti)

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 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

(8)

Rasterization-based HW-supported rendering

• also known as

Transform and Lighting (T&L)

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 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Scena 3D rendering screen buffer

composta da primitive di pochissimi tipi:

• punti

• linee MA SOPRATUTTO

• triangoli

primitive di rendering

Rasterization-based HW-supported rendering

• decompose entire scene with 3D TRIANGLES

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 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

x

y z

v 0 =( x 0 , y 0 , z 0 )

v 1 =( x 1 , y 1 , z 1 ) v 2 =( x 2 , y 2 , z 2 )

... Rasterization-Based Rendering

vertici

fragment process pixels

finali

"frammenti"

(fragments) transform

z x

v

0

v

1

v

2

rasterize y

triangolo 2D a schermo

v

0

v

1

v

2

Rasterization-based pipeline

(9)

Rasterization-based rendering

• Input: set of vertices and its associated attributes

• Algorithm goes through several phases:

1. Per-vertex transformations and attributes setup 2. Primitive processing

3. Rasterization

4. Per-fragment computation

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 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

THE GREAT DEBATE

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 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

RASTERIZATION RAY-TRACING

Rendering Algorithms Paradigms

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 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

for each pixel

for each primitive

RASTERIZATION BASED:RAY-TRACING

for each primitive for each pixel

Advantages of ray tracing

• Conceptually simple algorithm

• Takes into account GLOBAL effects

• More realistic rendering of lighting effects

• More freedom of primitives

(intersect easier than project+rasterize)

• Potentially great scalability with scene complexity

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 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

(10)

Ray-tracing :

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 4 / 1 5 ‧ 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)

Advantages of rasterization

• More easily parallelizable?

• More controllable complexity

• Better-suited for graphics cards (for now)

• Easier with dynamic data?

• Better treatment of anti-aliasing (more later on)

• Better scalability with image resolution

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 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Historic View

• Ray-tracing

– algorithm of choice for OFF LINE rendering – used for MOVIES (and CGI static images)

– Pixar, Dreamworks, etc. favourite

– well known ray-tracers: POV-ray, renderman, YafaRay…

• Rasterization

– algorithm of choice for REAL TIME rendering

Paradigmi di rendering

(classi di algoritmi di rendering)

• Ray-Tracing

• Rasterization based

• Image based (per es. light field)

• Radiosity

(11)

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 4 / 1 5 ‧ 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 )

A fairer comparison

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 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

The commonplaces

• Raytracing:

– good for complex visual effects

• shadows, specular reflections, refractions...

– SW-based (CPU)

– therefore: off-line, hi-quality renderings!

• Rasterization:

– fast!

• for each primitive, process only a few pixels (instead of: for each pixel, process all primitives) – HW-based (GPU)

– therefore: real-time, compromise-quality renderings!

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 4 / 1 5 ‧ 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 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Reality : Ray-Tracing

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

not necessarily SLOW!

• algorithm and data structures for efficient “spatial queries”

• even sub-linear with number of primitive!

not necessarily SW:

• Specialized HW?

• GP-GPU?

(12)

Reality: Rasterization based

• not necessarily without

complex visual effect

(they just require some approx and

a few advanced algorithms)

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 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

The reality

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 4 / 1 5 ‧ 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)

Riferimenti

Documenti correlati

Abstract—The solution behaviour of some novel organogold(III) compounds was investigated, and their cytotoxic properties evaluated against a few human tumour cell lines

Step 1: If the government chooses a debt level higher than λθ L both in the economy with and without credit protection we have that consumption in period 0 and in the high state

Italy. Ai prodotti italiani, infatti, va riconosciuta una superiorità legata all’origine stessa dei marchi. Questo rappresenta un punto cruciale, che le aziende possono e

innanzitutto da una convenzione. Possiamo supporre che implichi l’uso di materiali e di operazioni effettuate su di essi, tali da produrre segni che elaborano la nostra

inTrace Realtime Ray Tracing Technologies GmbH MPI Informatik, Saarbrueken - Ingo Wald 2004 HW specializzato.. per

inTrace Realtime Ray Tracing Technologies GmbH MPI Informatik, Saarbrueken - Ingo Wald 2004 HW specializzato.. per

[7], the correction on the plate is g(1) = −1, so the three-body energy cancels the two-atom energy when the atoms touch the plate( 1 ).) Note that the three-scattering terms, which

Both, the Laplace operator with Dirichlet boundary conditions and the Laplace operator with periodic boundary conditions determine two different but physically meaningful