Tecnologie 3D

annuncio pubblicitario
TECNOLOGIE 3D:
DALLA MODELLAZIONE
ALL’ANIMAZIONE
BOLOGNA, 10 DICEMBRE 2014
Ing. Matteo Di Carlo, INAF-OATe
Topics








Modellazione
Rigging
Animazione
Rendering
Game logic
Interazioni
Composizioni
Scripting
Modellazione


In genere è il primo step di qualsiasi elaborato
Processo atto a definire una qualsiasi forma tridimensionale
in uno spazio virtuale generata su computer (da wikipedia)





Structure from motion e Image-based Modeling: processo
attraverso il quale si ricostruisce una struttura 3D ad alta
risoluzione, partendo da un insieme di immagini 2D di un’unica
scena;
Utilizzo di sensori di profondità (kinect) e modellazione manuale
tramite software dedicati;
Estruzione artistica
NURBS
...
Structure From Motion




Come persone percepiamo molte informazioni riguardo la
struttura 3D attorno a noi: per fare ciò ci muoviamo attorno
con la conseguenza di muovere gli oggetti attorno a noi
(rispetto alla nostra prospettiva) nel tempo
Gli algoritmi di SFM presentano lo stesso problema: trovare
strutture, cioè capire I movimenti degli oggetti attorno a noi
Per trovare delle corrispondenze tra immagini vengono
estratte dei punti "caratteristici" (features), come ad esempio
angoli, per poi tracciarli da un immagine all'altra. Quindi la
struttura 3D è ricostruita dalle posizioni 3D di questi punti nel
tempo
Un altro approccio è quello di stimare la struttura
geometrica 3D direttamente da un immagine 2D; il risultato
viene poi unito con quelli di tutte le immagini prese
Modellazione tramite Curve

«Curve e superfici sono oggetti come le mesh, ma
differiscono perché sono espresse in termini di
funzioni matematiche, invece che una serie di punti»
(da wiki.blender.org)
 vertici
di controllo
 poligono di controllo

Buoni risultati usando meno memoria durante la
modellazione, ma più tempo per il rendering
La Scena 3D

Composizioni di «primitive» (mesh semplici), ossia di
modelli matematici rappresentanti primitive
geometriche
 Organizzazione
ad albero
 Organizzazione «piatta»

Mesh posizionate all’interno della scena attraverso
opportune trasformazioni (traslazione, rotazione,
omotetia)
Animazioni


Processo di creazione di un movimento e/o
cambiamento di forma
Letteralmente: «portare alla vita»
Animazioni

Con l’avvento dei computer, l’animazione è divenuta
un processo di generazione di immagini (CGI –
Computer generated imagery)

Successione di Frame (min 12 per sec)

Successore dello Stop-Motion
Rigging - Skeletal animation

Carattere/Personaggio/Modello rappresentato in 2 parti



Mesh: superficie usata per disegnare un modello
Skeleton/Rig: insieme gerarchico di «ossa» usate per animare la
mesh
«Rigging is making our characters able to move. The process
of rigging is we take that digital sculpture, and we start
building the skeleton, the muscles, and we attach the skin to
the character, and we also create a set of animation
controls, which our animators use to push and pull the body
around»; Frank Hanner, character CG supervisor of the
Walt Disney
Rigging - Skeletal animation
Rig
Mesh
Blender




As an animatic artist working in the storyboard department of
Spider-Man 2, I used Blender '​s 3D modeling and character animation
tools to enhance the storyboards, re-creating sets and props, and
putting into motion action and camera moves in 3D space to help
make Sam Raimi '​s vision as clear to other departments as possible. –
Anthony Zierhut, Animatic Artist, Los Angeles.
Difficile da usare?
Open source
Principi di interfaccia utente



Modalità di modifica e modalità oggetto
Uso massivo della tastiera e quindi di scorciatoie da tastiera
Spazio di lavoro completamente ad oggetti
Blender - Componenti principali
3D View
Hierarchy
Properties
Timeline
Blender – Object mode shortcuts
Blender – Edit mode shortcuts
Esempio Blender

Modelliamo un cubo..
Esempio Blender - Walk cycle
Pose to
pose
Blender








Nato come applicazione interna dallo studio di animazione
olandese NeoGeo, oggi è una degli strumenti più diffusi per
lo sviluppo di scene 3D
Supporto per una grande varietà di primitive geometriche
Conversione da e verso numerosi formati per applicazione
3D
Strumenti per gestire le animazioni
Gestione dell'editing video non lineare
Caratteristiche interattive attraverso il Blender Game Engine
Diversi motori di rendering
Possibilità di scripting pythoon
Concetti

Cinematica e la cinematica inversa
Studio del moto dei corpi
 Studio del moto dei corpi in base al solo posizionamento
delle estremità


Armature (scheletri) e la deformazione lattice



Un lattice inserisce un oggetto in una gabbia, definita da un
ristretto numero di vertici; quindi deforma l'oggetto
originale in funzione delle modifiche avvenute sulla gabbia.
Gestione dei keyframe
Animazioni non lineari (NLA)
Rendering


Il rendering è il processo di produzione dell'immagine finale
a partire dal modello matematico del soggetto (scena): è un
punto di vista della scena!
Algoritmi di rendering implicano la proiezione dei modelli
3D su una superficie 2D


Scanline renderers: operano oggetto per oggetto disegnando sullo
schermo ogni poligono
Ray tracers: operano pixel per pixel colorando il punto
considerato analizzando l’intersezione nella scena



Algoritmo del pittore: dagli oggetti lontani a quelli vicini
Z-buffering: un buffer per la coordinata Z
Riproduzione di fenomeni visibili: shading, texture mapping,
normal mapping, trasparency, etc etc
Illuminazione

Texture mapping



Bump mapping


Processo di aumento della complessità di un oggetto senza modificarne i
poligoni, assegnando una texture utilizzata per modellare asperità,
sporgenze o solchi
Normal mapping


Processo di incremento dei dettagli di un modello 3D
Assegnamo alle facce di una mesh, un colore o un’immagine affinchè
l’algoritmo di mapping riesca ad elaborarne il colore
Sostituzione delle normali della superficie della mesh; permette di
simulare la complessità di un oggetto senza modificare il suo modello
I pixel da visualizzare sullo schermo sono calcolati a partire dai
pixel della texture assegnata
Shading


Processo di determinazione dell’ombreggiatura di
un pixel
Algoritmo
sono
Comprende il processo di Lighting, esponenziale:
cioè
di
necessarie delle
illuminazione della scena
approssimazioni!
 Modelli
matematico per stimare il riflesso di un oggetto
(normale di una superficie)

Equazione di rendering
 Luce
uscente = luce emessa + luce riflessa
 Luce riflessa = luce che arriva da tutte le direzioni *
coefficiente di riflessione * angolo di arrivo
Illuminazione e Shading
Interazioni e Game logic

Blender permette inoltre di:
 Simulare
effetti reali attraverso il motore delle collisioni
(rigid body, soft body, cloth etc)
 Programmazione della logica


Come realizzare un gioco in blender?
Come realizzare un video in blender?
Esempio Blender - Bowling
Unity


Strumento di creazione di giochi 3D o altri contenuti
interattivi
Compatibile con la maggior parte dei formati 3D in
circolazione

Supporto nativo per blender

Possibilità di animazioni anche complesse
Unity – Componenti principali
insieme di oggetti 3D
preview del
giochi in
esecuzione
proprietà
dell’oggetto
selezionato
lista di oggetti
3D presenti
nella scena
insieme di
asset (script,
Scena=Gerarchia
modelli 3D,
prefab ect)
Unity - Scripting

MONO compiler

Linguaggi supportati
 JavaScript
 C#
 Integrazione
 BOO
con Microsoft Visual Studio editor
(Python) – in sviluppo dal 2003
Unity – Scene

Tipicamente un gioco è composto da:

Welcome / Main menù

GUI

play game / see high scores / read instructions / change input
settings
Level 1 / Level complete / Level 2 etc…
 Mission 1/ Mission complete / Mission 2 etc
 Game Over / Save score…

Livelli/Missioni sono separati in scene
 Anche le GUI possono essere separate in scene
specifiche

Unity - Asset

Un asset è una risorsa per un progetto:
 Scene
 Contenuti
multimediali (immagini, suoni, modelli 3d)
 C#/javascript file
 “packages” (collezione di altri asset compatta)

Progetto Unity = Insieme di asset

Asset driven development (Asset store)
Unity – Creazione di un gioco




Realizzare un gioco significa cercare e/o creare gli
asset necessari
In unity le scene sono composte da «GameObject»
Un GameObject è un insieme di componenti più le
trasformazioni base 3D (posizione, rotazione,
omotetia)
Un gameobject può diventare qualsiasi cosa
aggiungendo componenti (luci, mesh, audio, camera
etc) e contenere altri GameObject in gerarchia
Unity - Prefab




Nella programmazione a oggetti si hanno le classi e
si istanziano in oggetti a run-time
In Unity esiste il concetto di PREFAB, cioè un
template per un GameObject
DESIGN TIME: è possibile trascinare il prefab nella
scena (o gerarchia) per create l’istanza
RUN TIME: è possibile creare un GameObjetc
istanziando dinamicamente un PREFAB
Esempio Unity - Space Shooter
Conclusioni

Domande?

Riferimento: [email protected]
Scarica