• Non ci sono risultati.

A volte, calcolate automaticamente dalla geometria

N/A
N/A
Protected

Academic year: 2021

Condividi "A volte, calcolate automaticamente dalla geometria"

Copied!
9
0
0

Testo completo

(1)

L’attributo più comune:

la normale

Vettore direzione unitario

Rappresenta l’orientamento della superficie Usato per il lighting

A volte, calcolate automaticamente dalla geometria

Ma l’artista decide quali edges sono

soft

e quali hard

(1)

v3 v1

v2

(2)

Calcolo normali dalla geometria

Geometria

=(1)=>

normali x faccia

=(2)=>

normali x vertice

e1

e2

e1×e2

N ˆ

v

1

Nˆ

2

Nˆ

3

Nˆ

4

Nˆ

5

Nˆ

6

Nˆ

Nn

N N

N

ˆ ˆ ... ˆ

2

1

+ + +

=

|

| ˆ

N N = N

(2)

Calcolo normali dalla geometria

Nota:

l’orientamento delle facce deve essere coerente

1

3 2 1

3 2

senso opposto, edge coerente A

B C

D

Coherently oriented faces:

can you check it?

V2

V3

V5 V4

V1

T1

T2

T3

Tri:

Wedge 1:

Wedge 2:

Wedge 3:

T1 V4 V1 V2

T2 V4 V2 V5

T3 V5 V2 V3

vert X Y Z R G B

V1 x1 y1 z1 r1 g1 b1 V2 x2 y2 z2 r2 g2 b2 V3 x3 y3 z3 r3 g3 b3 V4 x4 y4 z4 r4 g4 b4 V5 x5 y5 z5 r5 g5 b5 GEOMETRIA + ATTRIBUTI

CONNETTIVITA’

(3)

Crease edges

(aka “hard edges”)

Edges di discontinuità delle normali.

Come si ottiene una discontinuità(C0) negli attributi?

No Creases:

(all edges “soft”)

With Creases:

(red edges “hard”)

risposta:

Vertex seams

Vertex seam = due vertici coincidenti in xyz

(attributi diversi assegnati ad ogni copia)

es: vertex seams per implementare hard edges

a literal

“seam”

(4)

Vertex seams

Necessari per ogni discontinuità di attributo Replicazione dati… un male necessario)

Tri:

Wedge 1:

Wedge 2:

Wedge 3:

T1 V4 V1 V2

T2 V4 V2 V5

T3 V5 V2 V3

vert X Y Z R G B

V1 x1 y1 z1 r1 g1 b1 V2 x2 y2 z2 r2 g2 b2 V3 x3 y3 z3 r3 g3 b3 V4 x4 y4 z4 r4 g4 b4 V5 x5 y5 z5 r5 g5 b5

GEOMETRIA + ATTRIBUTI

CONNETTIVITA’

Mesh processing

aka Geometry Processing

Librerie:

VCG-Lib(CNR, )

Vision and Computer Graphic Lib

OpenMesh(RWTH, de ) + open flipper

CGAL(INRIA, )

Computational Geometry Algorithms Library

(tutte: C++, open-source.)

(5)

Mesh processing

aka Geometry Processing

Un buon manuale x programmare mesh processing:

Reminder:

note sulla risoluzione delle mesh

costo: lineare con il numero di triangoli

in memoria (disk, CPU RAM, GPU RAM) in tempo (di rendering, di caricamento, etc)

(e, num. vertici lineare con num. triangoli)

(rule of thumb: K verts 2K tris)

reminder: risoluzione adattiva possibile

higher-res in alcune zone lower-res in altre

(6)

Risoluzione e

qualità di rendering

Una piramide di Livelli di Dettaglio

p e r f o r m a n c e

q u a l i t y

Piramidi LoD

(Level Of Detail)

LoD 1

2K faces

LoD 2

400 face

LoD 3

160 faces

LoD 4

60 faces

usare quando visto da vicino

usare quando visto da lontano

(7)

Piramidi LoD

(Level Of Detail)

<5 m 5m ..10 m 10 .. 30 m >30 m

Piramidi LoD

(Level Of Detail)

Scopo:

diminiuire iltriangle budget (numero totale di triangoli)

ideale: dim. dei triangoli in spazio schermo (in pixel): costante a parità di elementi come importanza / compl

Task: determinazione del Livello da usare (dinamicamente)

a seconda della distanza dall’osservatore a seconda del carico di rendering

es: lagging rendering diminumizione delle soglie (task del rendering engine)

Task: costruzione dei LOD (asset creation)

a partire dal LOD-0 (higer-res)

manuale, o assistita, o automatica… (vedi poi) spesso, manuale

a volte: un “LoD -1” extra, usato solo in scene particolari e.g. (procedural) cut-scenes

calcolata dallo scene graph

(8)

Piramidi LoD

(Level Of Detail)

LOD 0 (mesh)

GEOMETRIA + ATTRIBUTI CONNETTIVITA

LOD 1 (mesh)

GEOMETRIA + ATTRIB C

ONNET.

LOD 2 (mesh)

G. + A. C.

~ ¼ size

(per es.)

per es.:

1 K+ ¼ K+ ¼ ¼ K + ¼ ¼ ¼ K + …

= (1+ ⅓) K

Costo in Memoria: piuttosto limitato.

~ ¼ size

(per es.)

Piramidi LoD

(Level Of Detail)

Mesh (all LoDs)

GEOMETRIA + ATTRIBUTI

C O N NE T TI V I T A

vertices of any LoD

LoD0

LoD1

LoD2 Es. struttura

dati alternativa:

(9)

Piramidi LoD

(Level Of Detail)

Popping artefact: beware

per attuenarli: soglie variabili, es:

when current = LoD 2:

if (dist > 30m) switch to LoD3 when current = LoD 3:

if (dist < 25m) switch to LoD2

LoD 0 LoD 1

LoD 0 LoD 1

LoD 2 LoD 3 LoD 4

LoD 2 LoD 3 LoD 4

to decrease LoD level (go higer res):

to increase LoD lovel (go lower res):

0

0 dist

dist

Riferimenti

Documenti correlati

On the one hand, we utilize and extend Floater’s mean value coordinates [Flo03] which generalize the concept of barycentric coordinates and allow to interpo- late attributes

•  Definizione della trasformazione di proiezione (il modo di mappare informazioni 3D su un piano immagine 2D);.. •  Definizione dei parametri di vista (punto di vista, direzione di

Nella proiezione prospettica, ogni insieme di linee parallele (ma non parallele al piano di proiezione) converge in un punto detto punto di fuga;. Se l’insieme di linee è parallelo

Only a single sweep through the volume is needed, and volume slices are sequentially loaded into texture memory on current standard PC graphics platform using AGP 8X transfers,

game engine lets material artist choose intuitively named material parameters, then picks a lighting equation accordingly.  the one best

raggio di shadowing (interseca, quindi il punto e' in

inTrace Realtime Ray Tracing Technologies GmbH MPI Informatik, Saarbrueken - Ingo Wald 2004. not

game engine lets material artist choose intuitively named material parameters, then pick a lighting equation accordingly. the one best