Sei sulla pagina 1di 101

` DEGLI STUDI DI SIENA

UNIVERSITA
` DI INGEGNERIA
FACOLTA

Corso di Laurea Specialistica in Ingegneria Informatica, orientamento


Sistemi Informatici e Multimediali

Tecniche di Simulazione di Oggetti


Deformabili Basate sul Modal Warping

Relatore
Prof. Domenico Prattichizzo

Correlatori
Prof.ssa Chiara Mocenni
Dott. Maurizio de Pascale

Candidato
Marco Fei
A.A. 2004/2005

Ringraziamenti

Vorrei esprimere tutta la mia gratitudine a quanti in questi anni mi sono


stati vicini, dandomi il loro sostegno ed il loro aiuto.
Un ringraziamento particolare va alla mia famiglia e a Rosi, perche senza il
loro appoggio non avrei mai raggiunto questo traguardo. Ringrazio Marcello
Orlandesi per la preziosa collaborazione sia durante gli studi che nella realizzazione della tesi.
Grazie anche al prof. Prattichizzo, alla prof.ssa Mocenni e al dott. de Pascale.

Indice
1 Introduzione

2 Prerequisiti

11

2.1

Vertici, Triangolarizzazione e Normali . . . . . . . . . . . . . . 11

2.2

Moto Armonico Smorzato . . . . . . . . . . . . . . . . . . . . 15

2.3

Equazioni Differenziali . . . . . . . . . . . . . . . . . . . . . . 16

2.4

2.3.1

Metodo di Eulero Esplicito . . . . . . . . . . . . . . . . 17

2.3.2

Metodo di Eulero Implicito

. . . . . . . . . . . . . . . 18

FEM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.4.1

Funzionamento . . . . . . . . . . . . . . . . . . . . . . 22

3 Deformazioni
3.1

23

Good Vibration . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.1.1

Analisi Modale . . . . . . . . . . . . . . . . . . . . . . 24

3.1.2

Uso del Metodo Modale . . . . . . . . . . . . . . . . . 26

3.1.3

Numero di Modi Richiesti . . . . . . . . . . . . . . . . 27

3.1.4

Ricomputazione di Matrici e Modi

3.1.5

Temporal Aliasing . . . . . . . . . . . . . . . . . . . . 28

3.1.6

Dinamiche e Geometria Analitica . . . . . . . . . . . . 29

3.1.7

Caratterizzazione Veloce delle Collisioni . . . . . . . . 30

. . . . . . . . . . . 28

INDICE

4
3.1.8

Accuratezza nella Caratterizzazione delle Collisioni . . 32

3.1.9

Right Control Knobs . . . . . . . . . . . . . . . . . . . 32

3.1.10 Dinamiche Inverse . . . . . . . . . . . . . . . . . . . . 34


3.1.11 Controllo dellAnimazione . . . . . . . . . . . . . . . . 35
3.2

DyRT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.2.1

3.3

Exciting Modes con Movimenti Rigidi . . . . . . . . . . 36

Modal Warping . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.3.1

Descrizione del Metodo . . . . . . . . . . . . . . . . . . 40

3.3.2

Parte Rotazionale in una Deformazione Piccola . . . . 43

3.3.3

Integrazione delle Parti Rotazionali . . . . . . . . . . . 47

3.3.4

Vincoli di Manipolazione . . . . . . . . . . . . . . . . . 52

3.3.5

Dettagli Implementativi . . . . . . . . . . . . . . . . . 55

4 Hardware e Software
4.1

58

Interfacce Aptiche . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.1.1

Caratteristiche delle Interfacce Aptiche . . . . . . . . . 59

4.1.2

Applicazioni delle Interfacce Aptiche . . . . . . . . . . 62

4.1.3

Attuazione delle Interfacce Aptiche . . . . . . . . . . . 64

4.1.4

Cinestesia . . . . . . . . . . . . . . . . . . . . . . . . . 67

4.1.5

Controllo di Forza nelle Interfacce Aptiche . . . . . . . 70

4.2

Haptik Library . . . . . . . . . . . . . . . . . . . . . . . . . . 75

4.3

Schede Video Programmabili . . . . . . . . . . . . . . . . . . . 76

4.4

4.3.1

Computer Graphics . . . . . . . . . . . . . . . . . . . . 77

4.3.2

Vertex Shader . . . . . . . . . . . . . . . . . . . . . . . 82

4.3.3

Pixel Shader . . . . . . . . . . . . . . . . . . . . . . . . 83

C for graphics . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
4.4.1

GPU vs CPU . . . . . . . . . . . . . . . . . . . . . . . 86

4.4.2

The Graphics Hardware Pipeline . . . . . . . . . . . . 87

INDICE
4.5

5
OpenGL e DirectX . . . . . . . . . . . . . . . . . . . . . . . . 94
4.5.1

OpenGL . . . . . . . . . . . . . . . . . . . . . . . . . . 94

4.5.2

DirectX . . . . . . . . . . . . . . . . . . . . . . . . . . 94

5 Conclusioni e Sviluppi Futuri

96

Bibliografia

99

Elenco delle figure


2.1

Esempio di triangolarizzazione . . . . . . . . . . . . . . . . . . 12

2.2

Dinamica applicata ai vertici

2.3

Normali sui vertici . . . . . . . . . . . . . . . . . . . . . . . . 14

2.4

Sistema massa-molla con smorzatore . . . . . . . . . . . . . . 15

2.5

Errore introdotto dal metodo di Eulero esplicito nella funzione

. . . . . . . . . . . . . . . . . . 13

x2 + y 2 = costante . . . . . . . . . . . . . . . . . . . . . . . . 17
3.1

In sequenza: (a) Cilindro non deformato; (b) Deformazione


lineare dovuta alla compressione; (c) Deformazione lineare
dovuta ad unaccelerazione; (d) Modo quadratico dovuto ad
una forza di curvatura; (e) Sovrapposizione di modi lineari
e quadratici dovuti ad una compressione; (f ) Sovrapposizione
di modi lineari e quadratici dovuti ad una accelerazione . . . . 26

3.2

Collisione fra una sfera ed una barra . . . . . . . . . . . . . . 28

3.3

Smorzamento della vibrazione in funzione del tempo . . . . . . 33

3.4

Fasi di compressione ed estensione in una collisione . . . . . . 35

3.5

Oggetto non deformato . . . . . . . . . . . . . . . . . . . . . . 39

3.6

Cubo deformato con modo 8 . . . . . . . . . . . . . . . . . . . 41

3.7

Cubo deformato con modo 15

3.8

Cubo deformato con modo 2 . . . . . . . . . . . . . . . . . . . 43


6

. . . . . . . . . . . . . . . . . . 42

ELENCO DELLE FIGURE


3.9

Cinematica di una deformazione infinitesimale . . . . . . . . . 44

3.10 Coordinale locali per ogni nodo . . . . . . . . . . . . . . . . . . 48


4.1

Diagramma a blocchi del funzionamento di uninterfaccia aptica 60

4.2

Phantom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

4.3

A sinistra DaVinciTM surgical system, a destra ZeusTM . . . 63

4.4

Rappresentazione di un sistema master-slave . . . . . . . . . . 64

4.5

Power Loader, Sci-Fi movie Aliens 1986 . . . . . . . . . . . . 65

4.6

Modellazione di oggetti rigidi . . . . . . . . . . . . . . . . . . . 68

4.7

Rappresentazione della collision detection . . . . . . . . . . . . 69

4.8

Modellazione di oggetti deformabili . . . . . . . . . . . . . . . 70

4.9

Dettaglio del loop nel caso di oggetti deformabili . . . . . . . . 70

4.10 Controllore dellinterfaccia aptica . . . . . . . . . . . . . . . . 71


4.11 Sistema con molla

. . . . . . . . . . . . . . . . . . . . . . . . 72

4.12 Sistema con massa, molla e smorzatore . . . . . . . . . . . . . 73


4.13 Controllore di impedenza open-loop . . . . . . . . . . . . . . . 74
4.14 Controllore di impedenza open-loop con model-feedforward

. . 74

4.15 Controllore di impedenza con sensore di forza in retroazione . 75


4.16 Architettura di base per computer graphics . . . . . . . . . . . 78
4.17 Stadi per lelaborazione delle primitive . . . . . . . . . . . . . 80
4.18 Rappresentazione del volume di vista . . . . . . . . . . . . . . 81
4.19 Esempio di triangolarizzazione . . . . . . . . . . . . . . . . . . 82
4.20 Schema a blocchi del Vertex shader . . . . . . . . . . . . . . . 83
4.21 Esempio di triangolarizzazione di un albero motore . . . . . . 84
4.22 Esempio di pipeline . . . . . . . . . . . . . . . . . . . . . . . . 88
4.23 Pipeline hardware grafico . . . . . . . . . . . . . . . . . . . . . 88
4.24 Step della pipeline . . . . . . . . . . . . . . . . . . . . . . . . . 90
4.25 Step della pipeline . . . . . . . . . . . . . . . . . . . . . . . . . 91

ELENCO DELLE FIGURE

4.26 Flow chart di un processore di vertici programmabile


4.27 Flow chart del fragment processor programmabile

. . . . . 92

. . . . . . . 93

Capitolo 1
Introduzione
In questa tesi verranno esaminate ed implementate tecniche per la simulazione oggetti virtuali deformabili. In particolare, sara studiata lAnalisi Modale
ed una sua evoluzione, il Modal Warping, che consente di simulare deformazioni di intensita elevata senza compromettere la stabilita delloggetto,
funzionando in real-time.
LAnalisi Modale Lineare consente di individuare un insieme di modi di deformazione, riducendo il problema di simulare una deformazione alla ricerca
dei pesi dei modi, portando anche un notevole beneficio dal punto di vista
della diminuzione del carico computazionale, anche se produce risultati piuttosto innaturali per deformazioni intense e nel caso di torsioni delloggetto.
Il Modal Warping, invece, porta il realismo visivo ad un livello discreto, modellando la parte rotazionale di una deformazione senza utilizzare termini
non lineari, anche se non viene garantita la conservazione del volume durante la deformazione stessa. Questa tecnica funziona esclusivamente su oggetti
deformabili vincolati in qualche modo ad una base di appoggio e consente di
rappresentare deformazioni dovute al moto del supporto rigido o allazione
di forze esterne quali, ad esempio, la forza di gravita.
9

CAPITOLO 1. INTRODUZIONE

10

Il Modal Warping, quindi, eredita i pregi dellAnalisi Modale, migliorandone


il realismo visivo senza gravare sulla complessit`a e sul carico computazionale.

Capitolo 2
Prerequisiti
La tecnica di deformazione analizzata in questa tesi si basa su concetti inerenti grafica, matematica e modellazione di oggetti virtuali.
In primo luogo verranno definite delle nozioni basilari per la grafica quali
vertici, normali e triangolarizzazione di superfici. Per quanto riguarda la
componente matematica del lavoro saranno presentati dei metodi di integrazione numerica e la descrizione della dinamica dei vertici costituenti loggetto
virtuale, riconducibile ad un moto armonico in presenza di smorzatore. In fine, viene introdotto il metodo agli elementi finiti, fondamentale per modellare
le caratteristiche fisiche di una struttura.

2.1

Vertici, Triangolarizzazione e Normali

Quando si vuole rappresentare un qualsiasi oggetto allinterno di un ambiente


virtuale, e necessario approssimarlo tramite elementi infinitesimali di volume,
trattabili poi da metodi quali ad esempio FEM, per studiare come il corpo
si muove o si deforma. Qualora si tratti di oggetti complessi o di dimensioni
importanti, diventa computazionalmente oneroso calcolare il comportamento
11

CAPITOLO 2. PREREQUISITI

12

di ogni volume infinitesimale in cui il corpo e stato scomposto, soprattutto se


la deformazione o il movimento impresso al corpo devono essere visualizzabili
in real-time, cioe con una frequenza di aggiornamento compresa tra 30Hz e
60Hz.

Figura 2.1: Esempio di triangolarizzazione


Per poter fare fronte a tale situazione, vengono introdotte alcune semplificazioni: per prima cosa si considerano solo i volumi infinitesimali superficiali
delloggetto in esame e poi, di tali blocchetti, vengono processati solo i vertici
sulla superficie, approssimando cos il corpo con un insieme di punti pi
uo
meno grande, a seconda di quanto si vuole riprodurre fedelmente la superficie
esterna. A tali vertici sono date delle proprieta, per poter simulare le caratteristiche delloggetto rappresentato, come ad esempio stiffness (cioe durezza
o resistenza a forze di contatto), vincoli di posizione o relazioni con altri ver anche possibile attribuire delle dinamiche pi
tici. E
u o meno complesse a tali
vertici, come ad esempio un sistema massa-molla, con o senza smorzatore.
Una volta stabilito il numero di vertici, per poter riprodurre la superficie

CAPITOLO 2. PREREQUISITI

13

Figura 2.2: Dinamica applicata ai vertici


delloggetto, e necessario unirli tramite dei segmenti e le primitive geometriche che solitamente vengono preferite sono i triangoli, perche tendono a
produrre approssimazioni migliori e in particolare sono le strutture su cui si
basano le attuali GPU.
Ad ogni vertice, poi, e associata una normale, ovvero un vettore normalizzato che segue il movimento del vertice su cui e posizionata e serve per
poter creare effetti di luce sulloggetto virtuale creato. La loro presenza e di
fondamentale importanza per aumentare il realismo visivo sia delloggetto,
che della simulazione realizzata.
Nella realta, i colori degli oggetti che vediamo, sono il risultato della luce
che li colpisce e del modo in cui essi riflettono la luce; in un ambiente virtuale,
devono essere riprodotte sfumature, ombre e tutte quelle caratteristiche che
rendono veritiero loggetto simulato. Questo colore puo cambiare da punto a
punto, anche su oggetti di colore uniforme a causa, ad esempio, di propriet`a
della superficie (lucida/opaca) o dellangolo di incidenza tra superficie e luce

CAPITOLO 2. PREREQUISITI

14

Figura 2.3: Normali sui vertici


riflessa.
Per simulare cio che avviene nella realta, e necessario un Modello di Illuminazione, realizzato tramite unequazione matematica che descrive come
ogni punto delloggetto e illuminato in funzione di sorgenti di luce presenti
nella scena, della posizione del punto, dellorientamento della superficie del
punto e della proprieta con cui il materiale nel punto riflette la luce. Il processo di calcolo dellequazione di illuminazione in uno o pi
u punti delloggetto
si chiama lighting, mentre il modo in cui il lighting viene utilizzato per calcolare e simulare lilluminazione delloggetto durante il rendering si chiama
shading. Entrambi sono calcolati come se ogni punto della scena ricevesse
luce da tutte le sorgenti, senza tenere conto di ombre e di luce riflessa da
altri oggetti.

CAPITOLO 2. PREREQUISITI

2.2

15

Moto Armonico Smorzato

Ogni moto che si ripete ad intervalli regolari si dice moto periodico. Se una
particella si muove avanti e indietro sullo stesso percorso, il moto e detto
oscillatorio o vibratorio. Moltissimi sono i moti oscillatori presenti in natura:
alcuni esempi sono costituiti dalle oscillazioni del bilanciere di un orologio,
di una corda di violino, di una massa fissa ad una molla ecc. Molti corpi che
compiono oscillazioni, non si muovono avanti e indietro tra limiti fissi, perche
le forze di attrito dissipano lenergia del moto; questi moti, che non sono
periodici, vengono chiamati moti oscillatori smorzati e sono caratterizzati
dal fatto che lampiezza delle oscillazioni diminuisce gradualmente fino ad
annullarsi.

Figura 2.4: Sistema massa-molla con smorzatore


Spesso lattrito nasce dalla resistenza dellaria o da forze interne e usualmente dipende dalla velocita. Il moto armonico smorzato considerato in
questa tesi e caratterizzato dalle seguenti equazioni:
Kx b

dx
= ma
dt

(2.1)

ossia
dx
dx2
+ b + kx = 0.
2
dt
dt
Se b e piccolo, la soluzione di questa equazione differenziale e
m

bt

x = Ae 2m cos( 0 t + )

(2.2)

(2.3)

CAPITOLO 2. PREREQUISITI
dove:

16
s

= 2 =

b
2m

2
(2.4)

Come ci si puo attendere, lattrito rallenta il moto e lampiezza di questo


tende gradualmente a zero.

2.3

Equazioni Differenziali

Le equazioni differenziali, descrivono la relazione tra una funzione sconosciuta


e le sue derivate. Risolvere unequazione differenziale significa trovare una
funzione che soddisfi la relazione data, tipicamente mentre soddisfa anche
alcune condizioni aggiuntive. In un problema canonico del valore iniziale,
il comportamento del sistema e descritto da una Equazione Differenziale
Ordinaria (ODE) nella forma
x = f (x, t)

(2.5)

dove f e una funzione nota, x e lo stato del sistema e x e la derivata di x


rispetto al tempo; tipicamente x ed x sono dei vettori.
Per la risoluzione di tali equazioni, vengono utilizzati metodi esclusivamente numerici, nei quali sono considerati incrementi temporali discreti partendo da un valore iniziale x(t0 ). Ad ogni passo, viene usata la funzione
derivativa f, per calcolare un incremento approssimativo in x (dx ) in un intervallo di tempo dt ed in seguito viene incrementato x di dx, per ottenere
il nuovo valore. Calcolando una soluzione numerica, la funzione derivativa f
viene considerata come un black-box.

CAPITOLO 2. PREREQUISITI

2.3.1

17

Metodo di Eulero Esplicito

Il pi
u semplice metodo numerico, e chiamato metodo di Eulero Esplicito. Il
valore iniziale di x e chiamato x0 = x(t0 ) e viene stimato x ad un certo tempo
t0 + h con x(t0 + h), dove h e il parametro che indica il passo temporale. Il
metodo di Eulero, calcola semplicemente x(t0 + h) facendo un passo nella
direzione della derivata:
x(t0 + h) = x0 + h(x(t
0 ))

(2.6)

Il metodo di Eulero non e molto accurato. Si consideri il caso di una funzione f in 2D rappresentata da cerchi concentrici. Un punto p appartenente
ad f dovrebbe orbitare per sempre in uno dei cerchi, invece, ad ogni passo del metodo di Eulero, si muovera tramite una linea spezzata su cerchi
di raggio maggiore, andando a seguire un cammino non pi
u circolare ma a
spirale. Inoltre, il metodo di Eulero puo essere instabile per valori di h non
sufficientemente piccoli.

Figura 2.5: Errore introdotto dal metodo di Eulero esplicito nella funzione
x2 + y 2 = costante
Questo perche, per come e strutturato, tale metodo introduce un certo
errore ad ogni passo ed e possibile darne una spiegazione andando a studiare

CAPITOLO 2. PREREQUISITI

18

la serie di Taylor:
x(t0 + h) = x(t0 ) + hx(t
0) +

h2
hn dn x
+ ... +
+ ...
2!
n! dtn

(2.7)

Il metodo di Eulero tronca la serie al secondo termine, scartando tutti gli


altri; questo introduce un errore che e un O(h2 ). Tale metodo e computazionalmente efficiente, dal momento che richiede un solo calcolo per ogni
passo.

2.3.2

Metodo di Eulero Implicito

Quando si presentano equazioni differenziali di tipo stiff (ODE stiff) sarebbe


desiderabile cambiare formulazione del problema; tuttavia, talvolta cio non
e possibile e quindi si ricorre a metodi risolutivi cos detti impliciti.
Con la tecnica di Eulero Implicito, data unequazione differenziale del
tipo
x(t)

= f (t)

(2.8)

per aggiornare il sistema in avanti nel tempo, viene usata la seguente equazione:
xnew = x0 + hf (xnew )

(2.9)

dove xnew e il valore da calcolare e x0 quello conosciuto. Per poter calcolare xnew , occorre rimpiazzare f (xnew ) con unapprossimazione lineare basata
sullo sviluppo in serie di Talylor di f. Lincremento x viene calcolato come
x = xnew x0 ,

(2.10)

in modo da poter riscrivere lequazione generale del metodo:


x0 + x = x0 + hf (x0 + x)

(2.11)

CAPITOLO 2. PREREQUISITI

19

ovvero
x = hf (x0 + x)

(2.12)

Inoltre, f (x0 +x) viene approssimato con f (x0 )+f 0 (x0 )x. Usando questa
approssimazione, x puo essere riscritto come
x = h(f (x0 ) + f 0 (x0 )x)
Esplicitando rispetto a x si ottiene

1
1
0
x =
I f (x0 )
f (x0 ),
h

(2.13)

(2.14)

dove I e la matrice identita.


Calcolare xnew = x0 + x, e molto pi
u semplice che usare un metodo
esplicito, dal momento che si tratta di risolvere un sistema lineare ad ogni
passo.
Tuttavia il calcolo di

1
1
0
I f (x0 )
f,
h

(2.15)

nel caso di dinamiche complesse, e veramente molto oneroso dal punto di


vista computazionale. Ad esempio, nel caso in cui vengano simulate le dinamiche di dieci corpi rigidi in un ambiente virtuale, le dimensioni delle
matrici coinvolte risultano essere estremamente elevate (120x120); facendo
la semplificazione di conoscere ad ogni passo la derivata della funzione f, si
tratta sempre di calcolare linversa di matrici molto grandi. Considerando
inoltre un tempo di campionamento relativamente basso, si ottengono tempi
di risposta piuttosto elevati, spesso non compatibili con i tempi di risposta
necessari per applicazioni real-time.

CAPITOLO 2. PREREQUISITI

2.4

20

FEM

Nellambito dei metodi numerici utilizzati per simulare la risposta nel continuo (e particolarmente nel continuo meccanico-strutturale) il metodo degli elementi finiti (FEM, Finite Elements Method) e quello maggiormente
diffuso. I codici di calcolo commerciali oggi disponibili rendono lutilizzo
industriale del metodo particolarmente agevole, eliminando molte delle complicazioni formali che ne costituivano il deterrente principale allimpiego sistematico. Privilegiare gli aspetti operativi puo generare, pero, una falsa
convinzione di competenza a danno dellaffidabilita e, quindi, dellutilita dellapproccio ai fini della pratica progettuale.
Come tutti i metodi numerici, anche il metodo degli elementi finiti fornisce soluzioni approssimate. Queste dipendono dalla formulazione, ed hanno implicazioni dirette sulla scelta del modello adatto, sulla suddivisione in
elementi, sullimposizione delle condizioni al contorno e delle condizioni di
carico, e sui valori assegnati ai parametri che controllano la soluzione. Una
volta risolto il modello, occorre poi saper analizzare i risultati, traendo informazioni utili per le finalita progettuali. Ragionare astrattamente su questi
temi e relativamente facile: il metodo e consolidato e, se ci si limita alla
teoria di base, elementare e ben documentato. Va capito quando ha senso
ricorrere ad un modello ad elementi finiti, sia in ragione della significativita
e precisione dei risultati ottenibili, sia in ragione della complessita formale
del calcolo, sia rispetto ai dati disponibili. Si tratta di affrontare un processo
di approssimazione in modo coerente: scegliere il modello adatto, utilizzare il miglior compromesso rispetto alla qualita in sede di generazione della
suddivisione in elementi, descrivere correttamente il comportamento dei materiali e le condizioni di sollecitazione, rappresentare i risultati e valutarne il
grado di precisione. Il metodo agli elementi finiti (FEM) e uno degli stru-

CAPITOLO 2. PREREQUISITI

21

menti computazionali attualmente pi


u in uso nella meccanica strutturale, in
quanto permette lanalisi di molti problemi per i quali spesso non esiste soluzione analitica. Il metodo degli elementi finiti ha avuto origine con lanalisi
matriciale delle strutture, e la sua formulazione e basata su principi variazionali. Estese e varie sono le sue applicazioni alla meccanica dei fluidi, alla
termodinamica, geomeccanica, e acustica. Tramite il FEM, problemi mono,
bi e tridimensionali sono trattati con omogeneita di linguaggi. Il metodo,
puo essere considerato come una naturale evoluzione dei metodi standard di
meccanica strutturale per telai modellati con elementi discreti, o come una
tecnica di soluzione approssimata per problemi di meccanica dei continui mediante discretizzazione del dominio. Lidea essenziale del metodo, consiste
nellapprossimare lo stato tensionale e deformativo di ciascun elemento piano con una combinazione di campi tensionali, definiti in corrispondenza dei
nodi. Lidea e applicabile sia ad elementi triangolari che rettangolari; gli elementi triangolari hanno maggiore diffusione per la loro facile adattabilita ad
una qualsiasi forma. Il metodo degli elementi finiti consiste, sostanzialmente,
nella discretizzazione di un assegnato dominio in elementi fra loro connessi
in un numero finito di punti, vertici degli elementi o nodi, in corrispondenza
dei quali sono valutate le componenti di spostamento (incognite primarie del
problema). Come menzionato gia in precedenza, lo stato tensionale e deformativo allinterno del singolo elemento e ottenuto sulla base dei valori dei
parametri nodali attraverso luso di speciali funzioni di forma. La scelta di
tali funzioni, come pure del tipo di mesh con cui discretizzare il dominio,
condiziona sensibilmente la quantita dei dati numerici. Questo porta a un
metodo versatile, che puo essere usato per risolvere efficientemente classi di
problemi e che e assai idoneo per luso di computer.

CAPITOLO 2. PREREQUISITI

2.4.1

22

Funzionamento

Il metodo ad elementi finiti e una tecnica per simulare il comportamento


dinamico di un oggetto. Nel FEM, la continua variazione di spostamento
attraverso un oggetto e espressa da un numero finito di spostamenti chiamati
nodal point, che vengono poi interpolati tramite una funzione di smooth.
Lequazione dellenergia, nel caso dinamico, puo essere scritta come
M u + Du + Ku = f

(2.16)

in cui u e un vettore di dimensione 3n 1 che rappresenta le coordinate


(x, y, z) dello spostamento degli n nodal point, relativi al centro di massa
delloggetto. M, D, K sono matrici di dimensione 3n 3n che descirvono
rispettivamente la massa, lo smorzamento e la stiffness tra ogni punto interno
al corpo. f e un vettore 3n 1 che rappresenta le coordinate (x, y, z) delle
componenti delle forze che agiscono nei nodi.
Per calcolare queste equazioni, e quindi simulare tale comportamento,
si considerano i nodal points, ai quali vi e collocata una massa, collegati
tramite una molla ed uno smorzatore e si usano metodi numerici iterativi
classici come quello di Eulero Esplicito oppure Eulero Implicito, a seconda
dellapplicazione che si intende realizzare.
Il problema fondamentale di questo metodo e la dimensione eccessiva
delle matrici M, D e K, che rendono difficile il campionamento con tempi
accettabili.

Capitolo 3
Deformazioni
Ogni cosa in questo mondo si deforma. In molti oggetti o creature, la deformazione e una caratteristica cos cospicua che la loro rappresentazione
sembra alquanto innaturale se il processo di deformazione non e propriamente simulato. Ma modellare una deformazione richiede anche trattabilita dei
calcoli e quindi ridotta complessit`a, per non perdere realismo visivo e far si
che la deformazione stessa avvenga in tempi ragionevoli, o per meglio dire in
real-time.
Tramite lanalisi modale, si studiano i modi di deformazione di un oggetto,
i quali vanno a creare una base per rappresentare lo spazio delle possibili
deformazioni delloggetto stesso. In realta, non e necessario utilizzare tutti i modi che compongono tale base per ottenere un buon riscontro visivo
delloggetto deformato: luso di un numero ridotto di modi ha come diretta
conseguenza la riduzione della complessita dei calcoli. Le prime due sezioni di questo capitolo approfondiscono lanalisi modale e la sua portabilia su
GPU, mentre lultima sezione presenta la tecnica per simulare le deformazioni
implementata con questa tesi.

23

CAPITOLO 3. DEFORMAZIONI

3.1

24

Good Vibration

Molti dei problemi che si hanno simulando e renderizzando sistemi complessi


di oggetti non rigidi, possono essere minimizzati descrivendo separatamente la geometria e le dinamiche, utilizzando rappresentazioni ottimizzate per
luno e laltro caso, accoppiandole assieme. Verra presentato un sistema che
utilizza deformazioni polinomiali per unire la rappresentazione della dinamica di un oggetto (vibration-mode) assieme al modello volumetrico della
geometria delloggetto stesso. Usando tale sistema ibrido, si e in grado di
guadagnare fino a due ordini di grandezza in efficienza, ottenendo soluzioni closed-form per problemi comuni di dinamiche inverse. Inoltre, tale approccio alla simulazione di dinamiche, si presta allutilizzo con animazioni
tradizionali.

3.1.1

Analisi Modale

Essendo M, D e K matrici simmetriche definite positive, ed inoltre, M e D


relazionate da una trasformazione scalare, lequazione
M u + Du + Ku = f

(3.1)

si considera come divisa in 3n equazioni differenziali indipendenti usando la


trasformazione di Whitening, che simultaneamente diagonalizza M, D e K.
Questo tipo di trasformazione e la soluzione del problema di inseguimento
degli autovalori
= M 1 K

(3.2)

in cui e sono rispettivamente autovalori ed autovettori di M 1 K.


Usando la trasformazione
u = u

(3.3)

CAPITOLO 3. DEFORMAZIONI

25

lequazione 3.1 puo essere riscritta come


+ T Du + T Ku = T f
T M u

(3.4)

in cui T M , t D sono matrici diagonali.


Se poniamo
M = T M ; D = T D;
(3.5)
K = T K;

f = T f ;

lequazione 3.4 e rappresentabile tramite 3n equazioni indipendenti della


forma
Mi ui + Di ui + Ki ui = fi

(3.6)

in cui il pedice i individua li-esimo elemento diagonale della matrice; Mi ,


Di e Ki rappresentano rispettavamente la generalizzazione della massa, dello
smorzamento e della stiffness del modo i cos che la fi diviene la forza ottenuta con il modo di vibrazione considerato.
Lequazione 3.6 rappresenta il tempo trascorso di uno dei modi di vibrazoine
delloggetto.
La i-esima riga di i descrive la deformazione delloggetto provocato dallapplicazione di f i e lautovalore i risulta proporzionale alla frequenza di
risonanza del modo di vibrazione.
Per ottenere unaccurata simulazione della dinamica di un oggetto sottoposto ad una data forza, si usa una semplice sovrapposizione lineare dei
modi da essa provocati.
Dallequazione 3.6 si nota come, per oggetti deformabili in modo lineare,
il comportamento non rigido delloggetto, in risposta ad un impulso, puo
essere risolto in forma chiusa per ogni ciclo di tempo. In ambienti caratterizzati dalla presenza di forze pi
u complesse, la soluzione analitica diventa

CAPITOLO 3. DEFORMAZIONI

26

Figura 3.1: In sequenza: (a) Cilindro non deformato; (b) Deformazione lineare dovuta alla compressione; (c) Deformazione lineare dovuta ad unaccelerazione; (d) Modo quadratico dovuto ad una forza di curvatura; (e) Sovrapposizione di modi lineari e quadratici dovuti ad una compressione; (f )
Sovrapposizione di modi lineari e quadratici dovuti ad una accelerazione
molto gravosa e quindi si preferiscono metodi risolutivi di tipo numerico. A
tale proposito, per calcolare come ogni modo varia nel tempo, si possono
usare indistintamente metodi impliciti ed espliciti.

3.1.2

Uso del Metodo Modale

Il metodo Modale, permette di controllare la computazione della dinamica di


oggetti sottoposti a forze esterne in modo vantaggioso per svariate applicazioni.
I modi associati a frequenze ad alta risonanza, normalmente hanno poco
effetto nel contorno delloggetto. Questo perche, per unenergia di eccitazione
fissata, la disposizione dellampiezza di ogni modo e inversamente proporzionale al quadrato della frequenza di risonanza del modo stesso. Per questo
motivo, una simulazione accurata ed efficiente della dinamica di un oggetto e

CAPITOLO 3. DEFORMAZIONI

27

compiuta trascurando i modi di piccola ampiezza ed alta frequenza e, quindi,


sovrapponendo solo i modi di grande ampiezza e bassa frequenza. Per determinare quali sono i modi da trascurare, si analizzano gli autovalori associati,
poiche risultano essere proporzionali alla frequenza di risonanza. Leffetto
delleliminazione di alcuni modi e quello di ridurre il numero di equazioni
considerate allinterno dellintervallo temporale; tuttavia, se il risultato ottenuto non e soddisfacente, basta integrare i modi considerati con parte di
quelli scartati, fino al raggiungimento della simulazione desiderata.
In alcune situazioni si nota come, con meno equazioni ed intervalli di
tempo pi
u grandi, si diminuisce il tempo computazionale fino a due ordini di
grandezza, producendo unanimazione realistica ed accurata.

3.1.3

Numero di Modi Richiesti

La condizione ottimale per la simulazione della dinamica di un oggetto soggetto a forze esterne, e quella di riuscire a considerare tutti i modi che queste
ultime producono nelloggetto. In una fase iniziale, possono essere considerati soltanto il corpo rigido ed i modi lineari, in modo da guadagnare in termini
di spesa computazionale, per poi aggiungere singolarmente gli altri modi fino
ad arrivare allaccuratezza desiderata, ovviamente con un costo computazionale crescente.
Le iterazioni fra pi
u corpi, si ottengono utilizzando soltanto modi lineari
e quadratici per corpi rigidi, come mostrato nelle Figure 3.1 e 3.2.
Quanto appena detto, viene implementato per situazioni in cui gli oggetti esaminati hanno dimensioni molto diverse fra loro, con metodo di
rappresentazione di tipo FEM.

CAPITOLO 3. DEFORMAZIONI

28

Figura 3.2: Collisione fra una sfera ed una barra

3.1.4

Ricomputazione di Matrici e Modi

Sia nel metodo ad elementi finiti (FEM) che in quello modale, le matrici di
massa, di smorzamento e di stiffness non vengono ricalcolate ad ogni intervallo di tempo. Tuttavia, luso di matrici fisse, e ben giustificato fino a che
gli spostamenti del materiale sono relativamente piccoli. Nella formulazione
standard ad elementi finiti, lazione di ogni modo e distribuita attraverso
lintero set di equazioni, in modo da rendere possibile il calcolo delle matrici
di massa e stiffness pi
u volte nellintervallo di tempo come richiesto dai modi ad alta frequenza, ossia quei modi che risultano meno stabili di quelli a
bassa frequenza, poiche determinati da caratteristiche pi
u particolari legate
alla silhouette delloggetto. Quando i modi ad alta frequenza non vengono
considerati, le matrici di massa, smorzamento e stiffness possono essere ri stato dimostrato sperimentalmente che,
calcolate meno frequentemente. E
in molte sequenze di animazioni, e possibile usare un singolo set di modi a
bassa frequenza per lintera simulazione.

3.1.5

Temporal Aliasing

Unimportante conseguenza delleliminazione dei modi ad alta frequenza e la


riduzione temporale dellaliasing. Una simulazione della dinamica ottenuta

CAPITOLO 3. DEFORMAZIONI

29

con il metodo FEM, produce alcuni spostamenti ad alta frequenza temporale


(soprattutto nei materiali particolarmente duri). Per evitare aliasing temporale, questi piccoli spostamenti devono essere simulati molto accuratamente
considerando dei piccoli time step; successivamente, viene calcolata una media dei risultati ottenuti e quindi considerato questultimo contributo per la
simulazione finale. Nellanalisi modale, invece, e possibile identificare lo spostamento provocato da queste alte frequenze, in modo da elimirle per ridurre
non solo il numero di time-step richiesti, ma anche la necessita di calcolare
la media dei singoli contributi.

3.1.6

Dinamiche e Geometria Analitica

Un problema che riguarda la tecnica standard della dinamica non-rigida, e


dato dalluso di una rappresentazione di tipo point-wise della geometria, cos
che questultima e identica alla rappresentazione della dinamica. Il fatto di
avere la stessa rappresentazione sia per la geometria che per la dinamica,
provoca un grave impatto sullefficienza ed accuratezza di simulazioni multibody, in cui e richiesto di specificare i dettagli della geometria per ottenere
accurate detection della collisione. Per aggirare questo problema, si descrive
ogni modo con unappropriata funzione polinomiale ed usando poi la tecnica
della deformazione globale si stabiliscono le corrispondenze tra stato dinamico e stato geometrico. Quello che si ottiene, e una tecnica efficiente per la
simulazione della dinamica di oggetti non rigidi.
Per arrivare a buoni risultati, si deve prima capire come i modi possono
essere classificati in base alla complessita della deformazione 1 . Cos facendo,
e possibile descrivere la deformazione associata con ogni modo, usando delle
1

Ad esempio per i corpi rigidi abbiamo modi di ordine zero, per deformazioni lineari

modi di ordine uno e per quelle quadratiche modi di ordine due.

CAPITOLO 3. DEFORMAZIONI

30

mappe polinomiali di deformazione del grado appropriato.


Tutto questo si implementa costruendo un regressore lineare di un polinomio costituito da m termini di valore opportuno per (x,y,z) contro le n triple
di (x,y,z) che compongono P hii . Un vettore di dimensione 3n 1 contiene
gli elementi della i-esima riga di P hi
= ( T )1 ,

(3.7)

in cui e una matrice di dimensioni m 1 contenente i coefficienti della


deformazione polinomiale desiderata e una matrice 3n m, in cui la prima
colonna contiene gli elementi di u = (x1 , y1 , z1 , x2 , t2 , z2 , ....) e le rimanenti
colonne contengono la versione modificata di u, in cui le componenti x, y e/o
z sono state elevate alle varie potenze

x x2
1 1

y1 y1

z1 z1

= x2 x22

y2 y2

z2 z2

..
..
.
.

x1 x1

y12 y1

2
z1 z1

x2 x2

2
y2 y2

2
z2 z2

..
..
..
.
.
.

(3.8)

Il risultato e un modello polinomiale delle unita di ampiezza della deformazione, associata al modo i-esimo.

3.1.7

Caratterizzazione Veloce delle Collisioni

Nelle simulazioni complesse e multi-body, la capacita di determinare e caratterizzare le collisioni `e estremamente importante. Purtroppo, la rappresentazione point-wise usata nello standard FEM e estremamente povera per questi

CAPITOLO 3. DEFORMAZIONI

31

task; quando viene usata una rappresentazione poligonale, la complessita di


collision detection risulta essere un O(mn), in cui n rappresenta il numero di
poligoni e m il numero di punti considerati dopo il taglio bounding box.
Tuttavia, e possibile ottenere collision detection relativamente efficienti
considerando rappresentazioni volumetriche superquadratiche, in cui la primitiva volumetrica e un super quadrato mappato nel suo frame canonico2 da
una trasformazione T. La funzione normalizzata D(x,y,z) considerata per i
super quadrati e la seguente:

D(x, y, z) =

x
a1

y
a2

2 1
1

z
a3

2 2
2

(3.9)

in cui la posizione (x,y,z) e relativa al frame canonico delloggetto.


Per la collision detection, vengono presi poi i punti (x,y,z) campionati
direttamente dalla superficie considerata delloggetto, applicando la funzione
T 1 per convertirli al frame canonico per poi sostituirli nella funzione inside/outside. Quando il risultato ottenuto e un valore minore di uno, il punto
e allinterno della superficie, mentre, quando si ottiene un risultato superiore
allunita, significa che non e avvenuta nessuna collisione. In questa nuova
situazione, si ottiene una complessita dellordine di O(m), notevolmente ridotta rispetto al caso precedente (O(mn)). Tuttavia, anche in questo caso,
per determinare il punto esatto di collisione nello space-time, sono necessarie tecniche di minimizzazione numerica, in cui la posizione del punto T e
lequazione 3.9 sono espresse come funzioni nel tempo.
2

Il frame canonico e centrato in (0,0,0) e non ha nessuna rotazione.

CAPITOLO 3. DEFORMAZIONI

3.1.8

32

Accuratezza nella Caratterizzazione delle Collisioni

Un vantaggio dellutilizzo delle rappresentazioni analitiche nelle simulazioni


dinamiche, e la capacita di caratterizzare la collisione con la superficie in
modo pi
u semplice e veloce.
Con rappresentazioni Point Wise (poligonali), risulta difficile determinare le regioni di interpenetrazione, cos che molti sistemi ignorano larea di
contatto della figura e semplicemente trovano il singolo punto (normalmente
il vertice di un poligono) che per primo ha toccato la superficie. Di conseguenza, in molti casi, la forza calcolata risulta essere errata.
Usando invece rappresentazioni analitiche della geometria, si ottengono
subito disponibili sia la superficie normale che le principali curvature, in modo da ottenere efficacemente, in un tempo accettabile, buone approssimazioni
per profondita, area e contorno della regione di interpenetrazione di forme
chiuse.

3.1.9

Right Control Knobs

Uno dei pi
u importanti aspetti di qualsiasi sistema di animazione o simulazione, e la capacita di controllare il comportamento degli oggetti in modo
naturale, intuitivo e conveniente. Il sistema deve quindi avere i giusti nodi
di controllo.
In sistemi di simulazione, come il Thingworld, e spesso richiesta la capacita di risolvere problemi semplici di dinamiche inverse, come ad esempio per
simulare il moto di una sfera che salta in modo soffice.
Nei sistemi di animazione sorgono le stesse richieste, con laggiunta di
produrre effetti piacevoli e, a volte, non fisicamente realistici. Nellanima-

CAPITOLO 3. DEFORMAZIONI
zione tradizionale, alcuni degli effetti pi
u importanti

33
3

vengono chiamati an-

ticipazioni ed esagerazioni. I nodi di controllo per queste situazioni non si


possono esaminare con approcci standard della simulazione dinamica. Anche
semplici problemi di dinamica inversa, ad esempio, richiedono la risoluzione
di vasti problemi di minimizzazione numerica, poiche tutte le equazioni sono
strettamente legate. Gli effetti schiaccia-allunga, ad esempio, possono essere
ottenuti unendo con attenzione le proprieta del materiale e considerando le
forze esterne come funzione della posizione e della velocita delloggetto.
La situazione e molto diversa quando viene usata lanalisi modale, visto
che le soluzioni in forma chiusa esistono per ogni comportamento del modo
come una funzione del tempo e che, essendo indipendenti, i modi si possono
analizzare separatamente.

Figura 3.3: Smorzamento della vibrazione in funzione del tempo


3

Gli effetti pi
u importanti che si possono avere sono quelli chiamati squash-and-stretch.

CAPITOLO 3. DEFORMAZIONI

3.1.10

34

Dinamiche Inverse

Il comportamento temporale di ogni modo e esplicitato dallequazione 3.6, la


cui soluzione generica risulta essere la

u = Aer1 t + Ber2 t

i
ui = (A + Bt)e(Di /2M i )t

u = e(Di /2M i )t (Acost + Bsint)


i

seguente
2

Di 4K i M i > 0,

r1 , r2 < 0;

Di 4K i M i = 0;
=

(4K i M i Di )1/2
2M i

>0
(3.10)

Nelle situazioni di over-smorzamento, smorzamento critico e sotto smorzamento si ottiene invece


q
r1 , r2 =

Di

Di 4K i M i
2M i

(3.11)

in cui A e B dipendono dalle condizioni iniziali. Il terzo caso, relativo alla dinamica in sotto-smorzamento, rappresenta una dinamica tipica in sistemi meccanici, chiamata spesso vibrazione smorzata. Per descrivere tale
movimento si pone:

A = Rcos;
B = Rsin;

(3.12)

e si sostituiscono nellequazione 3.10 ottenendo cos`


ui = Re(K i /2M i )t cos(t ),

(3.13)

il cui grafico e rappresentato in 3.3. Quindi, nota lampiezza e la derivata di


un modo ad un determinato istante di tempo t0 , possiamo prevedere il suo
comportamento negli intervalli temporali successivi, o almeno, fino a che una
forza esterna aggiunge o sottrae energia al modo stesso. In particolare, date
le condizioni iniziali

u (0) = x;
i
v (0) = (x);

(3.14)

CAPITOLO 3. DEFORMAZIONI

35

e nota loscillazione libera sotto-smorzata, si ottiene

ui (t) =

x +

x
Di x
+
2M i

2 1/2
eK i t/2M i cos(t )

(3.15)

dove = tan 1[(x/x


+ Di x/2M i )/x].
Usando questa relazione, e possibile raggiungere una forma desiderata
delloggetto in un istante di tempo t1 , aggiustando lampiezza iniziale del
modo e la velocita al tempo t0 . Lequazione 3.15 fornisce, quindi, soluzioni
closed-form per molti problemi comuni di dinamiche inverse.

3.1.11

Controllo dellAnimazione

Le deformazioni causate dai modi di una vibrazione di basso ordine, corrispondono strettamente ai tipi di esagerazione ed enfasi usati nellanimazione
tradizionale. Quindi, lampiezza di tali modi, determina i nodi di controllo
per lanimazione considerata.
Una semplice dinamica di schiaccia-allunga nella collisione, e ben modellata da una applicazione sequenziale della simulazione di una dinamica non
rigida, come mostrato in Figura 3.4.

Figura 3.4: Fasi di compressione ed estensione in una collisione

CAPITOLO 3. DEFORMAZIONI

36

Queste applicazioni vanno comunque ben oltre la rappresentazione della


deformazione realistica durante la collisione e si presentano come risposta al
movimento, allaccelerazione etc.

3.2

DyRT

Per DyRT si intende: Dynamic Response Textures per la simulazione di


deformazioni real-time, su hardware grafico.
Questa tecnica, consente di simulare deformazioni dinamiche real-time e puo
essere introdotta allinterno di qualsiasi animazione convenzionale come un
passo opzionale del processo di rendering; questo perche la complessita del
rendering delle deformazioni fatte con DyRT, e paragonabile al processo di
illuminazione delloggetto stesso. Inoltre, ogni oggetto deformabile, grande
o piccolo che sia, puo essere sottoposto a deformazioni dinamiche, ottenendo
una risposta visuale realistica, utilizzando hardware grafico.
Il realismo di questa tecnica e dovuto allutilizzo di una analisi modale
precalcolata del modello, utilizzando metodi quali FEM, etc.

3.2.1

Exciting Modes con Movimenti Rigidi

Lo scopo della tecnica e quello di produrre deformazioni modali realistiche in


modo automatico, a partire da una certa animazione. In particolare, verra
trattato il movimento di un corpo rigido, rappresentato da una matrice di
trasformazione omogenea:

R(t) =

p
0 1

(3.16)

dove e la matrice di rotazione. Verra mostrato come calcolare la funzione


modale Qi (t) per un oggetto deformabile.

CAPITOLO 3. DEFORMAZIONI

37

La velocita di un corpo rigido e esprimibile tramite una velocita lineare


e una velocita angolare ; e possibile esprimere la velocita tramite un unico
vettore 6 1, = ( T T )T .
La velocita, rj , di un punto materiale, e data da:
rj = []rj + = ([rj ]I),

(3.17)

dove [] e la matrice skew-simmetrica del prodotto vettoriale e I e la


matrice identita di dimensione 33. Usando la discretizzazione di Eulero, con
passo temporale h, laccelerazione di un punto materiale al passo temporale
k e data da:
(k)

rj

1 (k)
1
(k1)
(rj + rj
) = ([rj ]I)( k k1 ).
h
h

Definendo

(3.18)

[r1 ]I
...

(3.19)

[rp ]I
si ottiene laccelerazione di un punto del corpo
rk

1
( k k1 ).
h

(3.20)

A questo punto e possibile calcolare la forza di DAlembert come:


(k)

F (k) = M rj =

1
M ( k k1 ).
h

Il principale termine della forza modale


Mq1 Q(k) =

Qi
mi

(3.21)

e dato da:

1 1
( k k1 ).
h

(3.22)

Chiamando H = h1 1 la matrice di trasferimento del moto rigido, e possibile riformulare lequazione 3.22 nel seguente modo:
Mq1 Q(k) = H( k k1 ).

(3.23)

CAPITOLO 3. DEFORMAZIONI

38

Finalmente, e possibile calcolare la convoluzione nel tempo dellequazione:


Z t
Qi ( )
qi (t) =
ei i (t ) sindi (t )
d,
(3.24)
mi di
0
soluzione delli-esimo modo dovuto alla forza Qi (t), tramite la seguente
relazione:
(k1)

2[i cos(i + i ) 2i cos(2i + i )] Qi


=

+
,
3i di
mi
(3.25)
q
ki
dove i = exp(i i h), i = di h e i = arcsin i ; inoltre, i =
(in
mi
p
radianti), i = 2mciii e wdi = i 1 i2 , come emerge dallanalisi modale.
(k)
qi

3.3

(k1)
2i cos i qi

(k2)
2i qi

Modal Warping

Modellare la deformazione e un aspetto importante delle animazioni computerizzate. Viene, quindi, presenta una tecnica physically-based per simulazioni dinamiche di solidi deformabili, uniti a supporti rigidi e stimolati dai
loro movimenti rigidi e/o forze esterne come la gravita. La tecnica proposta,
introduce un significativo miglioramento nella velocita di simulazione, mantenendo il realismo ad un livello sufficiente anche per grandi deformazioni.
Questo e un approccio ben formato per modellare solidi elastici nel continuo e risolvere numericamente le loro equazioni di gestione usando metodi agli
elementi finiti. Quando si adotta un modello continuo, e necessario scegliere
la misura della tensione che quantifica la deformazione. Il tensore di forza di
Green, che consiste in un termine lineare e un termine non lineare, e stata
una scelta comune per grandi deformazioni. Sfortunatamente, i passi temporali del risultante sistema non lineare possono essere computazionalmente
costosi, ostacolando il suo uso pratico nelle animazioni.
Il carico computazionale puo essere ridotto notevolmente impiegando lanalisi modale basata su un tensore di forza lineare. In questa tecnica, un

CAPITOLO 3. DEFORMAZIONI

39

2
1.5
1
0.5
0
0.5
1
2
1.5

1.5
0.5

1
0.5

0.5

0.5
1

Figura 3.5: Oggetto non deformato


insieme di modalita di deformazione (deformation modes), un piccolo numero delle principali forme che puo diffondere vibrazioni libere del modello
elastico, e identificato e precalcolato. In seguito, il problema della simulazione
delle deformazioni viene trasformato nel trovare i pesi dei modi, il cui risultato e una significativa riduzione della complessita computazionale. Questa
tecnica puo anche sintetizzare geometricamente deformazioni complesse, con
basso costo della CPU su hardware grafici programmabili. Tuttavia, lanalisi
modale puo produrre risultati abbastanza innaturali quando viene applicata
a deformazioni di ordini di grandezza relativamente grandi. In particolare, il
volume degli oggetti deformati puo crescere in modo non realistico. Questo
risultato innaturale e dovuto allomissione del termine non lineare, che non
e trascurabile per tali deformazioni. Per aggirare tale ostacolo, la tecnica
proposta genera forme visualmente plausibili di solidi elastodinamici sottoposi a grandi deformazioni rotazionali, mentre mantengono la loro velocita
e stabilita computazionale. Inoltre, questa formulazione supporta anche luso di vincoli per lorientazione che non sono stati utilizzati nei precedenti
studi. Luso di vincoli di posizione/orientamento puo creare interessanti ani-

CAPITOLO 3. DEFORMAZIONI

40

mazioni, le quali sarebbero difficili se non venissero considerati tali vincoli.


Laspetto innovativo della tecnica sta nel manipolare le parti rotazionali della
deformazione nella struttura dellanalisi modale. Per sfruttare la struttura
dellanalisi modale lineare viene omesso il termine non lineare durante il set
up iniziale, che corrisponde a calcolare le modal vibration modes a riposo.
Quando la simulazione e avviata, comunque, si tiene traccia delle rotazioni
locali che avvengono durante le deformazioni, basate sul tensore di rotazione
infinitesimale. Dopo, ad ogni passo, viene deformata la base modale, precalcolata in accordo con le rotazioni locali dei nodi mesh. Il resto del metodo e
praticamente lo stesso dellanalisi modale lineare. Le operazioni precedenti
richiedono solo una piccola quantita di calcoli aggiuntivi. Quindi, il metodo
puo simulare deformazioni dinamiche in tempo reale, impiegando hw grafico
programmabile, ma con un estesa copertura di deformazioni.

3.3.1

Descrizione del Metodo

Per simulare il movimento di oggetti deformabili, sono stati seguiti due


obiettivi principali:
Velocizzare la simulazione
Aumentare il realismo del risultato
Lanalisi modale accelera la simulazione, dal momento che descrive le
proprieta dinamiche di un oggetto componendo dinamiche non rigide con la
somma di vibration-modes indipendenti, semplificando il problema iniziale
scomponendolo in problemi pi
u piccoli e indipendenti; ma genera problemi
se applicata a deformazioni di notevole intensita, a causa della linearizzazione. La tecnica proposta, elimina i problemi legati alla linearizzazione,

CAPITOLO 3. DEFORMAZIONI

41

mantenendo lefficienza dellanalisi modale. I problemi di linearizzazione osservati in simulazioni basate sullanalisi modale, derivano in gran parte dal
fatto che questa non tiene conto delle deformazioni rotazionali. Si e cercato di
ovviare a tale problema in vari modi, ma quello analizzato consiste nel gestire
separatamente le rotazioni, per ridurre i problemi di linearizzazione come nel
caso del metodo di Stiffness Warping, che traccia la rotazione di ogni nodo e
deforma la matrice di stiffness. A differenza del metodo di Stiffness Warping,
definito nello spazio originale del problema, il metodo descritto viene definito
nello spazio modale. Questo porta a un notevole miglioramento in visualizzazione e simulazione, risolvendo i problemi di linearizzazione e utilizzando
le GPU per aggiornare i vertici. Il lavoro e focalizzato su oggetti deformabili
fissati ad un supporto rigido.

2
1.5
1
0.5
0
0.5
1
2
1.5

1.5
0.5

1
0.5

0.5

0.5
1

Figura 3.6: Cubo deformato con modo 8


Il termine non lineare nel tensore di forza, e responsabile della comparsa
o della scomparsa delle deformazioni rotazionali. Inoltre, poiche il tensore di
forza usato nel presente lavoro non include il termine non lineare, una semplice analisi modale non genera tali fenomeni e potra generare problemi di
visualizzazione per deformazioni grandi. Sebbene un tensore di forza lineare

CAPITOLO 3. DEFORMAZIONI

42

non modelli propriamente le deformazioni rotazionali, si puo ovviare al problema sapendo che ogni deformazione infinitesimale puo essere decomposta
in una rotazione seguita da una trazione; ad ogni step temporale della simulazione della deformazione, vengono per prima cosa individuate le piccole
rotazioni che interessano i vari punti materiali e in seguito vengono sommati
gli effetti di tali rotazioni per ottenere loggetto deformato (come nellanalisi modale si scompone il problema principale nella somma di sottoproblemi
indipendenti, di dimensioni minori).

2
1.5
1
0.5
0
0.5
1
2
1.5

1.5
0.5

1
0.5

0.5

0.5
1

Figura 3.7: Cubo deformato con modo 15


Osservando i risultati sperimentali, emerge sorprendentemente che, nella gestione di modelli complessi, il collo di bottiglia non e rappresentato
dalla simulazione delle deformazioni, ma dallaggiornamento dinamico delle
coordinate dei vertici. La CPU e dedicata alla simulazione delle deformazioni, mentre la GPU della scheda grafica e dedicata allaggiornamento delle
coordinate dei vertici.
In conclusione, la tecnica mostrata consente di combinare i meriti dellanalisi modale (in particolare la capacita di lavorare in real-time), assieme alla
possibilita di lavorare con grandi deformazioni rotazionali, supportando al

CAPITOLO 3. DEFORMAZIONI

43

2
1.5
1
0.5
0
0.5
1
2
1.5

1.5
0.5

1
0.5

0.5

0.5
1

Figura 3.8: Cubo deformato con modo 2


tempo stesso vincoli di posizione e orientamento, consentendo di manipolare
interattivamente un solido deformabile.

3.3.2

Parte Rotazionale in una Deformazione Piccola

Il termine non lineare del tensore di forza, e responsabile della comparsa


o della scomparsa della deformazione rotazionale. Inoltre, poiche il tensore
di forza considerato in questo lavoro non comprende il termine non lineare,
non sara presente il fenomeno delle deformazioni rotazionali e cio consentira
di poter visualizzare grandi deformazioni. Un tensore di forza lineare, non
modella propriamente una deformazione rotazionale; infatti, e generalmente
noto che una deformazione infinitesima puo essere scomposta in una rotazione seguita da una forza. Ad ogni passo temporale della simulazione della
deformazione, vengono prima identificate le (piccole) rotazioni che coinvolgono i punti materiali e in seguito vengono integrati gli effetti di tali rotazioni
per ottenere loggetto deformato.

CAPITOLO 3. DEFORMAZIONI

44

Figura 3.9: Cinematica di una deformazione infinitesimale


Cinematica delle Rotazioni Infinitesimali
Prima di introdurre la decomposizione di deformazioni infinitesimali, e necessario introdurre alcune notazioni. Si suppone che x R3 denoti la posizione
di un punto materiale di un solido elastico nello stato non deformato, che si
muove in una nuova posizione a(x) = x + u(x) dovuta alla conseguente deformazione, dove x (con dominio del solido) e u : R3 R3 rappresenta
il displacement field dovuto alle deformazioni.
Differenziando entrambi i membri della equazione precedente rispetto ad x,
si ottiene una relazione differenziale che fornisce la posizione in cui, un punto
vicino ad x, verra mappato a seguito della deformazione:
da = (I + u)dx

(3.26)

dove u e lo Jacobiano di u e siamo interessati alla decomposizione di u


stesso.
Il tensore infinitesimale di forza , che misura la variazione della lunghezza
quadratica di dx durante una deformazione infinitesimale, e definito da:
1
, (u + uT ).
2

(3.27)

CAPITOLO 3. DEFORMAZIONI
1
(u
2

45

+ uT ) e una quantita significativa ed e possibile decomporre u nel

seguente modo:
1
1
u = (u + uT ) + (u uT ) , +
2
2

(3.28)

dove il tensore skew-simmetrico e strettamente legato al displacement field


u e puo essere riscritto come:
1
1
= (u uT ) = ( u) , w
2
2

(3.29)

dove z rappresenta la matrice standard skew-simmetrica del vettore z. Inoltre, w , 12 ( u) puo essere visto come vettore di rotazione che causa la
rotazione del punto materiale vicino ad x dellangolo =kwk rispetto allasse
w=w/kwk;

e detto tensore di rotazione infinitesimale.


Sostituendo le equazioni 3.28 e 3.29 in 3.26, si ottiene:
da = dx + dx + w dx

(3.30)

la quale mostra che una deformazione e composta da una forza e una rotazione. Tale decomposizione, per piccole deformazioni, offre il vantaggio di poter
tenere traccia della rotazione di ogni punto materiale, calcolando il prodotto
vettoriale w = 12 u.
Analisi Modale Estesa
La dinamica per un modello agli elementi finiti e:
M u + C u + Ku = F

(3.31)

dove u(t) e un vettore 3n-dimensionale, che rappresenta la disposizione originale degli n nodi e F(t) e il vettore delle forze agenti su ogni nodo. Le
matrici M, C e K sono indipendenti dal tempo e rappresentano rispettivamente massa, damping e stiffness dei nodi; tali matrici sono completamente

CAPITOLO 3. DEFORMAZIONI

46

caratterizzate secondo lassunzione per cui C = M + K, dove e sono


degli scalari.
Disposizione Modale
In generale, M e K non sono diagonali, cos lequazione 3.31 e un sistema di
equazioni differenziali ordinario (ODE). Siano e una matrice diagonale le
matrici soluzione del problema generalizzato degli autovalori, K = M ,
tale che T M = I e T K = . Dal momento che le colonne di
formano una base per lo spazio 3n-dimensionale, u puo essere espresso come
combinazione lineare delle colonne nel seguente modo:
u(t) = q(t).

(3.32)

In questo caso, rappresenta la matrice delle disposizioni modali, dove la


i-esima colonna rappresenta la disposizione dell i-esimo modo e q(t) rappresenta un vettore contenente le corrispondenti ampiezze modali e le rispettive
componenti.
Analizzando gli autovalori, conviene prendere solo le m colonne dominanti di
, riducendo significativamente la complessita computazionale.
Sostituendo lequazione 3.32 nella 3.31 e moltiplicando per T , si ottiene
lequazione
Mq q + Cq q + Kq q = T F

(3.33)

dove Mq = I, Cq = (I + ) e Kq = , sono matrici diagonali.


Rotazione Modale
Adesso verra presentata una procedura per esprimere la componente rotazionale w(t) in funzione di q(t). w(t) e un vettore 3n-dimensionale, ottenuto

CAPITOLO 3. DEFORMAZIONI

47

concatenando tutti i vettori di rotazione 3-dimensionali. Sia ue,j la disposizione dei vertici di un tetraedro e e sia ue = [uTe,1 | uTe,2 | uTe,3 | uTe,4 ]T .
Allora, la disposizione del punto materiale x e e data da: u(x) = He (x)ue ,
dove He (x) e la shape function lineare dellelemento; sostituendo questo
nellequazione 3.29, si ottiene il vettore di rotazione per x:
1
we (x) = ()He (x)ue , We ue .
2

(3.34)

Essendo He (x) lineare su x, We e costante e we (x) e uniforme su e . Come


vettore di rotazione di un nodo, viene utilizzata la media dei vettori di rotazione di tutti i tetraedri che hanno in comune il nodo dato.
Basandosi sul discorso precedente, e possibile assemblare We di ogni elemento, per formare la matrice globale W, tale che Wu(t) fornisce il vettore
composto w(t). In fine, espandendo u(t) tramite lequazione 3.32, si ottiene:
w(t) = W q(t) , q(t).

(3.35)

Sia W che sono costanti nel tempo e caratterizzate dalla mesh deformabile.
Lequazione 3.35, mostra come sia possibile esprimere la componente rotazionale della deformazione in termini di q(t). La matrice viene chiamata
matrice modale di rotazione e entrambe le matrici modali sono significative
solamente per deformazioni moderatamente piccole.

3.3.3

Integrazione delle Parti Rotazionali

Lequazione 3.35, fornisce un modo per tenere traccia delle rotazioni che
interessano ogni nodo nel tempo. Tuttavia, tali rotazioni non si riflettono
ancora sul displacement field u(t). Per gestire le grandi deformazioni, la
matrice di stiffness K deve essere sostituita da K(u).
Quindi, e necessario utilizzare una equazione nella forma:
M u + C u + K(u)u = F.

(3.36)

CAPITOLO 3. DEFORMAZIONI

48

Sia u(t) = [ui (t)] = [uT1 ...uTn ]T . Allora, li-esimo vettore 3-dimensionale ui (t),
rappresenta la disposizione dell i-esimo nodo a partire dalla sua posizione
originale, misurata in riferimento a coordinate globali. Al fine di misurare le
rotazioni locali in rispetto delle coordinate globali, viene fissato un sistema
di riferimento locale {i} per ogni nodo i, tale che lo stato iniziale sia allineato
con il sistema di riferimento globale.

Figura 3.10: Coordinale locali per ogni nodo


Verra utilizzata la notazione {i}(t), per fare riferimento alle coordinate locali
al tempo t.
Sia Ri (t) la matrice di rotazione rappresentante lorientamento di {i}(t) e
sia u Li (t)dt la disposizione differenziale delli-esimo nodo al tempo t dt, misurato su {i}(tdt). Allora, ui (t), misurato rispetto al sistema di riferimento
globale, e dato da

ui (t) =
0

Ri ( )u Li ( )

(3.37)

da calcolare per ogni nodo.


Inoltre, viene creata la matrice diagonale a blocchi R = [ij Ri ], dove 1
i, j n e ij e il delta di Kronecker. Allora, le n equazioni nella forma

CAPITOLO 3. DEFORMAZIONI

49

dellequazione 3.37, possono essere assemblate in una singola equazione,


Z t
u(t) =
R( )u L ( )
(3.38)
0

Lequazione 3.38, mostra come sia possibile sommare gli effetti delle rotazioni
che avvengono ad ogni nodo.
Analisi Modale nel Sistema di Riferimento Locale
Lequazione 3.38, mostra la necessita di utilizzare una forma che sia risolvibile
per uL . Moltiplicando entrambi i membri dellequazione 3.36 per RT , si
ottiene
RT [M u + C u + K(u)u] = RT F.

(3.39)

Per procedere, occorre fare una prima assunzione. Si suppone che sia valida
lapprossimazione
RT M M RT .

(3.40)

Lerrore associato alla precedente approssimazione, e relativo alle differenze di orientazione dei sistemi di riferimento locali vicini. Tale errore decresce
al decrescere delle differenze di orientazione. I risultati sperimentali mostrano
che lerrore di approssimazione non impatta significativamente nel realismo
visuale della simulazione.
Differenziando entrambi i membri dellequazione 3.38 rispetto al tempo,
otteniamo
u = R
uL + R u L .

(3.41)

RT M u M RT u = M uL + M RT R u L

(3.42)

Inoltre,

CAPITOLO 3. DEFORMAZIONI
dove M RT R u L e la forza di Coriolis

50
4

risultante dai movimenti rotazionali

dei sistemi di riferimento locali. Se tali movimenti rotazionali si presentano


con una frequenza moderata, la forza di Coriolis e trascurabile rispetto alla
forza di gravita.
necessario fare una ulteriore assunzione: si suppone che le forze elastiche
E
non lineari siano cos approssimabili:
K(u)u RKuL RT K(u)u KuL

(3.43)

che misurano le forze elastiche lineari nei sistemi di riferimento locali, ma le


risolvono rispetto al sistema di riferimento globale.
Ora, e possibile approssimare lequazione 3.39 per mezzo di una equazione
lineare per lanalisi modale nel sistema di riferimento locale. Sostituendo le
equazioni 3.42 e 3.43 nella 3.39, si ottiene:
M uL + C u L + KuL = RT F

(3.44)

dove C = M + K. Questa equazione lineare elastodinamica per uL , e la


stessa dellequazione 3.31, eccetto che le forze esterne agenti su ogni nodo
devono essere pre-rotate, in accordo con le coordinate del sistema di riferimento locale. Inoltre, e semplice ridurre lequazione 3.44 in un sistema di
ODE. La matrice di disposizione modale , fornisce la relazione
uL (t) = q(t)

(3.45)

dove viene utilizzato q(t) al posto di q L (t), per una migliore leggibilita. Prendendo spunto da questa relazione, e possibile sostituire uL nellequazione 3.44
4

La forza di Coriolis, dal nome del fisico francese Gaspard Coriolis (1792-1843), e

una forza fittizia alla quale sembra soggetto un corpo che si muove entro un sistema in
rotazione. Questa forza apparente e legata allaccelerazione delloggetto provocata dalla
rotazione. La formula matematica che esprime tale forza e: F~c = 2m(~v
~ ).

CAPITOLO 3. DEFORMAZIONI

51

con q(t) e, dopo aver moltiplicato entrambi i membri dellequazione per T ,


si ottiene:
Mq q + Cq q + Kq q = T (RT F ).

(3.46)

Il sistema di equazioni differenziali precedente, puo essere risolto numericamente usando un sistema di integrazione semi-implicito. Partendo dalla
equazione 3.46, e possibile ottenere le seguenti espressioni per q k = q(tk ) e
qk = q(t
k ):
q k = q k1 + qk1 + (Rk1 )T F k1 ,

(3.47)

qk = h1 [( I)q k1 + qk1 + (Rk1 )T F k1 ],

(3.48)

dove , e sono matrici diagonali, le cui i-esime componenti valgono


rispettivamente

hci + h2 ki
h2 ki
h2
, i = h 1
i = 1
, i =
di
di
di

(3.49)

dove h e la dimensione del passo temporale, di = mi + hci + h2 ki , con mi , ci


e ki che rappresentano le entrate diagonali di Mq ,Cq e Kq rispettivamente.
Formulazione del Modal Warping
Si cerchera di calcolare lequazione 3.38 per disposizioni finite uk al passo
temporale k. Quando viene utilizzata una semplice integrazione numerica,
laccumulazione degli errori numerici puo dare vita a fenomeni di isteresi, cos
che il solido deformabile non ritorna nello stato iniziale dopo che vengono a
mancare le forze esterne artefici della deformazione.
Per evitare un tale effetto di isteresi, viene valutata analiticamente lequazione 3.38, utilizzando un approccio quasi-statico, che porta q(t) da 0 a
q k , ad ogni passo temporale k ; a tal fine, viene utilizzata lequazione:
q(t) =

t k
q , 0 t tk .
k
t

(3.50)

CAPITOLO 3. DEFORMAZIONI

52

Quindi, la storia di w(t), che determina R(t), e rappresentabile come funzione


lineare:
w(t) =

t
q k , 0 t tk .
k
t

(3.51)

Ora, R(t) puo essere ottenuta semplicemente convertendo w(t) in una matrice
di rotazione diagonale a blocchi di dimensione 3n 3n. Infine, calcolando
u L (t) = q(t)
dallequazione 3.45 e q(t)
=

1 k
q
tk

dallequazione 3.50, e possibile

risolvere analiticamente lequazione 3.38 come segue:


Z

tk

u =

k q k ,
R(t)q(t)dt

=R

(3.52)

dove
1
R , k
t

tk

R(t)dt.

(3.53)

k ,
Lequazione precedente implica un nuovo schema di deformazione;
k (5 ), puo essere visto come una versione warped della base modale oriR
k , danno le forme dei modi al passo temporale k,
ginale . Le colonne di
in cui le rotazioni avvenute in ogni nodo sono state sommate. Questo nuovo
metodo funziona come lanalisi modale lineare, a parte il fatto che usa una
base modale warped al posto di una base modale lineare fissata.

3.3.4

Vincoli di Manipolazione

Fino ad ora, e stata discussa la dinamica di un corpo elastico non vincolato;


verra esteso lo schema della deformazione per considerare anche vincoli di
manipolazione, che consentono, per esempio, di tirare e torcere certi nodi,
fino a raggiungere certe posizioni o orientazioni.
5

k .
Nel paragrafo 3.3.5 verr`
a spiegato come calcolare la matrice R

CAPITOLO 3. DEFORMAZIONI

53

Vincoli di Posizione
Sia il numero di punti vincolati e sia ukc un vettore 3-dimensionale contenente le disposizioni desiderate dei nodi vincolati, al passo temporale k.
Allora, lequazione dei vincoli puo essere scritta come:
kc qck = R
ck c qck ,
ukc =

(3.54)

dove qck e il vettore incognito dellampiezza modale, c e la matrice 3m ot k e una


tenuta da considerando solo le righe riguardanti i nodi vincolati e R
c
k prendendo soltanto la
matrice diagonale a blocchi 3 3, ottenuta da R
parte corrispondente ai nodi vincolati. Sia F k1 un vettore 3n-dimensionale,
che rappresenta la forza di vincolo sconosciuta misurata nel sistema di riferimento globale. Allora, qck potrebbe soddisfare non solo lequazione 3.54, ma
anche la 3.47, quando tale forza aggiuntiva e applicata. Cioe:
qck = q k1 + qk1 + (Rk1 )T (F k1 + F k1 ) , quk + (Rk1 )T F k1 ,
(3.55)
dove
quk , q k1 + qk1 + (Rk1 )T F k1

(3.56)

e il vettore di ampiezza modale per il caso non vincolato. Le forze non devono
essere esercitate solo sui nodi vincolati e verra fatto riferimento ai nodi su
cui sono esercitate le forze come nodi esercitati.
Sia il numero di nodi esercitati. In F k1 , la porzione relativa ai nodi
non esercitati, dovrebbe essere nulla. Sia Fxk1 il vettore 3 dimensionale
relativo alle forze agenti sui nodi esercitati, ottenibile eliminando da F k1
possibile
il vettore 3-dimensionale corrispondente ai nodi non esercitati. E
riscrivere lequazione 3.55 in termini di Fxk1 ,
qck = quk + (Rxk1 x )T Fxk1

(3.57)

CAPITOLO 3. DEFORMAZIONI

54

dove x e la matrice 3 m ottenuta prendendo solo le righe dei nodi esercitati e Rxk1 e la matrice diagonale a blocchi 3 3 ottenuta da Rk1 ,
prendendo solo la parte corrispondente ai nodi esercitati. Finalmente, sostituendo lequazione 3.57 nella 3.54 e manipolando lespressione risultante, si
ottiene lequazione per le forze di vincolo:
Fxk1 = Rxk1 Ap bp ,

(3.58)

k c q k e (.) denota la pseudo-inversa di una


k c T , bp = uk R
in cui Ap = R
u
x
c
c
c
matrice. Tale vincolo di forza puo essere applicato ai nodi esercitati tramite
lequazione 3.57, per ottenere il vettore di ampiezza modale desiderato.
Vincoli di Orientamento
I vincoli di orientamento, possono essere implementati in modo simile ai
vincoli di posizione. Sia il numero di nodi vincolati e sia wck il vettore
3 dimensionale che esprime le rotazioni desiderate dei nodi vincolati al
passo temporale k. Allora, lequazione dei vincoli puo essere scritta come:
wck = c qck ,

(3.59)

dove qck e il vettore di ampiezza modale incognito e c e la matrice 3 m,


ottenuta dalla matrice di rotazione modale prendendo solo le righe relative
ai nodi vincolati. Inoltre, come nel caso dei vincoli di posizione, qck deve
soddisfare contemporaneamente le equazioni 3.57 e 3.59. Manipolando queste
due equazioni, si ottiene lequazione per la forza di vincolo:
Fxk1 = Rxk1 A0 b0 ,

(3.60)

dove A0 = c Tx e b0 = wck c quk . Finalmente, e possibile applicare la


forza di vincolo ai nodi esercitati, attraverso lequazione 3.57, ottenendo il
vettore di ampiezza modale desiderato.

CAPITOLO 3. DEFORMAZIONI

55

Vincoli Misti
Qualora un insieme di nodi abbia vincoli di posizione e un altro insieme di
nodi (non necessariamente disgiunto) abbia vincoli di orientamento, la forza
di vincolo deve soddisfare contemporaneamente entrambi i tipi di vincoli.
Un semplice approccio, e quello di utilizzare una formulazione che combini
le equazioni 3.58 e 3.60:

Fxk1 = Rxk1


Ap

A0

bp
b0

(3.61)

Posto fp = Ap bp , la forza di vincolo pu`o essere scritta come:


Fxk1 = Rxk1 {fp + [A0 (I Ap Ap )] [b0 A0 fp ]},

(3.62)

la cui soluzione consente di soddisfare i vincoli di posizione e i vincoli di


orientamento, dentro il null space dei vincoli di orientamento.
Vincoli di Posizione Statici
I vincoli di posizione statici, che fissano un insieme di nodi alla posizione
iniziale in conformita al sistema di riferimento, non sono implementati in
termini di vincoli di manipolazione. Vincoli di questo tipo sono ottenuti
semplicemente omettendo i gradi di liberta corrispondenti nelle equazioni di
gestione e settando gli spostamenti a zero.

3.3.5

Dettagli Implementativi

In questa sezione verranno spiegate alcune notazioni dellarticolo e saranno


affrontati in modo pi
u approfondito alcuni dettagli implementativi del Modal
Warping.

CAPITOLO 3. DEFORMAZIONI

56

Operatore Nabla e Rotore


In matematica ed in particolare nel calcolo infinitesimale, il Nabla, spesso
indicato con il simbolo , e un operatore definito come:
R
n
[ ]d
= lim
.
0

(3.63)

Questo operatore e utilizzato per scrivere in maniera compatta equazioni differenziali. Infatti, dalla definizione discende la seguente relazione, utilizzata
nella formula 3.29:
A = rotA.

(3.64)

Il Rotore (rotA), invece, e un operatore vettoriale e mostra la tendenza


di un campo vettoriale a ruotare intorno ad un punto. Essendo in coordinate
cartesiane, F e esprimibile, per F composto da [Fx , Fy , FZ ], nel seguente
modo:

Fz
y

Fy
z

Fx
z
Fy
x

Fz
x

Fx
y

F.

(3.65)

Occorre notare che il risultato dellapplicazione delloperatore rotore su un


campo vettoriale non e realmente un vettore, ma uno pseudo vettore. Questo
significa che le coordinate vanno lette nel senso opposto rispetto a quello del
campo cartesiano e, quindi, rispetto alla convenzione della mano destra.
k
Costruzione della Matrice R
nellequazione 3.52, occorre convertire per prima cosa il vettoPer calcolare R
re di rotazione wi (t) nella matrice di rotazione <(wi (t)). Per ottenere questa
conversione, viene utilizzata la formula di Rodrigues, che esprime la matrice
di rotazione in termini di angolo e asse di rotazione. Sia wik li-esimo vettore

CAPITOLO 3. DEFORMAZIONI

57

tridimensionale di q k : allora, wi (t) = wik , dove =

t
.
tk

Tramite la formula

di Rodrigues si ottiene:
<( wik ) = I + (w
ik ) sin k wik k +(wik )2 (1 cos k wik k),
dove w
ik =

wik
kwik k

(3.66)

e loperatore indica la matrice skew-simmetrica.

Adesso, integrando entrambi i membri dellequazione precedente per =


R
k , 1 <( wk )d e dato da:
[0, 1], si ha che lintegrale R
i
i
0

k
R
i

= I+

1
(w
ik )

cos k wik k
sin k wik k
2
k
+ (w
i ) 1
.
k wik k
k wik k

(3.67)

Finalmente, la matrice di rotazione diagonale a blocchi per wk = [wik ], puo


h
i
k = ij R
k , dove ij rappresenta il delta di Kronecker,
essere realizzata con R
i
funzione cos definita:

= 1,
ij
= 0,
ij

i=j
i 6= j

(3.68)

Capitolo 4
Hardware e Software
Negli ultimi anni, si e assistito alla comparsa di un numero sempre maggiore
di sistemi destinati alla generazione di Ambienti Virtuali. In tali ambienti,
lutente percepisce intorno a se, o ad una sua rappresentazione, un ambiente
simulato. Limmersione in tali ambienti puo essere raggiunta a diversi livelli.
Loperatore deve, innanzitutto, poter percepire la propria presenza allinterno dellambiente in cui risulta immerso. Il secondo grado di immersione e
determinato dalla possibilita, da parte dellutente, di poter muovere i sensori attraverso i quali percepisce le informazioni che caratterizzano lambiente
virtuale, in altre parole e consentita la navigazione allinterno dellambiente. Questi due livelli di immersione sono ottenuti mediante la simulazione di
grafica e audio, in modo da conferire stimoli di natura visiva e uditiva. Infine, il terzo grado di immersione e caratterizzato dalla possibilita di controllo
esercitabile sullambiente dalloperatore, che altrimenti avrebbe un rapporto
esclusivamente passivo nei confronti dellambiente virtuale. Per realizzare
questo livello di immersione, e necessario riprodurre stimoli tattili e le forze
che il mondo reale eserciterebbe sullutente. Questo tipo di simulazione richiede il calcolo in tempo reale di tutte le situazioni di contatto, per stabilire
58

CAPITOLO 4. HARDWARE E SOFTWARE

59

necessalentita delle forze che devono essere percepite dalloperatore. E


rio, quindi, caratterizzare gli oggetti presenti nellambiente virtuale anche
dal punto di vista fisico, attribuendo loro grandezze quali peso, inerzia, rigidezza, viscosita, rugosita, ecc. Una simulazione di questo tipo, in grado di
riprodurre sensazioni tattili e di forza, e ottenuta mediante dispositivi definiti
Interfacce Aptiche e Schede Video Programmabili.

4.1
4.1.1

Interfacce Aptiche
Caratteristiche delle Interfacce Aptiche

Le Interfacce Aptiche sono dispositivi robotici studiati per interagire direttamente con loperatore umano, aventi la funzionalita di indurre in questultimo
la percezione di forze relative, ad esempio, al contatto con un oggetto. Questi
dispositivi sono stati concepiti sulla base dellipotesi che linterazione fisica
con lambiente circostante consista nella percezione di forze, il cui valore e
funzione della posizione degli arti delloperatore usati per esplorare lambiente. Le interfacce aptiche, oggi sviluppate, sono dispositivi elettromeccanici il cui end-effector e, da un lato, permanentemente collegato allarto
delloperatore e dallaltro e collegato ad un sistema di attuatori.
I movimenti dellend-effector vengono imposti dalloperatore e rilevati da
un sistema di controllo, che aziona gli attuatori in modo da fornire allutente
il feedback di forza in funzione della posizione dellend-effctor. Se, ad esempio, si vuole simulare la presenza di una palla di fronte alloperatore, i passi
che devono essere eseguiti sono i seguenti: Linterfaccia aptica, tramite i propri sensori di posizione, rivela la posizione del dito dellutente. Un modulo
software, detto di ambiente virtuale, determina se il dito e in contatto o meno
con la palla virtuale. Se lo e, il modulo software calcola la corrispondente

CAPITOLO 4. HARDWARE E SOFTWARE

60

Figura 4.1: Diagramma a blocchi del funzionamento di uninterfaccia aptica


forza di contatto. A questo punto i motori del robot vengono azionati in maniera da indurre la percezione di tale forza. La traiettoria dellend-effector e
quindi determinata dal bilancio delle forze prodotte, istante per istante, dalle
dita delloperatore e da quelle prodotte dagli attuatori dei giunti del robot.
In questo modo e possibile sia creare il contatto con superfici complesse, sia
creare dei vincoli al movimento delloperatore, per guidarlo lungo traiettorie
predefinite.

Figura 4.2: Phantom

CAPITOLO 4. HARDWARE E SOFTWARE

61

Affinche un dispositivo robotico possa essere ritenuto idoneo alla simulazione dellinterazione fisica con lambiente, deve possedere tre caratteristiche
fondamentali:
1 Elevata trasparenza. Durante la fase in cui non si determinano interazioni con lambiente circostante, lutente non deve avvertire la presenza del dispositivo. In altri termini linterfaccia aptica deve essere
realizzata in modo da ridurre al minimo le forze di reazione, necessarie
al suo trascinamento, che questa esercita sulloperatore durante i suoi
spostamenti nello spazio libero. Dal punto di vista tecnico, occorre
ridurre al minimo le forze, indotte sulloperatore, dovute al peso proprio del dispositivo, agli attriti interni e alle masse in movimento (forze
inerziali). Questa condizione puo essere ottenuta sia agendo sulla componente meccanica del dispositivo (cinematica, sistemi di trasmissione,
attuatori, parti strutturali, etc.), sia sulla componente di controllo degli attuatori, adottando opportune tecniche di compensazione (attrito,
inerzia, gravita).
2 Elevata rigidezza. Durante la fase di interazione, il dispositivo deve
essere in grado di indurre realisticamente la percezione del contatto con
gli oggetti. Questi ultimi, al limite, possono essere infinitamente rigidi.
Il dispositivo quindi, dovra essere in grado di mostrare alloperatore
rigidezze sufficientemente elevate. Anche in questo caso, si puo agire
tanto sulla componente meccanica (trasmissioni, parti strutturali) che
sulla componente di controllo (elevato guadagno danello).
3 Elevata banda passante. Durante la transizione tra la fase di non contatto e quella di contatto, il dispositivo deve essere in grado di generare
delle forze con elevata dinamica temporale (alto contenuto spettrale).

CAPITOLO 4. HARDWARE E SOFTWARE

62

Questo e particolarmente vero nel caso sia necessario simulare degli


urti con oggetti rigidi. Dal punto di vista tecnico questa caratteristica puo essere ottenuta elevando la frequenza propria della componete
meccanica.

4.1.2

Applicazioni delle Interfacce Aptiche

Per come sono state concepite le Interfacce Aptiche, uno dei principali campi dimpiego e laddestramento in Ambiente Virtuale, per tutti quei compiti
che potrebbero essere rischiosi sia per lutente sia per tutte le cose o persone che si troverebbero nellarea di lavoro reale, evitando cos di sottoporli
al rischio dellinesperienza delloperatore. I settori applicativi sono svariati
basti pensare a quello medico, con prove dintervento su pazienti virtuali,
oppure a situazioni ad alto rischio o particolarmente delicate come manipolare materiale radioattivo nelle centrali nucleari o installazioni sottomarine o
costruzioni spaziali. Un altro campo dimpiego e legato alla riabilitazione in
campo medico. Essa consiste nella movimentazione assistita di arti e mani
del paziente, attraverso laiuto di un operatore, in modo da stimolare la rigenerazione del sistema nervoso. In questo caso, le interfacce aptiche possono
essere programmate per far compiere allarto da riabilitare una traiettoria il
pi
u possibile vicina a quella ottimale, stabilita precedentemente dal medico.
Utilizzando queste strutture robotiche e anche possibile monitorare i miglioramenti. Infine esiste unaltra applicazione in cui le Interfacce Aptiche sono
particolarmente indicate: la teleoperazione, il cui principio di funzionamento
e illustrato in Figura 4.3
Il sistema e, in questo caso, composto di due moduli: un sistema master
aptico ed un sistema slave. Loperatore muove degli strumenti che sono rigidamente vincolati con lend-effector del robot master. Attraverso i sensori di

CAPITOLO 4. HARDWARE E SOFTWARE

63

Figura 4.3: A sinistra DaVinciTM surgical system, a destra ZeusTM


posizione di questultimo, e possibile calcolare la traiettoria compiuta dallo
strumento impugnato dalloperatore. Il robot slave riceve i dati necessari a
ricostruire tale traiettoria ed e in grado di posizionarsi nello spazio e riprodurre i movimenti, imposti dalloperatore al robot master. Lend-effector di
questultimo robot consiste nel vero e proprio utensile che andra a compiere
realmente loperazione richiesta. Lo slave e provvisto di uno o pi
u sensori
di forza, che misurano lentita delle forze che nascono tra lutensile e i corpi
con cui entra in contatto. Esiste un flusso di informazioni di forza di ritorno, che permette al robot master di riprodurre le stesse forze, fornendo
cos alloperatore la sensazione di contatto. I vantaggi della teleoperazione
sono, oltre a quello di poter operare in tutti gli ambienti inaccessibili e ostili
alluomo, quello di poter guidare loperatore durante esecuzione del task operativo, spingendolo ad eseguire la migliore traiettoria possibile e la possibilita
di evitare un eventuale tremore della mano. Infine, attraverso la teleoperazione, sono possibili operazioni con forte riduzione di scala delle forze e/o
dello spazio. In questo modo un movimento di una decina di centimetri della
mano delloperatore si puo tradurre in spostamenti dellordine di millimetri

CAPITOLO 4. HARDWARE E SOFTWARE

64

per lutensile a bordo dello slave. Oppure una forza di alcuni Newton prodotta dalloperatore puo portare lo slave alla manipolazione di oggetti anche
molto pesanti.

Figura 4.4: Rappresentazione di un sistema master-slave

4.1.3

Attuazione delle Interfacce Aptiche

Nel paragrafo 4.1.1 sono state illustrate le caratteristiche fondamentali di una


interfaccia aptica. Le componenti meccaniche che influiranno maggiormente
sulle suddette caratteristiche sono gli attuatori del dispositivo. Le caratteristiche auspicabili per una interfaccia aptica, si traducono in corrispondenti
caratteristiche auspicabili per gli attuatori:
Elevato rapporto Forza/Ingombro
Elevato rapporto Forza/Peso
Elevato rapporto Forza/Inerzia
Elevato fattore dinamico
Elevata banda passante
Elevata controllabilita della forza

CAPITOLO 4. HARDWARE E SOFTWARE

65

Costi contenuti
Un attuatore di forza ideale dovrebbe generare in uscita la forza desiderata, indipendentemente dai movimenti del carico. Viceversa, gli attuatori reali
presentano delle limitazioni che li discostano dal comportamento ideale, dovute principalmente alle inerzie, agli attriti, e a una banda passante limitata.
La presenza delle inerzie crea in uscita una forza aggiuntiva, che e legata alle
accellerazioni del carico. Tale forza non deve essere avvertita dalloperatore
ed e quindi necessario compensarla. La presenza di inerzie rilevanti rispetto
al carico applicato, comporta quindi una maggiore complessita del controllo
dellattuatore. Gli attriti interni, che si determinano tra le componenti dellattuatore in moto relativo, sono responsabili della minima forza esercitabile
dallattuatore.

Figura 4.5: Power Loader, Sci-Fi movie Aliens 1986


Il fattore dinamico quantifica questa caratteristica, essendo definito come: rapporto tra la forza massima e minima generabile dallattuatore. Nella
progettazione degli attuatori si tende, generalmente, a massimizzare questo

CAPITOLO 4. HARDWARE E SOFTWARE

66

fattore dinamico, cercando di ridurre, per quanto possibile, gli attriti interni. Nei servomotori in corrente continua, tale fattore e compreso tra 30 e
100. La banda passante di un attuatore e la frequenza massima fino alla
quale e possibile effettuare un accurato controllo di forza. Tale valore dipende dalla natura del principio fisico adottato per la trasformazione di energia
(da energia elettrica a energia meccanica) e dallinerzia delle parti mobili dellattuatore. Nella maggior parte dei casi gli attuatori utilizzati nelle
interfacce aptiche sono dei servomotori elettromagnetici. Questi possono essere impiegati in due modi differenti: interfacciati direttamente con il carico
o utilizzati insieme con dei riduttori. Entrambi i casi presentano degli inconvenienti. Quando sono impiegati direttamente possono essere controllati
accuratamente, in virt
u della loro relazione lineare, che li caratterizza, tra la
forza in uscita e la corrente in entrata e possono essere considerati una buona approssimazione di un attuatore di forza ideale. Questo caso di utilizzo
e pero poco efficiente, perche gli attuatori si trovano ad operare a velocita
relativamente bassa ed alta forza di uscita, condizione tipicamente richiesta
nei dispositivi aptici. Infatti, in questo caso il motore viene dimensionato in
base alla massima forza richiesta, risultando sovradimensionato rispetto alla
potenza effettivamente richiesta in uscita e, quindi, pesante e ingombrante. In alternativa, qualora si impieghino dei riduttori, posso essere utilizzati
motori molto pi
u piccoli e leggeri. Lintroduzione dei riduttori nel sistema
dattuazione provoca, pero, un incremento sensibile dellinerzia e degli attriti
complessivi. Per mitigare questi effetti e possibile usare un sensore di forza a
valle del riduttore e tramite un opportuna azione di controllo sullattuatore e
possibile ridurre lerrore tra la forza desiderata e quella effettivamente generata. Questo tipo di controllo risulta, pero, molto pi
u complesso e delicato.
Qualora sia possibile, e conveniente posizionare gli attuatori sulla parte fis-

CAPITOLO 4. HARDWARE E SOFTWARE

67

sa del dispositivo; questa soluzione risulta infatti praticabile, in quanto non


peggiorativa delle caratteristiche inerziali dellinterfaccia aptica.

4.1.4

Cinestesia

Luomo e dotato di sistemi sensoriali interni che fanno percepire i cambiamenti che avvengono dentro al nostro organismo: segnalano cose come fame,
sete, stanchezza e il bisogno di respirare. Siamo inoltre dotati del senso la` sensibile
birintico, o senso dellequilibrio, localizzato nellorecchio interno. E
alla forza di gravit`a, alle accelerazioni e alle rotazioni. Infine, abbiamo la
cinestesia, o senso di posizione, che ci rende consapevoli della tensione muscolare, del movimento e della posizione degli arti anche a occhi chiusi.
La Cinestesia e quindi la percezione che uno ha della posizione e del movimento del corpo e degli arti, ovvero un insieme di sensazioni (muscolari,
legamentarie) che indicano gli spostamenti nello spazio dei diversi elementi
corporei; esso ci informa, in qualsiasi momento, del luogo che occupiamo nello spazio e delle relative posizioni delle nostre braccia, gambe, testa ed altre
grazie a questa capacit`a che siamo in grado di portare le
parti del corpo. E
mani al naso con gli occhi chiusi.
Nellinterazione fra uomo ed ambiente virtuale, e necessario riprodurre,
tramite interfacce aptiche, il senso della cinestesia, affinche lutente percepisca gli stimoli provenienti dallambiente simulato come se provenienti dal
mondo reale. La cinestesia, come scienza, e fondamentale per la progettazione di interfacce aptiche poiche, ad esempio, permette di stabilire il range
massimo e minimo di frequenze alle quali i sensi umani sono in grado di reagire correttamente; ad esempio 1-2Hz e la massima larghezza di banda alla
quale il tatto puo reagire a segnali di forza/posizione inaspettati, 320Hz e la
banda oltre la quale le dita umane non possono discriminare due segnali di

CAPITOLO 4. HARDWARE E SOFTWARE

68

forza consecutivi, etc..

Figura 4.6: Modellazione di oggetti rigidi


Dal punto di vista matematico, quindi, abbiamo una forza F restituita dallambiente virtuale da trasformare in coppie motore , per consentire
allinterfaccia aptica di rendere tale forza percepibile allutente secondo la
seguente relazione:
= JT F

(4.1)

in cui J e la matrice Jacobiana che mette in relazione le velocita dei giunti


con quella dellend-effector, dato un certo sistema di riferimento.
Una delle caratteristiche fondamentali nella simulazione del tatto in ambienti virtuali e la presenza di oggetti deformabili o meno. Qualora si tratti
di oggetti rigidi, linterazione utente/oggetto e rappresentata in Figura 4.6,
in cui la percezione delloggetto si ha quando
HapticP os = ObjP os

(4.2)

Nel caso di oggetti deformabili si ha, invece, la modellizzazione illustrata


in Figura 4.8, in cui la forza virtuale esercitata dallinterfaccia aptica riceve
un feedback dalloggetto deformabile, cos da generare un ulteriore loop con
il virtual environment che fornisce lobject position. Nel Local Model si ha

CAPITOLO 4. HARDWARE E SOFTWARE

69

come ingresso la differenza tra Haptic Position ed Object Position, parametri


indispensabili per la Collision Detection.

Figura 4.7: Rappresentazione della collision detection


Dopo una triangolarizzazione delloggetto, per ottenere una dinamica dellintero sistema, si considera applicato ad ogni vertice del triangolo un sistema
massa-molla. Considerando i parametri di Figura 4.7, si ottiene la relazione
x =

K0
xh
Kh + K0

(4.3)

Per ottenere un forte senso di realismo, e necessario che x 0 e questo si


ottiene solo ponendo
Kh >> K0

(4.4)

in cui K0 e limpedenza caratteristica delloggetto deformabile e Kh e limpedenza restituita dallinterfaccia aptica. Tuttavia, per garantire la stabilita del
loop che coinvolge il virtual environment (Figura 4.8, Figura 4.9), e necessario
che

Kh

K0 < 1

(4.5)

K h < K0

(4.6)

ovvero

CAPITOLO 4. HARDWARE E SOFTWARE

70

Figura 4.8: Modellazione di oggetti deformabili

Figura 4.9: Dettaglio del loop nel caso di oggetti deformabili


Osservando i risultati in 4.4 e 4.6, otteniamo due condizioni contrastanti
da mediare attraverso una soluzione di compromesso.

4.1.5

Controllo di Forza nelle Interfacce Aptiche

Lo sviluppo di interfacce aptiche per applicazioni di realta virtuale e in competizione con lo sviluppo di manipolatori industriali ormai presenti da oltre
venti anni. Questo rapido sviluppo deve la sua esistenza allavvento di workstation sempre pi
u potenti, in grado di fare il rendering di ambienti virtuali
in real time.
Per migliorare la qualit`a del feedback delle interfacce aptiche in applicazioni di realta virtuale, viene analizzato il feedback del controllore di forza.
La progettazione avanzata di controllori puo incrementare la trasparenza del

CAPITOLO 4. HARDWARE E SOFTWARE

71

Figura 4.10: Controllore dellinterfaccia aptica


dispositivo aptico ed aumentare il realismo della simulazione.
Ogni volta che il link di una interfaccia aptica e in contatto con un oggetto dellambiente virtuale, si ha una forza f diretta verso loggetto ed una
forza di reazione -f diretta dalloggetto al link; tale forza si trasmette sulle
coopie dei giunti secondo la relazione 4.1. Nota la dinamica, e possibile fare
due tipi di controllo:
Motion Control, in cui si controlla la traiettoria del robot indipendentemente dalla forza applicata. Tale forza risulta essere un disturbo e nel
caso di iterazioni tra ambiente virtuale e quello reale (ad esempio nel
caso della teleoperazione), non avendo un controllo della forza, possono
nascere forze di intensita elevata.

CAPITOLO 4. HARDWARE E SOFTWARE

72

Force Control, in cui la forza non e un disturbo, ma un elemento


essenziale da gestire.
Le caratteristiche degli oggetti virtuali deformabili coinvolte nelle simulazioni sono:
Stiffness
Compliance
Impedence
Admittance
in cui Stiffness e Compliance legano posizioni e forze, mentre Impedence e
Admittence mettono in relazione velocita e forze.

Figura 4.11: Sistema con molla


Considerando il caso rappresentato in Figura 4.11, la stiffness e la costante
elastica K della molla, mentre, osservando la dinamica in figura
lImpedence si puo esprimere come
f = zv

(4.7)

dove, considerando la trasformata di Laplace della dinamica


z=

ms2 + Bs + K
s

(4.8)

CAPITOLO 4. HARDWARE E SOFTWARE

73

Figura 4.12: Sistema con massa, molla e smorzatore


Compliance ed Admittance sono, rispettivamente, gli inversi di Stiffness ed
Impedence.
Nel caso del Force Control si controlla la forza nel punto di contatto e,
per fare questo, interessa conoscere la rigidita (stiffness) delloggetto con cui
si ha linterazione. La qualita delle interfacce aptiche puo essere misura in
termini di accuratezza dellimpedenza.
Una delle principali barriere per ottenere alta precisione ed accuratezza
dellimpedenza e la dinamica dellinterfaccia aptica stessa, dal momento che
tali dinamiche vengono percepite dalloperatore umano come facenti parte
dellambiente simulato. Per eliminare tale disturbo, i progettisti agiscono sul
peso dei materiali e sugli organi di movimento dellinterfaccia; inoltre, per
arrivare ad ottenere unalta fedelta della simulazione, le dinamiche dellinterfaccia aptica devono essere ridotte relativamente allimpedenza dellambiente
virtuale.
Considerando lo schema di Figura 4.10, si nota che nellinterfaccia aptica
non compaiono sensori di forza, ma encoders della posizione. Qualora non si
abbia contatto con un oggetto virtuale,
Fh
=0
xh

(4.9)

CAPITOLO 4. HARDWARE E SOFTWARE

74

mentre, in caso contrario,


Fh
= Ze + Q
(4.10)
xh
dove Ze e limpedenza dellambiente virtuale e Q e un fattore che dipende
dalle prestazioni dellinterfaccia aptica stessa.

Figura 4.13: Controllore di impedenza open-loop


Per ridurre ulteriormente la dinamica dellinterfaccia aptica, potrebbe
essere utile lavorare sul controllo attivo delloggetto.

Figura 4.14: Controllore di impedenza open-loop con model-feedforward


Una migliore compensazione puo avvenire grazie ad un sensore di forza/coppie inserito nel dispositivo. Mentre la forza di gravita e luso di frizioni sono spesso usati per ridurre questi effetti, la variazione delle dinamiche
inerziali richiede un feedback di forza o accelerazione. Inoltre, il controllo
del feedback consente una progettazione pi
u robusta, importante qualora le
caratteristiche fisiche dellinterfaccia aptica cambino nel tempo.

CAPITOLO 4. HARDWARE E SOFTWARE

75

Figura 4.15: Controllore di impedenza con sensore di forza in retroazione

4.2

Haptik Library

Per poter utilizzare linterfaccia aptica sul computer in cui viene eseguita la
simulazione di un ambiente virtuale, e stata utilizzata la libreria creata dallUniversita degli Studi di Siena, allinterno del laboratorio SIRSLAB. Per
poter applicare una interfaccia aptica al proprio PC, esistono fondamentalmente due possibilita: utilizzare le API messe a disposizione dal costruttore
o utilizzare divers di terze parti. Nel primo caso si tratta di API semplici, con
un numero limitato di caratteristiche, spesso insufficienti per gli sviluppatori. Nel secondo caso, invece, si rischia di avere a che fare con librerie molto
grandi, complete e adatte a pi
u tipologie di interfacce aptiche, ma spesso
non troppo aggiornate e/o non in grado di supportare tecnologie recenti e in
continuo sviluppo come le GPU.
LHaptik Library e una libreria con una architettura component based,
che supera i limiti precedentemente elencati ed introduce caratteristiche interessanti quali indipendenza dal tipo di device, tolleranza a varie versioni
di drivers e compatibilita con devices futuri, SDK e librerie. Tale libreria
non contiene ne primitive grafiche, ne algoritmi fisici e neppure complesse
classi gerarchiche; il tutto e costruito attorno ad una struttura flessibile di
plugins caricabili dinamicamente. LHaptik Library gestisce i plugins e stabi-

CAPITOLO 4. HARDWARE E SOFTWARE

76

lisce la connesione con lapplicazione; ogni plugin implementa effettivamente


le routines necessarie al funzionamento di una certa classe di dispositivi.

4.3

Schede Video Programmabili

Al giorno doggi le schede video hanno pi`


u transistor di alcuni processori.
Questo fa si che nelle schede grafiche prodotte da NVIDIA, sia stato introdotto il concetto di GPU, una abbreviazione di Graphics Processing Unit, per
renderle confrontabili con la CPU. La ragione dellincremento del numero dei
transistor nelle schede grafiche `e per renderle pi`
u flessibili. Al momento, le
schede possono fare molto pi`
u delle tradizionali 3D pipeline.
Laggiunta di nuova flessibilita apre molte possibilita nel 3D, ma anche
nella manipolazione dellimmagine. Nei giochi 3D, la programmabilita delle
schede offre la possibilita di aggiungere un gran numero di nuove caratteristiche come ad esempio: Bump-mapping, Displacement Mapping, Toon-shading,
e la gestione dinamica dellambiente 3D.
In queste schede e presente una pipeline programmabile composta dai
seguenti due componenti: Vertex-shaders e Pixel-shaders. Quando viene eseguito il render di ogni poligono, il valore del colore di ogni pixel e estratto dal
pixel corrispondente dalla texture del poligono. Il pixel Shaders puo anche
eseguire calcoli per ogni pixel, come ad esempio fare il Merging con unaltra
texture, sottrarre una costante dalla componente del colore o moltiplicare il
pixel per una matrice di trasformazione.
le GPU programmabili sono iniziate con la Nvidia GeForce3 e da allora anche le schede grafiche pi
u economiche hanno sia il Vertex che il Pixel
Shader. Tendenzialmente, queste schede hanno pi
u pipeline parallele per gli
shaders, le quali consentono di gestire pi
u dati simultaneamente.

CAPITOLO 4. HARDWARE E SOFTWARE

77

Le prime versioni del pixel shader supportavano solamente un numero


limitato di operazioni 1 .
Ci sono molte differenze che devono essere considerate quando vengono
creati degli effetti sulle schede grafiche o nei processori. Le schede grafiche sono molto limitate, dal momento che ad ogni passo possono essere eseguite un
numero ridotto di operazioni; ci sono anche alcune restrizioni che riguardano
i salti condizionati, anche se nelle schede pi
u recenti possono essere eseguiti in
modo migliore. Attualmente, i linguaggi per programmare le schede grafiche
possono essere paragonati a quelli utilizzati per programmare i processori.
Cg e HLSL sono molto simili al linguaggio C e questo rende semplice la
traduzione del codice scritto per il processore, nel codice per schede grafiche.

4.3.1

Computer Graphics

La Computer Graphics e la materia che studia la sintesi di immagini mediante computer. Solitamente si hanno in input i dati che caratterizzano e
descrivono la scena da sintetizzare e si ottengono come output le immagini. La computer graphics fu usata in un primo tempo (fino al 1983/84) per
sviluppare, nei calcolatori, uninterfaccia utente pi`
u comoda rispetto alle tradizionali command line; infatti linterazione con il calcolatore, fino ad allora
esclusivamente svolta tramite riga di comando, venne rivoluzionata usando
finestre, icone, cursori ed altro ancora. Viene inoltre adoperata per sviluppare simulazioni : questultimo campo nasce grazie alla possibilita offerta
dai moderni sistemi di computer graphics di generare immagini realistiche in
real-time. Oggi lapplicazione di questa materia riguarda molti settori, dallo
sviluppo di videogiochi, al cinema, allo sviluppo di ricostruzioni virtuli di
1

Per ogni pixel potevano essere implementate otto operazioni sul colore ed otto sulle

texture.

CAPITOLO 4. HARDWARE E SOFTWARE

78

ambienti 3D.
I dispositivi di output sono prevalentemente i monitor (ad esempio, fra
i pi
u comuni ai giorni doggi, CRT/LCD), mentre quelli di input sono, ad
esempio, il mouse, il trackball2 , touch-screen ed altri. Lhardware dedicato
per questa materia e composto da schede grafiche dotate di processore, frame
buffer e memorie grafiche ausiliarie.

Figura 4.16: Architettura di base per computer graphics


Larchitettura harware di un generico sistema per la computer graphics
e illustrato in Figura 4.16. In riferimento a tale figura si notano gli elementi fondamentali hardware come il Frame Buffer, ossia una porzione di
memoria dedicata alla memorizzazione dellimmagine come insieme di pixel
da mostrare a video e la Graphics Board, cioe una scheda hardware dedicata
allelaborazione dati grafici e a pilotare il Display Raster. Il comportamento
di questi elementi puo essere cos schematizzato:
2

Tipo particolare di mouse che prevede la sfera nella parte superiore del dispositivo e

manovrata direttamente dalla mano dellutente.

CAPITOLO 4. HARDWARE E SOFTWARE

79

Frame Buffer: utilizzato per limmagazzinazione dellimmagine da visualizzare sul display.


Graphics Processing Unit (GPU): utilizzata per compiere elaborazioni
specifiche necessarie per formare limmagine.
Graphics Memory: memoria ausiliaria utilizzata dalla GPU per compiere le operazioni sopra descritte.
Sviluppare ambienti simulati in 3D, significa creare scene in un mondo virtuale a tre dimensioni, composte da oggetti geometrici con attributi pittorici,
immagini e testo. Le scene sono orientate secondo un punto di vista, dal quale si devono visualizzare le immagini corrispondenti. Devono essere create,
inoltre, le condizioni necessarie per uninterazione fra utente ed oggetti che
compongono le scene, le quali devono essere animate in corrispondenza di
cambiamenti di punto di vista, variazione di posizione degli oggetti ed eventuali deformazioni degli stessi.
Per la sintesi di immagini 3D devono essere definite due entita fondamentali: gli oggetti e losservatore (questultimo utilizza anche il processo di
rendering).
Ogni oggetto e la rappresentazione digitale di forma e caratteristiche di un
oggetto reale tridimensionale. Losservatore (viewer) e uno strumento che
permette di ottenere unimmagine di una scena da un dato punto di vista; il
rendering e loperazione con cui un viewer genera unimmagine a partire da
una scena.
Per descrivere la forma geometrica di un oggetto virtuale sono necessarie
delle primitive geometriche fornite dalle API; queste permettono di specificare un insieme ridotto di geometrie, come punti, spezzate ed insiemi di
poligoni (mesh). Geometrie anche molto complesse si possono approssimare

CAPITOLO 4. HARDWARE E SOFTWARE

80

con insiemi formati da tali primitive. Per descrivere le caratteristiche pittoriche necessitano colori, trama delle texture e variabili necessarie per il
materiale di composizione delloggetto stesso (spessore, riempimento,...).

Figura 4.17: Stadi per lelaborazione delle primitive


Essendo la scena composta da entita geometriche semplici (primitive)
descritte per mezzo di liste di vertici, lalgoritmo di rendering e strutturato
in modo da disegnare tutte le primitive elaborandole una alla volta, in modo
indipendente. Ogni primitiva, quindi, passa attraverso una sequenza di stadi
di elaborazione, in cui viene sottoposta a determinate operazioni (Figura
4.17). La scelta di strutturare un render in modo da processare una primitiva
indipendentemente dalle altre ed in pipeline ben determinate, permette di
progettare hardware grafico che espliciti il parallelismo nei due livelli:
Diversi stadi della pipeline eseguiti in parallelo su diverse primitive
(parallelismo nella singola pipeline).
Diversi gruppi di primitive alimentano diverse pipeline (parallelismo
delle diverse pipeline).
I passi pi
u lenti della pipeline possono essere parallelizzati per bilanciare
il carico dei vari stadi.
Ogni oggetto nella scena ha, in generale, il proprio sistema di riferimento; e
necessario quindi, prima di tutto, portare i vertici che definiscono le primitive

CAPITOLO 4. HARDWARE E SOFTWARE

81

nello stesso sistema di riferimento. Per fare questa operazione, ogni vertice
viene sottoposto ad una trasformazione geometrica.3

Figura 4.18: Rappresentazione del volume di vista


A questo punto viene deciso che cosa e visibile dal viewer corrente: le parti
di primitiva che stanno al di fuori dellinquadratura vengono eliminate, interrompendo la pipeline.
I vertici che rientrano nel Volume di Vista, vengono proiettati su unimmagine virtuale (Figura 4.18), in modo da calcolare la posizione della proiezione
di ogni vertice sul piano immagine. Ogni posizione del piano immagine e in
relazione con una cella (pixel) del frame buffer. A questo punto, sapendo in
quali posizioni del frame buffer finiscono i vertici di ogni primitiva visibile,
e necessario calcolare tutti i pixel che nel frame buffer sono ricoperti dalla
primitiva: tale operazione prende il nome di rasterizzazione. Ciascuno dei
pixel considerati viene quindi colorato con un colore, ricavato da quelli dati
ai vertici, secondo una certa regola stabilita a priori.
3

La trasformazione geometrica puo essere diversa da primitiva a primitiva, ma identica

per quei vertici che definiscono una data primitiva.

CAPITOLO 4. HARDWARE E SOFTWARE

4.3.2

82

Vertex Shader

Il vertex shader `e uno degli elementi essenziali per la grafica 3D. I mondi 3D
sono tutti composti da modelli che si fondano sul triangolo come elemento
grafico minimo.

Figura 4.19: Esempio di triangolarizzazione


Ogni spigolo del triangolo e noto come vertice e viene riferito a una posizione nel mondo 3D, ulteriormente descritto utilizzando varie propriet`a, quali
ad esempio la dinamica del vertice e le informazioni legate alla sua normale.
Il primo stadio della pipeline del vertex shader elabora i singoli vertici del
triangolo.
Ogni vertice viene elaborato esaminando la sua posizione nella scena 3D,
oltre alla posizione del punto di vista e delle sorgenti luminose presenti nellambiente virtuale. Grazie ai calcoli di trasformazione per matrici 3D, queste informazioni sui vertici vengono poi trasformate nello spazio 3D della
cinepresa.
Lo scopo delle unit`a vertex shader e quello di prendere i dati che rappresentano la geometria di una scena, se necessario manipolarli (ad esempio
tramite programmi vertex shader) e quindi riprogettare la scena (inizial-

CAPITOLO 4. HARDWARE E SOFTWARE

83

Figura 4.20: Schema a blocchi del Vertex shader


mente tridimensionale) per la visione sui monitor bidimensionali dei nostri
computer. Una volta che i dati sono stati elaborati dalle unita Vertex Shader, vengono divisi in diversi blocchi e passati alle unita Pixel Shader, che si
occupano di svolgere ulteriori operazioni, come ad esempio lapplicazione di
texture.

4.3.3

Pixel Shader

Il Pixel Shader e, invece, una tecnologia per lapplicazione di stupefacenti


effetti grafici ai modelli poligonali. Si basa sullelaborazione in tempo reale
dei singoli pixel. Le attuali schede video pi`
u evolute hanno dei Pixel Shader
in grado di elaborare circa 3,3 miliardi di pixel al secondo. Per ogni foto-

CAPITOLO 4. HARDWARE E SOFTWARE

84

50

50
100

50

200
150

50
100
50
0
100

50

Figura 4.21: Esempio di triangolarizzazione di un albero motore


gramma, se consideriamo una frequenza di 100 immagini al secondo, possono
essere applicati fino a 16 effetti grafici. Numerosi limiti pratici, a cominciare
dalla velocit`a della memoria video, rendono per`o impossibile questo risultato. Il Pixel Shader puo essere sfruttato dai programmatori per generare
effetti grafici senza occupare il processore del PC. Lombreggiatura dei pixel
e unoperazione intrinsecamente impegnativa dal punto di vista matematico.
Le equazioni grafiche, soprattutto per quanto riguarda lilluminazione, sono
estremamente complesse e hanno bisogno di un gran numero di calcoli. Effetti quali la rifrazione, la riflessione, la normalizzazione e il rilievo, richiedono
un gran numero di calcoli matematici di vario tipo. Oltre a ci`o, la simulazione di materiali complessi in tempo reale richiede una quantit`a enorme
di potenza di calcolo. Moltiplicazione e somma sono funzioni matematiche

CAPITOLO 4. HARDWARE E SOFTWARE

85

molto comuni nella grafica 3D. Questi calcoli, definiti anche come multiplyadd (MADD), sono presenti nelle trasformazioni, nellilluminazione, nel calcolo di mappe normali e in numerose altre operazioni. Il motore CineFX
della nVIDIA, accelera le operazioni MADD contribuendo a incrementare
il throughput complessivo dei pixel shader. Ad esempio, le GPU GeForce
7800 vantano prestazioni MADD anche doppie rispetto ai dispositivi della
generazione precedente.

4.4

C for graphics

Il linguaggio C for graphics (Cg) consente di controllare gli shape, laspetto


e il movimento di oggetti disegnati usando hardware grafico programmabile. Cg permette agli sviluppatori, con una piattaforma di programmazione
completa, di creare effetti speciali e Real Time in piattaforme multiple.
Grazie ad un nuovo livello di astrazione, Cg elimina la necessita di programmare direttamente lhardware grafico con linguaggio assembly ed in modo pi`
u facile rispetto ad OpenGL, DirectX ed altri. Cg e stato sviluppato
in stretta collaborazione con Microsoft Corporation ed e compatibile sia con
OpenGL API ed il linguaggio HLSL per DirectX9.
Cg deriva dal linguaggio di programmazione C che e popolare, general
purpose e nato nel 1970. Grazie alla sua diffusione ed alla caratteristica di
essere clean design, il C pone le basi per molti linguaggi di programmazione,
ad esempio per il C++ e Java.
Tuttavia Cg si differenzia dal linguaggio da cui deriva poiche e altamente
specializzato per la grafica 4 .
Cg ed altri linguaggi di shading, si differenziano dai linguaggi di pro4

Nessuno potrebbe mai creare un foglio di calcolo o un word processor in Cg.

CAPITOLO 4. HARDWARE E SOFTWARE

86

grammazione convenzionali essendo basati su un modello computazionale


data-flow ; in tale modello i calcoli avvengono in risposta ai dati, che passano
attraverso una sequenza di processing steps. I programmi realizzati in Cg
operano su vertici e frammenti, che vengono processati quando viene renderizzata unimmagine. Un programma Cg non e da considerare un vero e
proprio black box al quale arrivano triangoli e frammenti e, dopo una elaborazione, escono risultati, poiche il processo di trasformazione e controllabile
interamente dal programmatore.

4.4.1

GPU vs CPU

Sia che un PC o una console giochi abbia o meno una GPU, di certo necessita
di una CPU che consenta lesecuzione del sistema operativo e dei programmi applicativi. Le CPU sono, per costruzione, general purpose, ed eseguono
applicazioni scritte in linguaggi anchessi general purpose come, ad esempio,
il Java. Grazie alla specializzazione delle GPU, queste risultano molto pi
u
veloci con i task grafici (come il rendering di scene 3d) rispetto alle CPU.
Le nuove GPU sono in grado di processare decine di milioni di vertici per
secondo e rasterizzare miliardi di frammenti per secondo. La specializzazone
e le alte performance delle GPU sono possibili grazie allesistenza del Cg. I
linguaggi di programmazione di alto livello, sono troppo generici per processare task specializzati inerenti vertici e frammenti.
Per creare lillusione di interattivita, unapplicazione 3D deve avere un
rate di animazione di 15 o pi
u immagini per secondo. Generalmente il Real
Time e ottenuto con 60 o pi
u frame per secondo, frequenza alla quale le interazioni con lapplicazione sembrano istantanee. I monitor per computer hanno
un milione o pi
u pixel, che devono essere ridisegnati per ogni frame; per le
scene 3D, tipicamente, le GPU processano ogni pixel dello schermo tante

CAPITOLO 4. HARDWARE E SOFTWARE

87

volte quante questo cambia il suo aspetto. Questo significa che applicazioni
3D in Real Time possono richiedere un update per secondo di centinaia di
milioni di pixel.
Assieme allaggiornamento richiesto per i pixel, i modelli 3D sono composti di vertici, che devono essere propriamente trasformati prima che siano
assemblati in poligoni, linee e punti da rasterizzare in pixel; questo puo richiedere la trasformazione di decine di milioni di vertici per secondo.
In pi
u, tale processing grafico, avviene contemporaneamente al considerevole sforzo richiesto alla CPU per aggiornare lanimazione ad ogni nuova
immagine.
In fase di sviluppo di applicazioni 3D e giochi, per il rendering delle scene
e necessario utilizzare sia la CPU che la GPU.
Il Cg viene utilizzato come linguaggio di ausilio e supporto per linguaggi
convenzionali come C e C++, dando vita ad un particolare stile di programmazione parallela: mentre la CPU esegue applicazioni convenzionali, queste
possono anche richiamare in parallelo il processamento di vertici e frammenti
sulle GPU, grazie a programmi scritti in Cg.

4.4.2

The Graphics Hardware Pipeline

Una pipeline e una sequenza di blocchi che operano in parallelo ed in ordine


prefissato; ad ogni passo il blocco riceve linput dal blocco precedente ed invia
il suo output al blocco successivo, come in Figura 4.22.
Come una catena di montaggio dove dozzine di automobili sono costruite
allo stesso tempo, con ogni autovettura ad un diverso stadio della catena, una
graphic hardware pipeline convenzionale processa una moltitudine di vertici,
primitive geometriche e frammenti in modo pipelined.

CAPITOLO 4. HARDWARE E SOFTWARE

88

Figura 4.22: Esempio di pipeline

Figura 4.23: Pipeline hardware grafico


Trasformazione dei Vertici
Il primo step nella graphics hardware pipeline e la trasformazione dei vertici
ed esegue una sequenza di operazioni matematiche per ogni vertice. Tali
operazioni includono la trasformazione della posizione dei vertici da utilizzare
per la rasterizzazione, generando le coordiante delle texture per il processo

CAPITOLO 4. HARDWARE E SOFTWARE

89

di texturing ed aggiungendo la luce ai vertici per determinarne il colore.


Triangolarizzazione e Rasterizzazione
I vertici trasformati entrano nello step successivo, dove avviene una triangolarizzazione ed una rasterizzazione. Per prima cosa i vertici vengono assemblati
in figure geometriche (ad esempio triangoli) grazie ad informazioni che accompagnano la sequenza dei vertici. Il risultato di questo primo passo e una
serie di triangoli, linee e punti.
Il secondo passo consiste nel selezionare i poligoni della regione visibile
dello spazio 3D e nella loro successiva rasterizzazione. La rasterizzazione e un
processo per determinare linsieme di pixel allinterno di una figura geometrica (triangolo). Poligoni, linee e punti sono ognuno rasterizzati in accordo con
le regole specificate per ogni tipo di primitiva geometrica. Il risultato della
rasterizzazione e un insieme di sequenze di pixel, chiamati anche frammenti,
con la relativa localizzazione. Non ce relazione fra il numero di vertici che
ha una primitiva geometrica ed il numero di frammenti che venono generati
quando questa e rasterizzata. Per esempio, un triangolo e caratterizzato solamente da tre vertici, ma puo coprire lintero schermo e generare milioni di
frammenti.
Interpolazione, Texturing e Coloring
Una volta che una primitiva geometrica e rasterizzata in una serie di zero o
pi
u frammenti, questo step della pipeline interpola i parametri dei frammenti, genera una sequenza di texturing ed operazioni matematiche e determina
il colore finale per ogni frammento. Oltre a trovare il colore finale dei frammenti, questo passo della pipeline puo determinare una nuova profondita o
scartare un frammento in fase di aggiornamento dei pixel.

CAPITOLO 4. HARDWARE E SOFTWARE

90

Operazioni di Rastering
Lo step delle operazioni di rastering rappresenta lultimo passo nella sequenza
delle operazioni sui frammenti. Queste operazioni sono funzioni standard
nelle OpenGL e Direct3D. Durante tale passo, le parti nascoste sono eliminate
tramite un processo chiamato Depth Testing. Durante questa fase, vengono
inoltre implementati effetti come Blending e Stencil-Based Shadowing.

Figura 4.24: Step della pipeline

Vertex Processor Programmabili


Il Vertex Processor e lunita hardware che esegue vertex program scritti in
Cg.
Come e possibile vedere in Figura 4.26, il processamento dei vertici inizia caricandone gli attributi nel vertex processor. Il vertex processor estrae
sequenzialmente le istruzioni dal vertex program e le esegue fino a quando
questo termina.
Le istruzioni hanno accesso ad un certo numero di insiemi di registri distinti, contenenti valori vettoriali come posizioni, normali e colori. I registri
contenenti gli attributi dei vertici sono in sola lettura e possiedono anche
insiemi di attributi specifici per lapplicazione. I registri temporanei possono
essere letti, scritti ed utilizzati per calcolare risultati intermedi; i registri di

CAPITOLO 4. HARDWARE E SOFTWARE

91

Figura 4.25: Step della pipeline


output, con i risultati, sono in sola scrittura, ed il programma e responsabile della scrittura dei risultati in tali registri; quando un vertex program
termina, i registri di output contengono i vertici trasformati. Dopo le fasi di
triangolarizzazione e rasterizzazione, i valori interpolati di ogni registro sono
passati al fragment processor.
La maggior parte dei vertex processor, usano un insieme limitato di operazioni. Le operazioni matematiche sui vettori in virgola mobile richiedono vettori di due, tre o quattro componenti; queste operazioni comprendono addizione, moltiplicazione, moltiplicazione-addizione, prodotto vettoriale,
minimo e massimo. Supporto hardware per la negazione vettoriale e per
la possibilita di riorganizzare le componenti vettoriali arbitrariamente, sono
una generalizzazione delle istruzioni matematiche che eseguono la negazio possibile realizzare anche la
ne, la sottrazione ed il prodotto vettoriale. E
moltiplicazione di un vettore per uno scalare e la normalizzazione del vet-

CAPITOLO 4. HARDWARE E SOFTWARE

92

Figura 4.26: Flow chart di un processore di vertici programmabile


tore stesso. Approssimazioni trigonometriche, esponenziali e logaritmiche
facilitano i calcoli geometrici di luce e nebbia.
Fragment Processor Programmabile
Il Fragment Processor programmabile, utilizza molte delle operazioni del vertex processor ma, a differenza di questo, supporta anche operazioni di texturing, le quali consentono al processore di accedere ad una texture usando
un insieme di coordinate. Le GPU non offrono un pieno supporto alle operazioni in virgola mobile; le GPU vecchie hanno tipi di dati in virgola fissa

CAPITOLO 4. HARDWARE E SOFTWARE

93

pi
u limitati. Inoltre, quando sono disponibili operazioni in virgola mobile, le
operazioni sui frammenti sono molto pi
u efficienti usando tipi di dati a precisione pi
u bassa. Cg consente anche di scrivere programmi sui frammenti con
salti ed iterazioni, simulando cos costrutti con operazioni di assegnamento
condizionale o loop.

Figura 4.27: Flow chart del fragment processor programmabile


I registri in sola lettura di input del fragment processor, contengono parametri interpolati derivanti dai parametri dei vertici della frammentazione in
primitive geometriche. I registri temporanei di lettura-scrittura contengono

CAPITOLO 4. HARDWARE E SOFTWARE

94

valori intermedi. I registri in sola scrittura di output contengono il colore e,


opzionalmente, la nuova profondita del frammento.

4.5
4.5.1

OpenGL e DirectX
OpenGL

OpenGL e uninterfaccia software altamente portabile per il rendering 3D.


Dispone di vari comandi per disegnare figure come punti, linee e poligoni,
anche in tre dimensioni. Include anche il supporto per shading, texture mapping, anti-aliasing, ligthing e animation.
I comandi per creare e manipolare oggetti 3D di alto livello, come cubi,
piramidi, sfere ed altro, non sono inclusi, ma possono essere costruiti partendo dalle primitive esistenti. OpenGL non gestisce finestre, non legge input e
non scrive files, compiti lasciati al sistema operativo.
Le applicazioni passano ad openGL una bitmap sulla quale fare il render.
Silicon Graphics Inc. originariamente sviluppo GL, un linguaggio per grafica
3D per le sue macchine 3D (IRIS ). Il processo per portare tale linguaggio in
altri sistemi si e dimostrato molto difficile, cos SGI decise di modificare GL,
per rendere pi
u facile la portabilita su differenti hardware, sistemi operativi
e sistemi di windowing. Il risultato fu OpenGL.

4.5.2

DirectX

Microsoft DirectX fornisce un insieme di API (application programming interfaces) che consentono di disegnare applicazioni high-performance e realtime. Linsieme di API delle DirectX, consente alle applicazioni ad alte prestazioni basate su Windows, laccesso in tempo reale allhardware disponibile

CAPITOLO 4. HARDWARE E SOFTWARE

95

su sistemi attuali e futuri. DirectX fornisce una interfaccia consistente tra le


applicazioni hardware, riducendo la complessita di istallazione e configurazione e usando lhardware al massimo delle sue potenzialita. Utilizzando le
interfacce messe a disposizione da DirectX, gli sviluppatori di software possono trarre vantaggio dalle proprieta dellhardware, senza preoccuparsi dei
dettagli implementativi di tale hardware.

Capitolo 5
Conclusioni e Sviluppi Futuri
Il metodo analizzato estende lAnalisi Modale Lineare tradizionale, andando
a modellare le rotazioni infinitesimali senza utilizzare termini non lineari e
grantendo un buon realismo visivo; questo permette al Modal Warping di
ereditare i meriti dellAnalisi Modale, ovvero ottime prestazioni in real-time,
aggiungendo la caratteristica di poter modellare deformazioni di intensita
pi
u elevata. Inoltre, il fatto di supportare vincoli sia di orientamento che di
posizione, consente di manipolare in modo interattivo loggetto virtuale in
esame.
Questa tecnica, pero, non garantisce la conservazione del volume e, per deformazioni molto grandi, porta a fenomeni di instabilita delloggetto, con
conseguente perdita del realismo visivo. Inoltre, la sua formulazione prevede
la deformazione di oggetti vincolati ad una base di appoggio e non ha effetto
nel caso di strutture libere.
Possibili sviluppi potrebbero essere lapplicabilita del Modal Warping anche
ad oggetti non vincolati e lutilizzo di funzioni che in qualche modo gestiscano la conservazione del volume durante la deformazione, per garantire un
risultato visivo ancora migliore. Inoltre, qualora vengano sfruttati i vincoli
96

CAPITOLO 5. CONCLUSIONI E SVILUPPI FUTURI

97

di posizione o orientamento per interagire con loggetto virtuale, potrebbe


essere interessante modellare lazione del probe dellinterfaccia aptica sulla
superficie delloggetto, andando a considerare anche le deformazioni locali.
Si potrebbe migliorare il realismo visivo utilizzando tensori di forza non lineari, cercando di non aumentare troppo il carico computazionale della simulazione o modellando eventuali fratture delloggetto virtuale nel caso di
deformazioni troppo intense.

Bibliografia
[1] Klas Skogmar, Real-Time Video Effects Using Programmable Graphics
Cards.
[2] Resnick R., Halliday D., 1977, Fisica1.
[3] Witkin A., Baraff D., 2001, Differential Equation Basic.
[4] Witkin A., Baraff D., 2001, Implicit Methods for Differential Equations.
[5] Mitolo L., Considerazioni Generali sulle Sospensioni.
[6] Pentland A., Williams J., 1989, Good Vibrations: Modal Dynamics for
Graphics end Animation.
[7] James D. L., Pai D. K., 2002, DyRT: Dynamic Response Textures for
Real Time Deformation Simulation with Graphics Hardware.
[8] Choi M. C., Ko H. S., Modal Warping: Real-Time Simulation of Large
Rotational Deformation and Manipulation.
[9] Nealen A., M
uller M., Keiser R., Boxerman E., Carlson M., 2005,
Physically Based Deformable Models in Computer Graphics.
[10] De Pascale M., De Pascale G., Prattichizzo D., Barbagli F., A GPUfriendly Method for Haptic and Graphic Rendering of Deformable
Objects.
99

BIBLIOGRAFIA

100

[11] Mantegazza P., 2003, Analisi di Sistemi di Equazioni AlgebricoDifferenziali.


[12] Wagner M., 2004, Generating Vertex Normal.
[13] nVIDIA Corporation, The GeForce Family GPUs.
[14] nVIDIA Corporation, The Cg Language.
[15] De Pascale M., De Pascale G., Prattichizzo D., Barbagli F., 2004, The
Haptik Library: a Component Based Architetture for Haptik Device
Access.
[16] Microsoft Corporation, DirectX.
[17] Shewchuk J.,

1999,

Meshing and Triangulation in Graphics,

Engineering and Modeling.


[18] Patterson D. A., Hennessy J. L., 1999, Struttura, Organizzazione e
Progetto dei Calcolatori.
[19] Gallina P., Rosati G., Rossi A., 2001, Utilizzo di Interfacce Aptiche
nella Robotica Medica.
[20] Carignan C. R., Clearey K. R., Closed-loop Force Control for Haptic
Simulation of Virtual Environments.
[21] Barbagli F., Prattichizzo D., Salisbury J. K., 2003, Dynamic Local
Model for Stable Multi-Contact Haptic Interaction with Deformable
Object.