La matematica delle animazioni digitali 3D

Vi è mai capitato di restare immersi in un film di animazione digitale con la sensazione di essere stati catapultati in un mondo reale? O di aver provato empatia per un oggetto umanizzato, come la lampada protagonista del primo cortometraggio della Pixar?
In tal caso l’animazione digitale ha raggiunto il suo scopo, non facile, di produrre al computer un mondo virtuale e credibile. Come immaginerete dietro a tutto ciò c’è tanto lavoro ma anche, e questo è meno evidente, tanta (bella) matematica, di quella che si studia a scuola, come affermato da Tony Derose (a capo della Pixar Animation Studio) nel video TED «The math behind the movies»:

Mostrare quale matematica ci sia dietro i film di animazione è diventato l’obiettivo anche del nuovo corso online «Pixar in a box», realizzato in collaborazione con Khan Academy e fruibile gratuitamente a questo indirizzo.

Come si realizza un’animazione?

Non c’è nulla di meglio di una sperimentazione diretta per comprendere il lavoro di animazione e il linguaggio matematico sottostante. Qui di seguito, per esempio, avete la possibilità di cimentarvi da soli nel riprodurre il rimbalzo di una palla.
Nella prima attività l’azione si ottiene per «straight ahead animation», cioè per riproduzione veloce di una sequenza di immagini successive: selezionate sull’asse temporale i vari fotogrammi (frame), trascinate, per ognuno di essi, la palla nella posizione desiderata e infine premete il tasto play.

pixar-1

Animazione per sequenza rapida di fotogrammi

La simulazione della caduta è in realtà migliorabile attraverso l’operazione matematica di interpolazione lineare, una procedura che fornisce le linee di congiungimento tra due punti successivi, permettendo così di ottenere le posizioni della palla anche tra un fotogramma e l’altro. Potete verificarlo nella seconda attività (Figura 4), scegliendo il frame e trascinando verticalmente il punto (sulla linea blu dell’altezza) fino all’altezza desiderata: appariranno evidenti i segmenti interpolanti che definiscono l’altezza della palla in tutti gli istanti non noti.

pixar-2

Un esempio di interpolazione lineare

Infine per ottenere un andamento più smussato e armonioso del precedente è possibile far ricorso alle curva di Beziér visibili nella terza attività, dove è possibile agire non solo sul punto di intersezione tra il frame e la curva blu delle altezze, ma modificando la concavità della curva stessa (attraverso le linee rosa).

pixar-3

Le curve di Bézier

Cosa sono le curve di Bézier?

Le curve di Bézier sono diventate famose negli anni ’60 quando furono utilizzate dall’ingegnere che diede loro il nome, Pierre Bezier, per disegnare le carrozzerie delle automobili Renault dell’epoca ammorbidendone le curve. Da allora sono utilizzate per rappresentare i caratteri tipografici (ottenendone ingrandimenti o riduzioni senza gestirne un pixel alla volta) e in generale, nei programmi di grafica vettoriale.
Le curve di Bezier permettono, dati n punti nel piano, di rappresentare una curva “smussata” di grado n-1 che approssimi la spezzata per tali punti, e che passi dal primo e l’ultimo punto della spezzata.
Per farsi un’idea della curva di Bezier per 4 punti e della sua costruzione dinamica è possibile sperimentare il foglio Geogebra mostrato qui sotto, ricollocando a piacere i punti iniziali.

Per costruire la curva di Bézier si fanno variare parametricamente (al variare di un parametro t compreso tra 0 e 1) dei punti Qi posti ognuno su un lato della spezzata e in uno stesso rapporto t con tale lato; i segmenti congiungenti i punti Qi, vengono a loro suddivisi da ulteriori punti (che presentano la stessa relazione iniziale t con i segmenti su cui giacciono) e così via. Al variare del parametro t si ottiene la traccia della curva di Bézier, come mostrato nelle costruzioni riportate di seguito.

pixar-4

Curve di Bézier rispettivamente di primo, secondo e terzo grado


Come si rappresentano realisticamente in 3D ambienti e paesaggi virtuali?

L’esempio di ambiente virtuale riportato nel corso «Pixar in a box» è quello della riproduzione di un bel prato (Figura 8) dove ogni filo d’erba è rappresentato autonomamente come arco di parabola, attraverso la curva di Bézier ottenuta da tre punti, o la corrispondente tecnica per inviluppo.

pixar-7

Esempio di inviluppo nel caso della realizzazione grafica di un filo d’erba

Questa tecnica di inviluppo, detta string art, permette di ottenere una curva attraverso la famiglia di rette ad essa tangenti ed è stata fonte di ispirazione per tante realizzazione artistiche (anche 3D) ricche di fantasia e creatività, come una semplice ricerca su Google immagini vi potrà confermare.

pixar-8

Alcuni esempi di string art

Analoghe tecniche di disegno di ambienti a partire dalle loro componenti costitutive è stata utilizzata dalla Walt Disney in Frozen per la riproduzione, la più realistica possibile, di una tempesta di neve a partire dal disegno dei singoli fiocchi di neve, ognuno diverso d’altro e ottenuti attraverso il disegno frattale.

Come vengono smussate le superfici virtuali per renderle così realistiche?

Una tecnica per rendere realistici gli oggetti e i personaggi nelle animazioni 3D è quella di smussarne le superfici rendendole morbide e omogenee attraverso suddivisioni successive. Vediamo come attuarla per smussare un poligono di n vertici: si tracciano i punti medi Mi dei lati (passaggio di split) e si disegna il poligono di 2n lati che ha per vertici i punti medi tra gli Mi e i vertici adiacenti (passaggio di average); si ripete l’operazione di split e average sul nuovo poligono e così via, ottenendo risultati sempre migliori.

pixar-10

Tecnica di split e average applicata a partire da un rombo

La tecnica delle suddivisioni successive è stata ideata da Catmull e Clark proprio per la Pixar e costituisce un argomento di forte interesse nell’ambito della topologia matematica. Le immagini seguenti mostrano la sua efficacia su una superficie 3D, su una mano e sul viso di un personaggio virtuale.

pixar-9

Le tecniche di Catmull e Clark applicate nel caso di figure 3D

Quali sono gli altri argomenti di matematica collegati all’animazione digitale?

Oltre a quanto detto finora, il corso online ha come oggetto anche gli argomenti di calcolo combinatorio per realizzare “folle” di robot, per esempio, in cui ogni personaggio abbia caratteristiche diverse dagli altri; e ancora le trasformazioni geometriche utili per le traslazioni e le rotazioni di oggetti. È inoltre presente un modulo sull’algebra lineare, utile nelle tecniche di rendering, per la resa visiva dell’immagine attraverso la scelta del colore dei singoli pixel, la scelta della posizione di una telecamera virtuale, lo studio della fonte e il tipo di luce e del materiale di cui è composto l’oggetto.

Quali software si possono usare liberamente per sperimentare queste tecniche di animazione digitale?

Per le tecniche di rendering è possibile utilizzare il software Renderman ( a pagamento), mentre per l’animazione 3D in generale è scaricabile gratuitamente il software libero e multi-piattaforma Blender, ricco di tutorial e di materiali.
La promessa del sito Blender è quella di metterci in grado di imparare a modellizzare il volto umano in poco più di due ore, ma attenzione, l’avvertenza degli animatori esperti Pixar è chiara: non basta dare forma e movimento a oggetti e personaggi, occorre dare loro un’anima, portarli alla vita. Occorre chiedersi come stanno, di che umore sono, che carattere hanno, che cosa pensano in quel momento; occorre chiedersi se la palla che rimbalza lo farà con leggerezza o se rimarrà pesantemente “schiacciata” da ogni urto con il terreno che modificherà la sua rotondità. Resta, insomma, la domanda essenziale: «Can you bring it to life?», ovvero, «Puoi darle vita?»

immagine in evidenza e in homepage: pixarplanet.com

Per la lezione

Prosegui la lettura

Commenti

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *