real time physicspercro.sssup.it/marcello/didattica/aa2012/19_pbm.pdfrealtà virtuale: il presente,...

50
Real-Time Physics Real Time Physics

Upload: others

Post on 25-Feb-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

Real Time Physics

Page 2: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

Perché si usano le simulazioni fisiche

• Si permette all'utente di interagire con l'ambiente virtuale e

muovere gli oggetti in maniera coerente

• Si aumenta il realismo della scena, gli oggetti non si

intepenetrano, non stanno sospesi in aria

Page 3: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

La fisica è complessa

• Perfino una collisione anelastica può diventare un

problema complesso

• La maggior parte dei problemi sono complicati da

risolvere in real-time

Page 4: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

La fisica è complessa (ii)

•Abbiamo bisogno di semplificare

Solo corpi rigidi, gli oggetti deformabili sono trattati come caso

speciale

Solo forme convesse omogenee e indistruttibili

Collisioni elastiche tra gli oggetti

Niente forze magnetiche, elettriche o reazioni chimiche

Niente attrito con l'aria (o modelli di attrito molto semplici)

Molti casi speciali (fluidi, tessuti e corpi deformabili)

•Non possiamo semplificare troppo

L'utente deve credere che la fisica sia reale

La simulazione deve essere stabile…

…e veloce.

Page 5: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

Simulazione dinamica in breve

Dinamica:

applicazione delle leggi di Newton

sul moto dei corpi

Simulazione dinamica

ottenere l’evoluzione del sistema a partire

dalla descrizione di:

Oggetti

Interazioni fra oggetti

Forze che agiscono sugli oggetti

Page 6: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

Tipologie di simulazione

Offline:

velocità scorrelata da quella dei

processi simulati

Online:

stessa velocità dei processi simulati

Realtime

Interattiva: è possibile modificare lo

stato della simulazione mentre è in corso

Page 7: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

Cinematica

Descriviamo

il movimento

di un corpo

ignorandone le cause

Controlliamo

direttamente

la variabile posizione

P(t) = mv

a(t) = dv/dt

v(t) = dx/dt

x(t)

Page 8: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

Dinamica

dP(t)/dt = F(t)

a(t) = F(t)/m

v(t) = a(t)dt

x(t) = v(t)dt

Descriviamo

le cause del moto,

ovvero le forze

Controlliamo

direttamente

le forze che agiscono

sui corpi stessi

Page 9: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

Dinamica delle particelle

Particella (o punto)

Non ha estensione

La sua posizione nello spazio è descritta solo dalla sua traslazione rispetto all’origine: (x, y, z)

La particella NON può ruotare!

Stato di una particella

Posizione

Velocità

Page 10: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

Sistema di particelle

In assenza di forze esterne:

la quantità di moto (o momento lineare) del sistema

si conserva

il centro di massa resta in quiete

In presenza di forze esterne:

il moto del centro di massa è equivalente a quello di

un’unica particella con massa M=Σmi

Quantità di moto totale

P = ipi = imivi

Centro di massa

xcm = (imixi)/M

Page 11: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

Applicazioni dei sistemi particellari in CG

Molto usati!

Effetti (fuoco, nebbia, nuvole...)

Anche capelli!

11

XVR

Page 12: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

Dinamica del corpo rigido

Il corpo rigido

Ha un’estensione spaziale

È quindi soggetto anche al moto rotatorio

È indeformabile

Stato di un corpo rigido

Posizione e velocità (del baricentro)

Rotazione e velocità angolare

Page 13: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

Moto rotatorio

Rotazione attorno ad un asse fisso

L’angolo θ varia nel tempo

Tracciando un’analogia

fra angolo θ(t) e posizione x(t)

possiamo definire:

Velocità angolare

Accelerazione angolare

Momento angolare

Momento di una forza

Momento d’inerzia

Page 14: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

Parallelismo fra moto lineare e angolare

Lineare Angolare

posizione x Θ (angolo)

velocità v = dx/dt Ω = dΘ/dt

accelerazione a = vx/dt

= d2x/dt2

α = dΩ/dt

= d2Θ/dt2

resistenza al moto m (massa inerziale)

I (momento d’inerzia)

momento (si conserva) P = mv L = IΩ

forza F = ma = dP/dt τ = Iα = dL/dt

= F x r

Page 15: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

Moto del corpo rigido

Moto di un singolo corpo rigido

Tutte le forze influenzano il moto del

baricentro

Alcune forze influenzano anche il moto

rotatorio

Forze che non agiscono uniformemente su

tutto il corpo

Forze non in linea col baricentro

Page 16: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

Momento (o tensore) d’inerzia

È una matrice 3x3 che rappresenta la resistenza di un corpo alla rotazione rispetto ai vari assi

Nota: è diverso per ogni orientazione di un corpo, ma è possibile esprimerlo come

I(t) = R(t) I R(t)T

Page 17: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

Constrained dynamics

Le cose si complicano quando più

corpi rigidi interagiscono:

Collisioni

Vincoli

(sottrazione di gradi di libertà)

Page 18: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

Collision Detection

Page 19: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

Collisioni

Argomento molto vasto

In breve:

Collision detection

Banale particelle/piano

Poco banale fra superfici qualsiasi!

Collision response

Cruciale dove applichiamo la risposta

in un corpo rigido

Page 20: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

Ray-Mesh collision

Esistono semplici test di intersezione raggio-geometria (es. in XVR

isColliding)

Utile per ray –casting selection, terrain following, collision detection

(oggetto-oggetto, camera –oggetto etc.)

Page 21: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

• Tunneling

Oggetti veloci (o piccoli) in

movimento posso mancare

alcune collisioni

5/28/2009 21

Collisioni

Page 22: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

•Per risolvere il

problema del tunnelling

dobbiamo considerare

l'intero movimento

•Una “sweep shape” è

una forma che

racchiude il movimento

dell'intero passo

Collisioni

Page 23: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

Osservazione:

• Incrementando la

dimensione di un oggetto e

riducendo la dimensione

dell'altro la distanza non

cambia

Un oggetto può essere

ridotto a una

singolarità (punto)

5/28/2009 23

Collisioni

Page 24: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

Somma di Minkowski

Test Square & Circle Collision Square + Circle Minkowski Sum

Test

Page 25: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

Possibilità: effettuare la collisione triangolo-triangolo tra tutti i triangoli di entrambe le mesh -> computazionalmente MOLTO oneroso

Possibilità più realistica: utilizzare bounding volumes e, preferibilmente, gerarchie di bounding volumes

Collisioni

Page 26: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

Bounding Volume Hierarchies

l = 0 l = 1 l = 2 l = 3

l = 4 l = 5 l = 6 l = 7

Page 27: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

Collisioni fra BVH

Collisioni gerarchiche fra BVH

BVH oggetto 1

A

B C

A

B C

BVH oggetto 2

B C

B C A

A

Page 28: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

Collisioni: Bounding Volumes

Page 29: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

Collisioni: Modello a fasi

DETECTION: BROAD PHASE

collision detection “rozza” per determinare coppie di

oggetti potenzialmente collidenti (uso di BVH)

DETECTION: NARROW PHASE

collision detection più precisa tra le coppie individuate

nella fase precedente (difficilmente comunque si arriva

alla precisione triangolo-triangolo)

RESPONSE: RESOLUTION PHASE

Si aggiorna lo stato degli oggetti sulla base delle

informazioni risultanti dal contatto

Page 30: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

Affiancare alla rappresentazione

poligonale una rappresentazione

Voxel e una rappresentazione

Point-shell, e testare le collisioni

usando queste rappresentazioni

alternative

Collision detection: altre possibilità

Page 31: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

Vincoli

Page 32: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

• Gli oggetti possono essere linkati assieme da vincoli

per creare oggetti complessi:

Ragdoll

Corde / Ponti

Bracci robotici

Gru

Anche i punti di contatto sono visti come vincoli

Risoluzione dei vincoli

XVR

Page 33: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

• Risolvere i vincoli vuol dire risolvere un sistema di n

equazioni

N è il numero dei vincoli

• All'aumentare del numero di vincoli aumenta la

complessità del problema in maniera quadratica

• Il numero di vincoli può crescere molto rapidamente

(in una scena normale si può tranquillamente

raggiungere 30 ~ 40)

Risolvere un equazione con 30 variabili può essere

lento.

Risoluzione dei vincoli

Page 34: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

Risoluzione dei vincoli

•Una possibile soluzione è risolvere un

vincolo alla volta

Risolvere un vincolo può rendere

invalidi gli altri

•Si può risolvere il problema

iterativamente finché la soluzione non

converge

Poche iterazioni = soluzione instabile

Molte iterazioni = si sforano i tempi

1m

2m

3m

Page 35: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

Simulazione fisica

Page 36: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

Equazioni differenziali ordinarie

Una ODE (Ordinary Differential Equation)

di ordine “n” è

“un’equazione in cui l’incognita

è una funzione in una variabile indipendente,

e che contiene derivate dell’incognita

in quella variabile fino all’ordine n”

Esempio:

F = ma ovvero d2x/dt2=F/m

(ODE di ordine 2)

Page 37: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

Il problema del tempo discreto

• Le simulazioni sono a tempo discreto: necessaria analisi

numerica

• I movimenti sono l'approssimazione del vero movimento

suddiviso in piccoli movimenti lineari

Un'integrazione sbagliata porta a guadagni o perdite di

energia

Gli errori si sommano nel tempo

La grandezza dell’intervallo (step) influisce sull’errore.

Alcuni metodi (primo ordine) prevedono una sola iterazione

ma necessitano di uno step piccolissimo, altri prevedono più

iterazioni ma consentono uno step più grande. Il costo

computazionale è proporzionale ad entrambi: costo α (step size, # iterations)

Page 38: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

Soluzioni numeriche

Calcoliamo la variazione di x(t)

in un intervallo temporale ΔT

Metodi famosi

Eulero

Punto di mezzo

Runge Kutta

ecc.

Page 39: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

Metodo di Eulero

dx/dt = f(t)

x(t0 + h) = x0 + hf(t0)

Page 40: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

Problemi (1/2)

Accuratezza

La soluzione non è esatta, ma quanto

si discosta da un risultato corretto?

Ordine dell’errore

Che prezzo siamo disposti a pagare

in cambio di una maggiore accuratezza?

Funzioni di costo

(numero di valutazioni di F e F’)

Page 41: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

Problemi (2/2)

Stabilità

Alcuni metodi rischiano di divergere

completamente

Equazioni “stiff”

Per esse soluzioni instabili finchè il passo di

integrazione non è sufficientemente piccolo

Diminuire il passo di integrazione può servire,

ma può costare molto e a volte

non risolve il problema

step size = 1

step size = 0.7

Page 42: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

Deriva numerica di R: problema

R è la matrice 3x3 che esprime

la rotazione di un corpo nello spazio

Dopo molte elaborazioni successive

si accumulano gli errori numerici

Tuttavia non tutte le matrici 3x3

sono matrici di rotazione!

R tende ad allontanarsi dall’ortogonalità

Effetto grafico e fisico non realistico

Difficile ripristinare R

Page 43: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

Deriva numerica di R: soluzione (1/2)

I quaternioni

Estensione dei numeri complessi

Un valore reale e tre immaginari

Q = w + ix + jy +kz

con i2 = j2 = k2 = ijk = -1

Un quaternione è unitario se

x2 + y2 + z2 + w2 = 1

Ogni quaternione unitario (w,x,y,z)

è interpretabile come una rotazione

in 3D e viceversa

Page 44: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

Deriva numerica di R: soluzione (2/2)

Risolvono il problema perché:

Hanno solo 4 elementi

Si accumula meno errore

Sono facili da correggere

Hanno norma unitaria

Tutti i 4v con norma unitaria

sono quaternioni!

Inoltre:

Meno memoria

Facile interpolare rotazioni

Page 45: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

Instabilità numerica

La precisione dei float è finita e varia con la

grandezza del numero

I test di collision non sono mai precisi

Soluzione: permettere una lieve interpenetazione

Gli oggetti possono guadagnare energia

La simulazione diventa instabie

Soluzione: aggiungere dello smorzamento

Tutti i test devono considerare gli errori di precisione

dei numeri float

Page 46: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

Un mondo di soluzioni

Page 47: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

physXVR hello world

function initPhysics(){

phManager = CVmPhManager(false);

phManager.SetTiming(SUBPASSTIME,

PASSNUMBER, PHX_TIMEFIXED);

phManager.setParameters(PHY_ENABLE_H

ARDWARE, 1);

}

function run (){

time += phManager.simulate();

phManager.updateGraphics();

phManager.draw();

}

Crea il manager della fisica

Imposta i parametri temporali

Imposta altri parametri

Inizia la simulazione

Aggiornal la posizione degli oggetti

Disegna gli oggetti con la posizione aggiornata

Page 48: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

Creare degli oggetti

Una box:

var box = phManager.AddPhObj(posA, orientationA,

PHX_DYNAMIC, PHX_BOX, 10, 1.0, 1.0, 1.0);

Una sfera:

var sphere = phManager.AddPhObj(posB, posB,

PHX_DYNAMIC, PHX_SPHERE, 10, 12, 0.5);

Un piano:

var plane = phManager.AddPhObj(0.0, [0.0, 1.0, 0.0],

PHX_FIXED, PHX_PLANE);

Page 49: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

Creare una mesh da un oggetto

var mesh = CVmNewMesh(“myMesh.aam”);

var cookedMeshConvex = phManager.cookConvexMesh(mesh);

var cookedMeshTri = phManager.cookMesh(mesh);

var o1 = phManager.AddPhObj(pos, rot, PHX_DYNAMIC);

o1.addConvexShape(cookedMeshConvex, o, r, 100, 0);

o1.linkToMesh(mesh);

oppure

o1.addTriangleShape(cookedMeshTri, o, r, 100, 0);

Page 50: Real Time Physicspercro.sssup.it/marcello/didattica/AA2012/19_PBM.pdfRealtà Virtuale: il presente, il passato, il futuroReal-Time Physics • Risolvere i vincoli vuol dire risolvere

Realtà Virtuale: il presente, il passato, il futuro Real-Time Physics

•Le collisioni tra oggetti

concavi non sono supportate

•Oggetti convessi possono

essere create tramite

diverse convex shape

Oggetti convessi