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)
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 diversiTipico 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
istanzedello stesso modello
idea: evitare di replicare in memoria lo stesso modello associare una trasformazione diversa ad ogni istanza
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
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
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
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 ]
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…
…
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
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 …