• Non ci sono risultati.

Digital representation of 3D objects

N/A
N/A
Protected

Academic year: 2021

Condividi "Digital representation of 3D objects"

Copied!
12
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 2016/17

3D Rendering

Scena 3D rendering image

(2)

3D Model

A mathematical representation of a 3D object

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

Geometry of a 3D object

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

• Representation methods can be divided 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)

(3)

3D models : Structure

• Volume Based • Boundary-based

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

Most common boundary based model:

Polygonal Mesh (mesh poligonali)

Superficie approssimata da un numero di poligoni adiacienti lato a lato.

Categorie, in base ai poligoni usati:

• (tutti) triangoli:

“tri-mesh” , “triangle mesh” “simplicial mesh”

• (tutti) quarilateri: “quad mesh”, “pure quad mesh”

• quasi tutti quads: “quad-dominant”,

• poligoni misti qualunque: “(Generic) Polygonal mesh”…

• Struttura dati per modellare oggetti 3D

– GPU friendly

– Risoluzione (potenzialmente) adattiva

– “Complessità” = numero facce

(4)

Mesh triangolare (o mesh simpliciale)

• Un insieme di triangoli adiacenti

facce

vertici

spigoli (o edges )

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

Mesh triangolari VS mesh di quad:

qual’è lo standard?

• In molti contesti (es modellazione manuale) sono popolari le quad mesh (o quad-dominant)

• Per il rendering, l’unica primitiva di rasterizzazione per le mesh è il triangolo

– nota: le facce triangolari in 3D sono necessariamente planari, semplici da rasterizzare.

Non così per gli altri poligoni!

– Quindi, Tri-mesh sono le più adatte al rendering

• Gli altri poligoni vengono scomposti in triangoli

– Tipicamente al livello dell’ API

– Es: le specifiche OpenGL prevedono i quad

– Ma le implementazioni OpenGL trattano i quad come

coppie di triangoli

(5)

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

Quad meshes or Triangle meshes?

un quadrilatero?

"quad" “diagonal split”

due triangoli!

(se ne occupa

automaticametne la API)

Polygonal meshes or triangle meshes?

un poligono a n lati?

triangolarizzazione di poligono:

(in 3D, non un problema del tutto banale...)

(n-2) triangoli!

(6)

Mesh di poligonale

• Tri-mesh: 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

• in una tri mesh: i triangoli

– attributi

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

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

Mesh: geometria

• Insieme di posizioni dei vertici

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

V2

V3

V5 V4

V1

(7)

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

V5 V4

V1

T1

T2 T3

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

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

(8)

Mesh: attributi

• Modellano le quantità che variano sulla superficie

– qualsiasi valore vada definito su tutti i punti della sup – Valori che sono “Spacially varying” sulla mesh

• Memorizzati:

– per vertice  MOST COMMON CASE

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

INTERPOLAZIONE LINEARE (vedremo)

– per faccia

• allora il valori vengono considerati constanti su quel poligono

– altri modi meno comuni:

per insieme di facce, per ogni edge, etc.

• Possono essere: scalari, vettori…

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

Mesh: attributi

• Modellano le quantità che variano sulla superficie

• Esempi:

– 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)

• Etc. … es: «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”)

(9)

Attributo per vertice. Nota sul termine.

• Per le API basate su rasterizzazione (OpenGL, DirectX…) “attributo” viene interpretato un senso più restrittivo

– «attribute» = variabile specificata necessariamente per ogni vertice

– anche la posizione del vertice (x,y,z) (in spazio oggetto!) è considerata un attributo

– gli attributi sono, in generale, l’input fornito al vertex shader per ogni vertice

– (l’output fornito dal vertex shader per ogni vertice è invece detto «varying»: vedremo)

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

Mesh Polionali: risoluzione

• Risoluzione:

il numero di facce (o di vertici) che compongono la mesh

– Hi-res: più accuratezza – Low-res: più efficienza – Mesh low res:

detta anche low-poly mesh

– La risoluzione di una mesh può essere adattiva:

tassellamento più fine (campionamento più fitto) dove necessario

• Per es, dove la curvatura della mesh è alta Dove la mesh è piatta, bastano meno triangoli

• Per paragone: la risoluzione di una immagine rasterizzata non è adattiva (rate costante di num pixel per unità di superficie)

num facce lineare con num vertici. Statisticamente:

num facce ~= 2 x num vertici

(10)

Risoluzione tipica: crescente negli anni

70.000 △

1994

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

Risoluzione tipica: crescente negli anni

1.200.000 △

1997

(11)

Risoluzione tipica: crescente negli anni

2.000.000.000 △

2002

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

3D Meshes: resolution

p e r f o r m a n c e

q u a l i t y

(12)

3D Meshes: adaptive 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 6 / 1 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Riferimenti

Documenti correlati

[r]

Corso di Laurea in Ingegneria Informatica Anno Accademico 2017/2018.. Analisi Matematica 1 - Studenti A/L Appello del 23

• Il foglio con il testo, compilato con nome e cognome ed eventualmente numero di matricola, va consegnato assieme alla bella copia.. Non si consegnano

Se il numero di attacchi per settimana ` e distribuito secondo una legge normale di media 5 e deviazione standard 1, con quante pastiglie deve partire quel signore affinch` e

Inoltre, supponiamo che per la nascita di un terzo figlio, la probabilit` a che sia maschio sia 11/20 se i primi due sono maschi, 2/5 se sono femmine e 1/2 negli altri casi..

Egli parte con una scorta di 14 batterie; se si suppone che l’uso della torcia sia una variabile casuale distribuita uniformemente nell’arco di met` a della giornata (1 giornata =

Dalla statistica storica delle misurazioni, si sa che il 10 % degli autoveicoli supera il limite di velocit` a; inoltre, il meccanismo del misuratore non permette di rilevare pi` u

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