TECNOLOGIE 3D: DALLA MODELLAZIONE - DB&KB Group · Processo di creazione di un movimento e/o...

33
TECNOLOGIE 3D: DALLA MODELLAZIONE ALL’ANIMAZIONE BOLOGNA, 10 DICEMBRE 2014 Ing. Matteo Di Carlo, INAF-OATe

Transcript of TECNOLOGIE 3D: DALLA MODELLAZIONE - DB&KB Group · Processo di creazione di un movimento e/o...

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

...

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

Structure From Motion

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

Mesh Rig

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

Timeline

Properties

3D View Hierarchy

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

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

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

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

Comprende il processo di Lighting, cioè di illuminazione della scena

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

Algoritmo

esponenziale: sono

necessarie delle

approssimazioni!

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

lista di oggetti 3D presenti nella scena

proprietà dell’oggetto selezionato

preview del giochi in esecuzione

insieme di asset (script, modelli 3D, prefab ect)

Scena=Gerarchia

Unity - Scripting

MONO compiler

Linguaggi supportati JavaScript

C# Integrazione con Microsoft Visual Studio editor

BOO (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]