• Non ci sono risultati.

Digital representation of 3D objects

N/A
N/A
Protected

Academic year: 2021

Condividi "Digital representation of 3D objects"

Copied!
8
0
0

Testo completo

(1)

Computer Graphics

Marco Tarini

Digital representation of 3D objects

Università dell’Insubria

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

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 Model

A mathematical representation of a 3D object

Geometry of a 3D object

• 3D model is a mathematical representation of a physical (or a fictional) entity

• Representation methods can be divide into:

– Boundary-based: Only the boundary of the object is explicitly represented. Called b-rep, examples are polygon-meshes, implicit surfaces and parametric surfaces.

– Volume-based: The volume is explicitly

represented, examples are Voxels and Constructive Solid Geometry (CSG)

(2)

3D models : Structure

• Volume Based • Boundary-based

3D models categorization:

Origin

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

applicazione interattiva informazione

construction

MODEL 3D the scene of

Images

rendering

preprocessing modelling

3D models categorization:

Origin

• (Manual) Modelling • Digitalization (3D Acquisition)

Dino, scanned by artec3d

Modeling and Procedural modeling

• (manual) Modeling:

– models are created by an artist – task of the “3D modellers”

– asset creation for game industry

• using specialized 3D modeling software

– Maya, Softimage, 3D Studio MAX, Rhinoceros, Blender, Zbrush… or others.

(3)

Modelling paradigms: Low poly modelling

1 2 3 4 5 6 7 8

9 10 11 12 13 14 17 18

19 20

21 22

23 24

25 26 27 28 29 30 31

Model modelling: Digital Sculpting

cisel (scalpello)

Capture of 3D Models

• 3D scanning

– A.k.a. automatic 3D model acquisition – Molte tecnologie diverse

• Laser scanners

• Time of flight

• Structured light (kinect) – Caratteristiche diverse• …

• Qualità risultati – Rumore / risoluzione

• Automatismo

• Invasività

– Markers? Powder?

• Real time? (kinect)

Capture of 3D Models: touch scanners

(4)

Capture of 3D Models: range scanners

• Tecnologie per ottenere:

modelli digitali 3D a partire da:

oggetti reali

3D scanning

Modelli 3D:

come ottenerli

• Attraverso 3D scanning

Modello reale Scultore

(fisico) Hi res model

3D scanning

3D models categorization:

Origin

• Procedural Modelling • Simulation

I Modelli 3D più comuni:

Mesh poligonali

• Di triangoli, o mista (quadrilateri + triangoli)

• Struttura dati per modellare oggetti 3D

– GPU friendly

– Risoluzione (potenzialmente) adattiva – “Complessità” = numero facce

(5)

Mesh triangolare (o mesh simpliciale)

• Un insieme di triangoli adiacenti

facce

vertici

spigoli (o edges)

Mesh di triangoli

• discretizzazione lineare a tratti

di una superfice continua (un “2 manifold”) immersa in R3

• Componenti:

– geometria

• i vertici, ciascuno con pos (x,y,z)

• un campionamento della superficie!

– connettività (a volte: “topologia”)

• come sono connessi i vertici

• (es.: in una tri-mesh, i triangoli) – attributi

• es: colore, materiali, normali, UV, …

Mesh: geometria

• Insieme di posizioni dei vertici

– Un vettore posizione (x,y,z) per ogni vertice – (Spazio Oggetto)

V2

V3 V1

Mesh: connettività

(o topologia)

• Triangoli (o quads, o edges…)

– che connettono fra loro i vertici

– Come nodi connessi da archi, in un grafo

V2

V3 V1

T1

T2 T3

(6)

Mesh: attributi

• Quantità che variano sulla superficie

– Campionati per vertice, interpolati nei poly

V2

V3

V5 V4

V1

T1

T2 T3

RGB3 RGB2

RGB5 RGB4

RGB1

Mesh: attributi

• Quantità che variano sulla superficie

– qualsiasi valore vada definito su tutti i punti della sup

• Memorizzati:

– per vertice MOST COMMON

• come definire il valore in tutti i gli altri punti della sup?

INTERPOLAZIONE LINEARE – per faccia

• allora il valori constanti su quel triangolo

• Possono essere: scalari, vettori…

Mesh: attributi

• Quantità che variano sulla superficie

• Per esempio:

– Colore

• es come RGB, HSL…

– Vettore «Normale»

• quale orientamento ha la superficie in quel punto?

– Le cose più varie, dipendenti dall’applicazione:

• temperatura, viscosità, robustezza (in una simulazione fisica per es)

• bho, <<coefficiente di vulnerabilità>> (per dire, in un gioco) – Altre cose che servono a specifici algoritmi di rendering:

(ne vedremo alcune)

• Coordinate tessitura (“uv mapping”)

• Direzioni tangenti

• Bone assignment (“rigging”)

Meshes: complessità crescente

70.000 △

1994

(7)

Meshes: complessità crescente

1.200.000 △

1997

Meshes: complessità crescente

2.000.000.000 △

2002

Low Poly Meshes Come rappresento una mesh?

(quali strutture dati)

• Una tri-mesh è un insieme di triangoli adiacenti

• Mododiretto:

– un vettore di triangoli – e per ogni triangolo tre vertici – e per ogni vertice tre coordinate – Ma: replicazione dati

• poco efficiente in spazio

• oneroso fare updates

(8)

Come rappresento una mesh?

(quali strutture dati)

• Modoindexed:

– Geometria: array di vertici

• in ogni vertice, posizione e attributi – Attributi:

• coi vertici

– (e.g. campi della classe “vertice”)

– Connettività: (a volte anche: “topologia”)

• Array di triangoli

• Per ogni triangolo:

– tripletta di indicia vertice

Come rappresento una mesh?

(quali strutture dati)

• indexed mesh

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’

LetteraL.off

Esempio di mesh indexed:

guardiamo dentro un file in formato OFF

1 5 1 0 5 1 4 3 2 1 0 4 5 4 3 0 4 6 7 8 9 4 6 9 10 11 4 0 1 7 6 4 1 2 8 7 4 2 3 9 8 4 3 4 10 9 4 4 5 11 10 4 5 0 6 11 OFF

12 10 40 0 0 0 3 0 0 3 1 0 1 1 0 1 5 0 0 5 0 0 0 1 3 0 1 3 1 1 1 1 1

# vertici

# facce# edges

x,y,z 2ndo vert

prima faccia:

4vertici:

con indici 3, 2, 1 e 0 indice 0

indice 3 indice 2 indice 1

Come rappresento una mesh?

(quali strutture dati)

• Modoindexedin C++ :

class Vertex { vec3 pos;

rgb color; /* attribute 1 */

vec3 normal; /* attribute 2 */

};

class Face{

int vertexIndex[3];

};

class Mesh{

vector<Vertex> vert; /* geom + attr */

vector<Face> tris; /* connettivita’ */

};

Riferimenti

Documenti correlati

Tale studio deve essere presentato tramite un’opportuna modellazione via diagrammi UML (www.uml.org), che descriva l’architettura del simulatore e dei suoi componenti..

Allora esiste una funzione lineare a z per cui ˆz

Una caratteristica importante di tutti i triangoli è che la somma degli angoli interni di un triangolo è sempre di 180° gradi (equivale perciò a un angolo piatto).. La

NURBS *, b-splines

Nello spazio ordinario, si ha che la proiezione ortogonale di un vettore b su un piano e’, fra i vettori del piano, quello piu’ vicino al vettore b.. Osserviamo che, per ogni vettore

Piu’ in generale, si definiscono un’operazione di addizione fra matrici dello stesso tipo, un’operazione di moltiplicazione di una matrice per uno scalare, e si prova che il prodotto

Sotto quali condizioni essa non ha

E’ evidente che nota l’ascissa x si può ricavare la posizione del punto P e viceversa , quindi vi è corrispondenza biunivoca fra i numeri reali relativi ed i punti di una retta