Teoria

Descrivere L’approccio Di Deformazione Basato Su Tecniche Di Free-Form Deformation (FFD).

Le tecniche di Free-Form deformation permettono di deformare un oggetto, trasformando elementi rigidi di una scena in elementi flessibili.

Ne esistono due tecniche principali: la 2D Deformation e la Polyline deformation.

In merito alla 2D Deformation questa sfrutta una griglia locale alla deformazione, che contiene tutti i vertici da deformare e che allo stato iniziale sia allineata alla griglia globale. La deformazione cambia la forma del sistema di riferimento locale invece che dei vertici, infine la deformazione viene applicata al sistema di riferimento globale trasportando le coordinate dei vertici dal riferimento locale deformato a quello globale e mediante un’interpolazione bilineare.

La deformazione polyline utilizza una sequenza di segmenti lineari giunzioni per deformare i vertici. In particolare si sceglie la polyline come sistema di riferimento e si associa ogni vertice alla linea più rilevante, dove la rilevanza si trova facendo partire delle linee perpendicolari alla polyline dalle giunzioni. La polyline viene poi deformata e si registrano le variazioni di lunghezza l del segmento, la distanza d tra il segmento di polyline e di congiunzione e il rapporto dove d è la distanza del vertice dalle estremità del segmento.

Descrivere Un Metodo Di Stima Della Lunghezza D’arco.

Per stimare la lunghezza di un arco si può campionare la curva in un certo numero di punti e poi collegare i punti con delle linee, quindi misurare la lunghezza delle linee. Questa è un’operazione lossy, maggiore è il numero di punti utilizzata maggiore sarà la precisione della misura.

Per accedere velocemente ai valori di lunghezza senza dover rimisurare ogni volta si usa una look-up table, ovvero una tabella il cui input è il punto discreto i (eg. 32 punti di stima) e l’output è il valore di lunghezza cumulativo s. In alcune lookup table, invece di usare come ingresso il punto di stima si usa un valore a virgola decimale che va da 0 ad 1, dove 0 rappresenta l’inizio (mappato appunto a 0 di lunghezza) ed 1 rappresenta la fine, mappato al massimo di lunghezza. Quindi si usano valori come 0.1, 0.2 etc…

Descrivere Una Possibile Catena Cinematica per la Gamba Di Un Umano.

Una catena cinematica per la rappresentazione di una gamba di un uomo è composta da quattro ossa:

  • Osso della coscia, con 3 gradi di libertà
  • Osso della gamba, con 1 grado di libertà
  • Osso dela caviglia, con 3 gradi di libertà
  • Osso del piede, con 1 grado di libertà.
    Questa è solo una rappresentazione semplificata in quanto per progetti ad alta definizione si usano molto più ossa per il piede ad esempio, modellando quindi ogni dito.

Descrivere Le Principali Caratteristiche Di Un Sistema Di Flocking.

Un sistema di flocking è un sistema che presenta dei membri geometricamente complessi e il cui moto è legato tra di essi. Questi possono racchiudere anche centinaia di membri, ma generalmente sono meno di un sistema di particelle puntiformi.

I membri dello stormo hanno un campo di vista che gli permette di vedere gli altri elementi dello stormo vicini per mantenerne posizione e velocità, seguire il leader dello stormo ed evitare la collisione.

Quindi la differenza principale tra stormi e particelle è la complessità geometrica e fisica degli stormi e la dipendenza mutua delle variabili di moto.

Descrivere la Metodologia Di Controllo dell’orientamento Lungo Una Traiettoria Basata Sul Centro d’interesse.

Per controllare l’orientamento di un punto lungo una traiettoria curvilinea si può usare il frame di Frenet, un sistema di riferimento che usa tre vettori (u, v, w) dove:

  • u = P’
  • w = P’ x P”
  • v = w x u
    Il problema di questo sistema è che in assenza di curvatura, o presenza di discontinuità non funziona, per cui si utilizza un Punto di Interesse e invece di usare lo spostamento come funzione principale si usa:
  • , dove COI = Centro di interesse

Si Spieghi in Che Cosa Consiste la Tecnica Di Controllo Della Velocità Ease-in/Ease-out

Le tecniche di easing si utilizzano per applicare il principio dell’animazone “slow-in slow-out”, che dice che i corpi reali hanno un’inerzia e una quantità di moto, per cui generalmente un corpo che vuole muoversi a velocità v ci mette del tempo per raggiungere quella velocità e ci mette del tempo per fermarsi del tutto. Sebbene si potrebbe usare una funzione lineare, risulta più realistico e piacevole usare delle funzioni di easing.

Esistono diverse funzioni di easing, tra cui ad esempio quella tramite il seno . Queste sono funzioni di ingresso da applicare alle funzioni di spostamento, quindi detta la funzione spostamento, si può applicare un ease-in ease-out come .

Descrivere la Pipeline Di Lavoro per Un Video in CG

SAM SLA LC

Lo story department crea lo storyboard e trasforma la descrizione scritta della storia in visuale.
L’art department crea le concept art dettagliate a partire dallo storyboard
Il modeling department crea i modelli 3D.
Lo shading department si occupa di create texture e shader
Il layout department si occupa di staging e posizionamento dei modelli nel portare il film dal 2D al 3D.
L’animation department si occupa di creare le animazioni dando vita alle scene
Il lighting department si occupa dell’illuminazione delle scene.
Il camera department si occupa di renderizzare

Descrivere l’ease-in E Ease-out Mediante Interpolazione Seno.

Le funzioni di easing servono per garantire il principio di slow-in slow-out per cui le animazioni appaiono più realistiche e più piacevoli quando partono con un’accelerazione e finiscono con una decelarazione, entrambi non lineari, in quanto nel mondo reale quasi tutto segue temporizzazioni simili.

Quindi si crea una funzione di easing che ritorna un output da 0 a 1 e viene data in input alla funzione di spostamento .

Nella curva finale si ha quindi una parte iniziale di accelerazione, una parte centrale di movimento lineare, e una parte finale di decelerazione.

Concetto Di Rappresentazioni Gerarchiche Applicate Ai Sistemi Articolati

I sistemi articolati possono essere rappresentati tramite degli alberi, ovvero delle strutture dati con nodi e collegamenti come i grafi, con la distinzione che partono da un nodo di radice e arrivano a dei nodi foglia

Ogni nodo è responsabile soltanto dei propri dati di posizione e rotazione locali rispetto al nodo padre, tuttavia muovere un nodo sposta anche i figli in coordinate globali.

Questo consente di creare delle armature che permettono di animare sistemi articolati come il corpo umano.

Ad esempio si può rappresentare la gamba di un uomo partendo da un osso con tre gradi di libertà, che si collega ad un altro osso ad un grado di libertà, successivamente un altro osso con tre gradi di libertà e infine un altro osso con un grado di libertà.

Descrivere Una Possibile Catena Cinematica per Il Braccio Di Un Umano

La catena cinematica che descrive il braccio di un umano è composta da tre ossa, una per il braccio con 3 gradi di libertà, collegata ad uno per l’avambraccio con un grado di libertà, che si conclude con un osso per il polso con tre gradi di libertà.

Si Descrivano Le Equazioni Di Stato per Un Corpo Rigido

Lo stato di un oggetto viene memorizzato in un vettore, ed è formato da posizione, rotazione, momento lineare e momento angolare dell’oggetto.

Da questo vettore è possibile derivare la velocità lineare ed angolare,

Descrivere Il Ciclo Di Simulazione Di Un Corpo Rigido

Il ciclo di simulazione di un corpo rigido (e delle forze che influiscono su di esso) è fatto da diverse fasi:

  • Calcolo delle forze applicate al corpo (spinte, gravità, vento, etc…)
  • Integrazione della forza per trovare lo spostamento: Forza accelerazione Velocità Posizione
  • Collision detection: la verifica di se oggetti si compenetrano
  • Collision resolution: si applicano impulsi per risolvere la compenterazione
  • Rendering: si renderizza il nuovo frame.

Descrivere Il Ciclo Di Un Sistema Particellare

Le particelle sono geometrie semplici che vengono emesse da emettitore e che aggiornano i loro parametri di posizione, velocità, accelerazione, colore, dimensione etc… reagendo con l’ambiente per creare un effetto realistico.
Ad esempio si può simulare la caduta della neve tramite un sistema di particelle.

Quindi il sistema ad ogni frame deve:

  • cancellare le particelle che hanno completato il loro ciclo
  • modificare i parametri delle particelle attive
  • eventualmente emettere nuove particelle
  • renderizzare le particelle.

Collisione Piano-particella: Descrivere I due Metodi Analizzati

Dato un piano delineato dall’equazione , e la posizione della particella , si può capire quando la particella collide col piano analizzando il risultato di , che sarà = 0 quando avviene la collisione. Esistono due metodi di risposta alla collisione

  1. Il metodo della risposta cinematica sottrae il doppio della componente normale al piano della velocità della particella quando rileva una collisione: Si può eventualmente aggiungere un fattore di smorzamento aggiuntivo che diminuisce il coefficiente di smorzamento per rimbalzi successivi. Sebbene questo metodo non nasca da considerazioni fisiche, da risultati efficaci.
  2. Il metodo della penalità alloca un sistema molla - smorzatore quando viene rilevato un contatto, e quindi impartisce alla particella una forza che segue la legge di Hooke, usando una costante di elasticità della molla stabilita dai designer.

Descrivere I Tre Tipi Di Deformazione Trattati Nel Corso (Seed Vertex, FFD, globale)

La deformazione seed vertex prevede che quando un vertice viene spostato in una direzione comunichi ai vertici adiacenti questo spostamento e lo propaghi con un fattore di smorzamento basato su quanti vertici sono stati attraversati. Questo crea un comportamento molto flessibile che permette di modificare velocemente un vertice e quelli attorno ad esso. Si tratta dell’idea alla base del proportional editing di blender. Difatti i parametri sono il fattore di scala dello spostamento k e il range di effetto n.

La deformazione globale è un metodo per deformare globalmente la rappresentazione di un oggetto mediante una matrice parametrizzata sui parametri di posizione e rotazione dello stesso.

dove M è la matrice parametrizzata. La matrice M potrebbe rappresentare ad esempio un tapering che restringe la y dell’oggetto andando avanti nelle x con M:

Oppure si potrebbe ruotare l’oggetto attorno a z man mano che essa aumenta, creando un effetto vite.

Infine la free-form deformation usa un sistema di mappatura locale (griglie o polyline) e deforma quindi le ancore del sistema locale piuttosto che i vertici stessi. I vertici si adattano al sistema locale, quindi stringendo o allargando la posizione delle ancore si può fare squash and stretch dei vertici. Le tecniche di FFD sono la 2D grid e la polyline.

Nel primo caso si crea una griglia su cui stanno i vertici e si modificano i quattro punti di ancoraggio della griglia (top-left, top-right, bottom-left, bottom-right), quindi tramite interpolazione lineare si calcola la deformazione di ogni vertice.

Nel secondo caso si associa ogni vertice ad un segmento di una polyline, e si usano i parametri di:

  • distanza del vertice dalla segmento
  • distanza del vertice dalle ancore del segmento
  • lunghezza del segmento
    Per calcolare la deformazione.

Illustrare I Concetti Di Ridondanza Spaziale E Temporale Presenti in Una Sequenza Di Immagini

La ridondanza spaziale riguarda le informazioni di colore presenti intra-frame che spesso sono correlate per colore e luminosità. Ad esempio un cielo azzurro ha decine di pixel azzurri, per cui si possono usare tecniche di trasformazione (esempio trasformata coseno) per identificare informazioni simili e codificarle insieme, piuttosto che separatamente, per comprimere le immagini.

La ridondanza temporale invece riguarda le informazioni inter-frame, ovvero tra più frame successivi. Prendendo come esempio lo shot del cielo, probabilmente molti frame avranno per lo stesso pixel lo stesso color azzurrino, allora si codifica soltanto la differenza di colore registrata per i frame, in quanto codificare la stessa informazione per più frame sarebbe appunto, ridondante.

Perché Non Basta la Compressione JPEG per Ogni Frame E Si Deve Ricorrere a Codifiche Inter-frame?

I film attuali sono molto pesanti, anche assumendo una risoluzione di 1920x1080, 8bit di colore e 24 frame al secondo, si arriva a dimensioni di diverse centinaia di gigabyte per due ore di film. Sebbene ormai i blue ray riscano ad arrivare a 200GB di capienza, un tempo i DVD arrivavano a 4.5GB di capienza, e applicare la compressione JPEG permetterebbe un indice di compressione di massimo 1:20, quindi un massimo di circa 90GB di file. Ad ogni modo, ridurre le dimensioni di un file è sempre ottimo in quanto anche per lo streaming gli utenti devono utilizzare meno dati e si riduce il più possibile il buffering anche per connessioni lente.

La codifica inter-frame quindi usa un approccio diverso dalla compressione intra-frame JPEG: si codificano le informazioni video in base alla differenza delle informazioni tra frame. Questo perché le scene, tranne per i cut di camera sono contigue, soprattutto a framerate maggiori, quindi è più efficiente codificare la differenza tra di pixel rispetto, cosa è cambiato tra due frame contigui.

Ripetizioni

Che Cosa Si Intende per Deformazione Globale? Fai Un Esempio.

Descrivere Le Principali Caratteristiche Di Un Sistema Particellare

Presentare Il Frame Di Frenet per la Gestione dell’orientamento Ed Evidenziarne Pregi E Difetti.

Spiegare Le FFD Basate Su Polyline

Descrivere Il Ciclo Di Simulazione Di Un Corpo Rigido

Si Discuta Il Metodo Della Risposta Cinematica per la Gestione Delle Collisioni Particella-piano

Esercizi

Date Le Seguenti Regole Di Produzione Disegnare l’L-System Corrispondente.

Disegnare Il Bracketed L-System Corrispondente.

Quanta Memoria È Necessaria per Immagazzinare Un’immagine Con Risoluzione 1024x1024px, E Profondità Di Colore 32 Bit per Px?

pixel totali
32 bit per pixel = 4 byte per pixel.

Esercizio Deformazione Con Griglia

Per calcolare la posizione di ( A’ ) in coordinate globali dopo una deformazione utilizzando i punti di controllo ( ), possiamo utilizzare l’interpolazione bilineare.

  1. Trovare u e v
    Queste sono sostanzialmente le coordinate locali normalizzate del punto dopo la deformazione.


    • Quindi si trovano i complementari:
  2. Trovare i coefficienti di interpolazione
    Questi si trovano tramite tutte le combinazioni di u, v, (1 - u) e (1 - v):

  3. Applicare l’interpolazione bilineare
    La formula per trovare le coordinate del punto deformato è

    Sostituendo si ottiene:

  4. Trovare le coordinate finali
    A questo punto basta una semplice somma vettoriale.