• Non ci sono risultati.

Computer Graphics

N/A
N/A
Protected

Academic year: 2021

Condividi "Computer Graphics"

Copied!
5
0
0

Testo completo

(1)

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: modelling:

superfici di suddivisione

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

Superfici di suddivisione

• Modo molto diffuso per costruire mesh – 1: fare mesh di controllo

• a bassa risoluzione

• "a mano"

– 2: raffinarla automaticamente

• iterativamente

• (ad ogni interazione si aggiungono facce e vertici)

• molti schemi matematici differenti – con diverse peoprietà

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

Superfici di suddivisione

• Esempio: schema butterfly (per mesh triangolari)

– e' uno degli schemi 1=>4

(in un passo di suddivisione, da ogni triangolo se ne ottengono 4) (aggiunta di un vertice per ogni edge)

– MA... quali coordinate assegnare al nuovo vertice?

Ogni schema di suddivisone ha la sua formula. Ad esempio...

Passo suddivisonedi

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

POS( ) = ( POS( ) + POS( ) )

+ ( POS( ) + POS( ) )

+ ( POS( ) + POS( ) + POS( ) + POS( ) )

Superfici di suddivisione

• Esempio: schema butterfly

168 8

16 162

162 16-1

16-1 16-1

16-1

168 162 16-1

NB: i vertici "adiacenti"

sono

defininti univocamente sse la mesh e' two-manifold!

Superfici di suddivisione Ad ogni passo di suddivisione

• (x,y,z) dei nuovi vertici inseriti – formula (estrapolazione)

• (x,y,z) dei vecchi vertici

– si tiene la vecchia pos (schemi “interpolativi”) oppure

– formula (estrapolazione) (schemi “approssimativi”)

Esempio

level 0

(“control mesh”)

level 1

level 2 level 3

lvl ∞

(“limit surface”)

(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

Superfici di suddivisione

mesh di controllo

mesh finale

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

Superfici di suddivisione Anche iterativamente:

1- Modellare “control mesh”

(editing manuale)

2- Suddivisione

(un passo)

3- Ritocco!

(editing manuale)

4- Goto 2

(fino a raggiungimento risultato voluto alla risuolzione voluta)

Molti schemi…

• Catmull-Clark

• Doo-Sabin

• Loop

• sqrt(3)

• Butterfly

• Mid-edge

• ….

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

recente aumento di popolarità

Differenze fra gli schemi

• interpolativi VS approssimativi

• solo triangoli, solo quads, qualunque cosa

• incremento complessità – (per ogni passo di suddivisione)

• proprietà della limit surface – (esistenza, smoothness)

• esistenza forma chiusa per la limit surface – (esatta o approssimata)

• …

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

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: Geometry Shader

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

Fr am m en ti & at tri bu ti & at tri bu ti & at tri bu ti & at tri bu ti in te rp ol at i in te rp ol at i in te rp ol at i in te rp ol at i Ve rti ci & lo ro a ttr ib ut i & lo ro a ttr ib ut i & lo ro a ttr ib ut i & lo ro a ttr ib ut i

Screen buffer Ve rti ci p or ie tta ti & at tri bu ti & at tri bu ti & at tri bu ti & at tri bu ti co m pu ta ti co m pu ta ti co m pu ta ti co m pu ta ti

rasterizer triangoli set- up

rasterizer segmenti set- up

rasterizer punti set- up

co m pu ta zi on i pe r v er tic e co m pu ta zi on i pe r f ra m m en to

(3)

Nuove + vecchie primitive!

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

Fr am m en ti & at tri bu ti & at tri bu ti & at tri bu ti & at tri bu ti in te rp ol at i in te rp ol at i in te rp ol at i in te rp ol at i Ve rti ci & lo ro a ttr ib ut i & lo ro a ttr ib ut i & lo ro a ttr ib ut i & lo ro a ttr ib ut i

Screen buffer Ve rti ci p or ie tta ti & at tri bu ti & at tri bu ti & at tri bu ti & at tri bu ti co m pu ta ti co m pu ta ti co m pu ta ti co m pu ta ti ra st er iz er tri an go li se t- up ra st er iz er se gm en ti se t- up

ra st er iz er pu nt i se t- up

co m pu ta zi on i pe r v er tic e co m pu ta zi on i pe r f ra m m en to

geometry shader

Geometry Shader

• agisce dopo il vertex shader

• è programmabile (GLSL in OpenGL)

+ comandi come: emitVertex endPrimitive

• accede:

+ agli N vertici (già processati) della primitiva + loro attributi

+ qualche informazione di adiacenza

• produce nuove primitive

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

Geometry Shader

• da OpenGL 3.2 (o Direct3D 10)

• concept

– creazione di ulteriori primitive sulla GPU

• flessibile (e cara) estensione potenzialmente utile in molti algoritmi come:

– suddividere (sup. di suddivisione) – marching cubes on the GPU?

– aggiungere flaps?

– …?

• possible impatto negativo sulla performance e diffusione del supporto ancora non diffusa (PC)

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

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:

Modelling:

NURBS e b-splines

Bézier curve

(o Bézier spline)

• Bézier curve di grado k:

insieme di k +1 punti ("di controllo")

che definiscono una curva

(in R

n

con n = 2 , 3 ...)

x y

x0 x1 x2 x3

y0 y2

y2 y3

Bézier curve (di grado 3) uniforme Bézier curve (di grado 3) non-uniforme x

y (x0 , y0)

(x1 , y1)

(x2 , y2) (x3 , y3)

Bézier curve cubiche (-- di grado 3) (o Bézier spline cubiche)

• Curva parametrica

x y

P

3

P

2

P

1

P

0

B(0)

B(0.5)

B(1) B(0.25)

B(0.7)

P

3

P

2

P

1

P

0

Alcune caratteristiche:

- indipendente da trasformazioni affini - tangenti negli estremi

- inclusione nel quadrilatero

inclusa nelquadri- latero

(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

Bézier curve cubiche (-- di grado 3) (o Bézier spline cubiche)

• Usate:

– come primitiva di disegno 2D

• curve continue con derivata continua

– come path nelle animazioni (in 3D)

• velocita' e pos definite agli estremi temporali del moto

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

NURBS: Non Uniform Rational Bézier spline

• Estensione a superfici:

– NURBS

Computer Graphics

Marco Tarini Università dell’Insubria

Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2010/11

Lezione 14:

Lezione 14: Lezione 14:

Lezione 14:

Bump-Mapping

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

Bump-Mapping

Fr am m en ti & at tri bu ti & at tri bu ti & at tri bu ti & at tri bu ti in te rp ol at i in te rp ol at i in te rp ol at i in te rp ol at i Ve rti ci & lo ro a ttr ib ut i & lo ro a ttr ib ut i & lo ro a ttr ib ut i & lo ro a ttr ib ut i

Screen Screen Screen Screen buffer buffer buffer buffer Ve rti ci p or ie tta ti & at tri bu ti & at tri bu ti & at tri bu ti & at tri bu ti co m pu ta ti co m pu ta ti co m pu ta ti co m pu ta ti

rasterizer triangoli set- up

rasterizer segmenti set- up

rasterizer punti set- up

co m pu ta zi on i pe r v er tic e

Texture RAM interpolo

coordinate texture

coordinate texture

interpolate compreso:

coordinate texture (per vertice!)

bumpmap:

bumpmap:bumpmap:

bumpmap:

ogni texel (la codifica di) una normale

texture look-up, lighting (usando la

normale)

co m pu ta zi on i pe r f ra m m en to

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

Bump-Mapping

• Idea: far apparire una superficie piatta come se avesse del dettaglio geometrico ad alta freq.

• Metodo molto diffuso

– per aggiungere dettaglio geometrico

(o meglio la sua apparenza) in maniera efficace

• E' un froma di per-fragment lighting – il lighitng è computato per ogni frammento – come ad esempio anche il Phong shading

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

Bump-Mapping

stessa geometria (una sfera)

bumpmaps diverse

(5)

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:

Rendering non fotorealistico

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

Rendering non fotorealistico

• N.P.R. = Non Photorealistic Rendering

• un rendering dove l'obiettivo non è il realismo ma:

– la chiarezza

• comunicare informazione 3D nel modo più comprensibile possibile (all’occhio umano)

• detto “illustrative rendering”

– oppure l'imitazione di uno stile umano:

• stile toon (o cartoon, cartone animato)

• stile disegno a matita

• stile stampa

• stile chiaroscuro a matita

• ...

• detti “imitative 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 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Rendering non fotorealistico

• Esempio: rendering in stile disegni a matita

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

Rendering non fotorealistico

• Esempio: hatching

Emil Praun, Hugues Hoppe, Matthew Webb, Adam Finkelstein 2001

modello 3D (wireframe) rendering (in tempo reale)

Rendering non fotorealistico

• Esempio: renderings toon style

Questi sono rederings off-line.

Ma esistono algoritmi per il nostro HW grafico per ottenere questo tipo di effetti in tempo reale tempo reale tempo reale ! tempo reale

bordi come linee scure shading quantizzato

(due gradazioni di verde, invece di una

Rendering non fotorealistico

radiosity (lighting realistico)

rendering imitativo (NPR)

Riferimenti

Documenti correlati

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

[r]

[r]

[r]

Flat shading Goraund shading Phong Shading (*) talvolta (ma impropriamente) detto: per-pixel lighting. quando si usano normali

[r]

di vista riflessa dalla norm.). Environment

[r]