• Non ci sono risultati.

lo scene graph

N/A
N/A
Protected

Academic year: 2021

Condividi "lo scene graph"

Copied!
10
0
0

Testo completo

(1)

Game Dev 2015/2016 Univ Insubria

Scene composite:

lo scene graph

Marco Tarini

Recap:

trasformazioni spaziali

Funzione matematica

prende punti 3D / vettori 3D restituisce punti 3D / vettori 3D

Es:

traslazioni, scalature, rotazioni, deformazioni varie…

Modellano:

spostamenti (traslazioni)

ri-orientamenti nello spazio (rotazioni) ingrandimenti / rimpicciolimenti (scalature)

isotropiche (uniformi) o anisotropiche (che deformano)

quindi trasformano modelli 3D (applicando ad ogni pos vertice, normale vertice)

queste sono dette “rigide”

(o isometriche)

(2)

Recap:

trasformazioni spaziali

Struttura dati interna:

(es: matrici 4x4, quaternioni, asse+angolo, angoli eulero)

Fattori importanti:

leggerissime in memoria(poche decine di bytes)

veloci da applicare a modelli interi (GPU) dinamicamente, durante il rendering

in genere, si possono facilmente:

interpolare

invertire (trovare la trasformaz opposta)

comporre (cumulare)(«chiuse rispetto a composizione»)

si possono vedere come cambi di sistema di coordinate (almeno, una classe di trasf che ci interessa: quelle “affini”)

Scene composite:

Composte da molti

modelli 3D diversi

Tipico uso: ambienti 3D

es. una città, una stanza, l’interno di un palazzo, etc.

ma non solo: un personaggio (modelli 3D per vestiti, accessori), un arnese (modelli 3D per sottopezzi)

Scena composta da molteplici

istanze

dello stesso modello

idea: evitare di replicare in memoria lo stesso modello associare una trasformazione diversa ad ogni istanza

(3)

Modelling di scene composite

spazio mondo (globale) spazio oggetto ruota 1 spazio oggetto automobile

Scene graph

T0

T1 T2

T3 T4 T5 T6

posizonamento della automobile

(rispetto al mondo) posiz. della

ruota (rispetto

all’

automobile)

Nella scena:

- 3 istanze dello stesso

(4)

spazio mondo

Scene graph

spazio ogg. 1

spazio

ogg. 4 spazio ogg. 5

spazio ogg. 6

spazio ogg. 7 T0

T1 T2

T3 T4 T5 T6

spazio ogg 3 spazio

ogg 2

spazio mondo

Scene graph

spazio ogg. 1

spazio

ogg. 4 spazio ogg. 5

spazio ogg. 6

spazio ogg. 7 T0

T1 T2

T3 T4 T5 T6

spazio ogg 3 spazio

ogg 2 T0*T3

(5)

T0

T1 T2

T3 T4 T5 T6

posizonamento della automobile

(rispetto al mondo) posiz. della

ruota (rispetto

all’

automobile)

Scene graph:

nodo con camera

spazio mondo

V

spazio vista

= ( T2 x T8 )-1

= ( T8 )-1 x ( T2 )-1

camera T8

pos camera (es, dietro

all’

automobile)

Scene graph

Struttura ad albero (cioè gerarchica)

Nei nodi

(istanze di) modelli 3D es: riferimenti a modelli o anche: luci, telecamera…

Negli archi:

trasformazioni

(6)

Scene Graph : la struttura dati

Nodo camera:

nodo che determina la posizione della camera sua trasf globale = inversa della matrice vista

Mutare dinamicamente le trasformazioni?

es tramite script

animazione “cinematica” (ci torneremo)

Modellare una scena 3D in un game 1/3

Es, parte del level design nei games Separazione task:

modellatori di «scene props»

producono i modelli 3D da comporre, es le case, muri

(+ texutres etc)

«sceners» modellatori di scenes

compongono i modelli in uno Scene Graph (assegnando una trasformazione x nodo)

[ DEMO ]

(7)

Modellare una scena 3D in un game 2/3

Asset addizionali produrre

la Collision Mesh (un Geometry Proxy) per ogni scene-prop!

automatizzabile? non bene per: motore fisico,

(ma anche: visibility computation, gameplay…)

la Navigation Mesh (aka AI mesh) 1 per ogni scena

per: AI

automatizzabile? non bene

Modellare una scena 3D in un game 3/3

Asset addizionali produrre

Scripts ?

task del level designer

Sky box ,

Outer terrainmesh…

(8)

Scene Graph

come struttura dati

Ogni engine / libreria, la propria soluzione No standards

ma Ǝ formati files che possono includere scene graphs: es. COLLADA

Idee ricorrenti:

classe nodo:

contiene trasformazione (locale) al padre e links (es. puntatori) a padre/figli/assets trasformazioni globali computate al volo camera come nodo speciale

ottimizz per sotto-alberi ripetuti (varie soluz)

Es: una tavola imbandita

(9)

Es: una tavola imbandita

Avendo “prop” Meshes:

piatti, forchette, coltelli sedie

tavoli parete lampadari

Scenegraph da editare

con istanze ripetute per i sottographi

Mondo (scena)

Sedia Coperto

Tavolo

Tavolata Stanza

Posto a Tavola

Posto a

Tavola

Tavolata

Fila

di luci Sei

pareti Fila

di luci

LuceLuce Luce …

(10)

Es: una tavola imbandita

Riferimenti

Documenti correlati

 Scena composta da molteplici istanze dello stesso modello.  idea: evitare di replicare in memoria lo

//restituisce il valore associato all’attributo attr lancia //un’eccezione se attr non esiste o non è del tipo giusto public Object get (Object attr)

compongono i modelli in uno scena graph (assegnando una trasformazione x nodo) prducono lo scene graph.. Es: una

▪ Reduce visual difference between quantitative data sets with. significantly

La tabella 7 mostra la distribuzione dei pazienti porta- tori di almeno una delle mutazioni di classe III (gating mutation) riscontrata in 179 pazienti, di cui 8 in omo- zigosi. La

 ogni cella contiene una lista di puntatori agli oggetti (della scena) che

 CSGNode: generico nodo dello scene graph, lo faccio come classe

™CSGNode: generico nodo dello scene graph, lo faccio come classe astratta;. Costruzione di Interfacce - Paolo