Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione...

52
Real Real-Time Time Physics Physics Real Real Time Time Physics Physics

Transcript of Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione...

Page 1: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

RealReal TimeTime PhysicsPhysics

Page 2: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

PerchéPerché sisi usanousano le le simulazionisimulazioni fisichefisiche

• 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 Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

La La fisicafisica è è complessacomplessa

• 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 Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

La La fisicafisica è è complessacomplessa (ii)(ii)

••AbbiamoAbbiamo bisognobisogno didi semplificaresemplificare

Solo Solo corpicorpi rigidirigidi, , gligli oggettioggetti deformabilideformabili sonosono trattatitrattati come come casocaso

specialespeciale

Solo Solo formeforme convesseconvesse omogeneeomogenee e e indistruttibiliindistruttibili

CollisioniCollisioni elasticheelastiche tratra gligli oggettioggetti

NienteNiente forzeforze magnetichemagnetiche, , elettricheelettriche o o reazionireazioni chimichechimiche

NienteNiente attritoattrito con con l'arial'aria (o (o modellimodelli di di attritoattrito molto molto semplicisemplici))

MoltiMolti casicasi specialispeciali ((fluidifluidi, , tessutitessuti e e corpicorpi deformabilideformabili))

••Non Non possiamopossiamo semplificaresemplificare troppotroppo

L'utenteL'utente devedeve crederecredere cheche la la fisicafisica siasia realereale

La La simulazionesimulazione devedeve essereessere stabilestabile……

……e e veloceveloce..

Page 5: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

Simulazione dinamica in breveSimulazione dinamica in breve

Dinamica:Dinamica:

applicazione delle leggi di Newtonapplicazione delle leggi di Newton

sul moto dei corpisul moto dei corpi

Simulazione Simulazione dinamicadinamica

ottenere l’evoluzione del ottenere l’evoluzione del sistema a sistema a partire partire

dalla descrizione dalla descrizione di:di:

OggettiOggetti

Interazioni fra oggettiInterazioni fra oggetti

Forze che agiscono sugli oggettiForze che agiscono sugli oggetti

Page 6: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

Tipologie di simulazioneTipologie di simulazione

OfflineOffline::

velocità velocità scorrelatascorrelata da da quella dei quella dei

processi simulatiprocessi simulati

OnlineOnline::

stessa velocità dei processi simulatistessa velocità dei processi simulati

RealtimeRealtime

InterattivaInterattiva: è possibile : è possibile modificare lo modificare lo

stato della stato della simulazione mentre simulazione mentre è in corsoè in corso

Page 7: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

CinematicaCinematica

DescriviamoDescriviamo

il movimentoil movimento

di un corpodi un corpo

ignorandone le causeignorandone le cause

ControlliamoControlliamo

direttamentedirettamente

la variabile la variabile posizioneposizione

P(t) = P(t) = mvmv

a(t) = a(t) = dvdv//dtdt

v(t) = v(t) = dxdx//dtdt

x(t)x(t)

Page 8: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

DinamicaDinamica

dPdP(t)/(t)/dtdt = F(t)= F(t)

a(t) = F(t)/ma(t) = F(t)/m

v(t) = v(t) = a(t)a(t)dtdt

x(t) = x(t) = v(t)v(t)dtdt

DescriviamoDescriviamo

le le causecause del moto, del moto,

ovvero le forzeovvero le forze

ControlliamoControlliamo

direttamentedirettamente

le forze che agisconole forze che agiscono

sui corpi stessisui corpi stessi

Page 9: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

Dinamica delle particelleDinamica delle particelle

Particella (o punto)Particella (o punto)

Non Non ha estensioneha estensione

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

La particella NON può ruotare!La particella NON può ruotare!

Stato di una particellaStato di una particella

PosizionePosizione

VelocitàVelocità

Page 10: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

Sistema di Sistema di particelleparticelle

In assenza di forze esterneIn assenza di forze esterne::

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

si conservasi conserva

il il centro di massa resta in quietecentro di massa resta in quiete

In presenza di forze esterne:In presenza di forze esterne:

il moto del centro di massa è equivalente a quello di il moto del centro di massa è equivalente a quello di

un’unica un’unica particella con particella con massa massa M=M=ΣΣmmii

Quantità Quantità di moto di moto totaletotale

P P = = iippii = = iimmiivvii

Centro di massaCentro di massa

xxcmcm = (= (iimmiixxii)/M)/M

Page 11: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

Applicazioni dei sistemi particellari in CGApplicazioni dei sistemi particellari in CG

Molto usati!Molto usati!

Effetti (fuoco, nebbia, nuvole...)Effetti (fuoco, nebbia, nuvole...)

Anche capelli!Anche capelli!

11

XVR

Page 12: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

Dinamica del corpo rigidoDinamica del corpo rigido

Il corpo rigidoIl corpo rigido

Ha un’estensione spazialeHa un’estensione spaziale

È È quindi soggetto anche al moto rotatorioquindi soggetto anche al moto rotatorio

È indeformabileÈ indeformabile

Stato di un corpo rigidoStato di un corpo rigido

Posizione e velocità (del baricentro)Posizione e velocità (del baricentro)

Rotazione e velocità angolareRotazione e velocità angolare

Page 13: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

Moto rotatorioMoto rotatorio

Rotazione attorno ad un asse fissoRotazione attorno ad un asse fisso

L’angolo L’angolo θθ varia nel tempovaria nel tempo

Tracciando un’analogiaTracciando un’analogia

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

possiamo definire:possiamo definire:

Velocità angolareVelocità angolare

Accelerazione angolareAccelerazione angolare

Momento angolareMomento angolare

Momento di una forzaMomento di una forza

Momento d’inerziaMomento d’inerzia

Page 14: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

Parallelismo fra moto lineare e angolareParallelismo fra moto lineare e angolare

LineareLineare AngolareAngolare

posizioneposizione xx ΘΘ (angolo)(angolo)

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

accelerazioneaccelerazione a = vx/dta = vx/dt

= d= d22x/dtx/dt22

αα = d= dΩΩ/dt/dt

= d= d22ΘΘ/dt/dt22

resistenza al motoresistenza al moto mm ((massa inerzialemassa inerziale))

II ((momento d’inerzia)momento d’inerzia)

momentomomento P = mvP = mv L = IL = IΩΩ

forzaforza F = ma = dP/dtF = ma = dP/dt ττ = I= Iαα = = dLdL//dtdt

= F x r= F x r

Page 15: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

Moto del corpo rigidoMoto del corpo rigido

Moto di un singolo corpo rigidoMoto di un singolo corpo rigido

Tutte le forze Tutte le forze influenzano il influenzano il moto del moto del

baricentrobaricentro

Alcune forze Alcune forze influenzano anche influenzano anche il moto il moto

rotatoriorotatorio

Forze Forze che non agiscono uniformemente su che non agiscono uniformemente su

tutto tutto il corpoil corpo

Forze Forze non in linea col baricentronon in linea col baricentro

Page 16: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

Momento (o tensore) d’inerziaMomento (o tensore) d’inerzia

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

NotaNota: è diverso per ogni orientazione: è diverso per ogni orientazione di un corpo, ma è possibile esprimerlodi un corpo, ma è possibile esprimerlo comecome

I(t) = I(t) = R(t) I R(t)R(t) I R(t)TT

Page 17: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

Constrained dynamicsConstrained dynamics

Le cose si complicano quando più Le cose si complicano quando più

corpi rigidi interagiscono:corpi rigidi interagiscono:

CollisioniCollisioni

VincoliVincoli

(sottrazione di gradi di libertà)(sottrazione di gradi di libertà)

Page 18: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

CollisionCollision DetectionDetection

Page 19: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

CollisioniCollisioni

Argomento molto vastoArgomento molto vasto

In breve:In breve:

Collision detectionCollision detection

Banale particelle/pianoBanale particelle/piano

Poco banale fra superfici qualsiasi!Poco banale fra superfici qualsiasi!

Collision responseCollision response

Cruciale Cruciale dovedove applichiamo la rispostaapplichiamo la risposta

in un corpo rigidoin un corpo rigido

Page 20: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

RayRay--Mesh collisionMesh collision

EsistonoEsistono semplicisemplici test di test di intersezioneintersezione raggioraggio--geometriageometria ((eses. in XVR . in XVR

isCollidingisColliding))

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

((oggettooggetto--oggettooggetto, camera , camera ––oggettooggetto etc.)etc.)

Page 21: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

•• TunnelingTunneling

OggettiOggetti velociveloci (o (o piccolipiccoli) in ) in

movimentomovimento possoposso mancaremancare

alcunealcune collisionicollisioni

5/28/2009 21

CollisioniCollisioni

Page 22: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

••Per Per risolvererisolvere ilil

problemaproblema del del tunnellingtunnelling

dobbiamodobbiamo considerareconsiderare

l'interol'intero movimentomovimento

••UnaUna ““sweep shapesweep shape” è ” è

unauna forma forma cheche

racchiuderacchiude ilil movimentomovimento

dell'interodell'intero passopasso

CollisioniCollisioni

Page 23: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

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

CollisioniCollisioni

Page 24: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

Somma di Somma di MinkowskiMinkowski

Test Square & Circle Collision Square + Circle Minkowski Sum

Test

Page 25: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

PossibilitàPossibilità: : effettuareeffettuare la la collisionecollisione triangolotriangolo--triangolotriangolo tratra tuttitutti i i triangolitriangoli di di entrambeentrambe le mesh le mesh --> > computazionalmentecomputazionalmente MOLTO MOLTO onerosooneroso

PossibilitàPossibilità piùpiù realisticarealistica: : utilizzareutilizzare bounding volumes e, bounding volumes e, preferibilmentepreferibilmente, , gerarchiegerarchie di di bounding volumesbounding volumes

CollisioniCollisioni

Page 26: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

Bounding Volume HierarchiesBounding Volume Hierarchies

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

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

Page 27: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

CollisioniCollisioni frafra BVHBVH

CollisioniCollisioni gerarchichegerarchiche frafra BVHBVH

BVH oggetto 1

A

B C

A

B C

BVH oggetto 2

B C

B C A

A

Page 28: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

Collisioni: Collisioni: BoundingBounding VolumesVolumes

Page 29: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

Collisioni: Modello a fasiCollisioni: Modello a fasi

DETECTION: BROAD PHASE DETECTION: BROAD PHASE

collision detection “rozza” per determinare coppie di collision detection “rozza” per determinare coppie di

oggetti potenzialmente collidenti (uso di BVH)oggetti potenzialmente collidenti (uso di BVH)

DETECTION: NARROW PHASE DETECTION: NARROW PHASE

collision detection più precisa tra le coppie individuate collision detection più precisa tra le coppie individuate

nella fase precedente (difficilmente comunque si arriva nella fase precedente (difficilmente comunque si arriva

alla precisione triangoloalla precisione triangolo--triangolo)triangolo)

RESPONSE: RESOLUTION PHASE RESPONSE: RESOLUTION PHASE

Si aggiorna lo stato degli oggetti sulla base delle Si aggiorna lo stato degli oggetti sulla base delle

informazioni risultanti dal contattoinformazioni risultanti dal contatto

Page 30: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

Affiancare alla rappresentazioneAffiancare alla rappresentazione

poligonale una rappresentazionepoligonale una rappresentazione

VoxelVoxel e una rappresentazionee una rappresentazione

PointPoint--shellshell, , e testare le collisionie testare le collisioni

usando queste rappresentazioni usando queste rappresentazioni

alternativealternative

CollisionCollision detection: altre possibilitàdetection: altre possibilità

Page 31: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

VincoliVincoli

Page 32: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

•• GliGli oggettioggetti possonopossono essereessere linkatilinkati assiemeassieme dada vincolivincoli

per per crearecreare oggettioggetti complessicomplessi::

RagdollRagdoll

CordeCorde / / PontiPonti

BracciBracci roboticirobotici

GruGru

AncheAnche i i puntipunti didi contattocontatto sonosono vistivisti come come vincolivincoli

Risoluzione dei vincoliRisoluzione dei vincoli

XVR

Page 33: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

•• RisolvereRisolvere i i vincolivincoli vuolvuol dire dire risolvererisolvere un un sistemasistema didi n n

equazioniequazioni

N è N è ilil numeronumero deidei vincolivincoli

•• All'aumentareAll'aumentare del del numeronumero didi vincolivincoli aumentaaumenta la la

complessitàcomplessità del del problemaproblema in in manieramaniera quadraticaquadratica

•• Il Il numeronumero didi vincolivincoli puòpuò crescerecrescere molto molto rapidamenterapidamente

(in (in unauna scenascena normalenormale sisi puòpuò tranquillamentetranquillamente

raggiungereraggiungere 30 ~ 40)30 ~ 40)

RisolvereRisolvere un un equazioneequazione con 30 con 30 variabilivariabili puòpuò essereessere

lento.lento.

Risoluzione dei vincoliRisoluzione dei vincoli

Page 34: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

RisoluzioneRisoluzione deidei vincolivincoli

•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 Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

Simulazione fisicaSimulazione fisica

Page 36: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

Equazioni differenziali ordinarieEquazioni differenziali ordinarie

Una ODE (Ordinary Differential Equation)Una ODE (Ordinary Differential Equation)

di ordine “n” èdi ordine “n” è

“un’equazione in cui l’incognita“un’equazione in cui l’incognita

è una funzione in una variabile indipendente,è una funzione in una variabile indipendente,

e che contiene derivate dell’incognitae che contiene derivate dell’incognita

in quella variabile fino all’ordine n”in quella variabile fino all’ordine n”

Esempio:Esempio:

F = ma F = ma ovveroovvero dd22x/dtx/dt22=F/m=F/m

(ODE di ordine 2)(ODE di ordine 2)

Page 37: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

Il Il problemaproblema del tempo del tempo discretodiscreto

• 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 Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

Soluzioni numericheSoluzioni numeriche

Calcoliamo la variazione di x(t)Calcoliamo la variazione di x(t)

in un intervallo temporale in un intervallo temporale ΔΔTT

Metodi famosiMetodi famosi

EuleroEulero

Punto Punto di mezzodi mezzo

RungeRunge KuttaKutta

eccecc..

Page 39: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

Metodo di EuleroMetodo di Eulero

dx/dt = f(t)dx/dt = f(t)

x(tx(t00 + h) = x+ h) = x00 + hf(t+ hf(t00))

Page 40: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

Problemi (1/2)Problemi (1/2)

AccuratezzaAccuratezza

La soluzione non è esatta, ma La soluzione non è esatta, ma quantoquanto

si discosta da un risultato corretto?si discosta da un risultato corretto?

Ordine dell’erroreOrdine dell’errore

Che prezzo siamo disposti a pagareChe prezzo siamo disposti a pagare

in cambio di una maggiore accuratezza?in cambio di una maggiore accuratezza?

Funzioni di costoFunzioni di costo

(numero di valutazioni di F e F’)(numero di valutazioni di F e F’)

Page 41: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

Problemi (2/2)Problemi (2/2)

StabilitàStabilità

Alcuni Alcuni metodi rischiano di divergere metodi rischiano di divergere

completamentecompletamente

Equazioni Equazioni ““stiffstiff””

Per esse soluzioni instabili Per esse soluzioni instabili finchèfinchè il passo di il passo di

integrazione non è sufficientemente piccolointegrazione non è sufficientemente piccolo

Diminuire Diminuire il passo di integrazione può servire, il passo di integrazione può servire,

ma può costare molto e a ma può costare molto e a voltevolte

non risolve il problemanon risolve il problema

step size = 1

step size = 0.7

Page 42: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

Deriva numerica di R: problemaDeriva numerica di R: problema

R è la matrice 3x3 che esprimeR è la matrice 3x3 che esprime

la rotazione di un corpo nello spaziola rotazione di un corpo nello spazio

Dopo molte elaborazioni successiveDopo molte elaborazioni successive

si accumulano gli errori numericisi accumulano gli errori numerici

Tuttavia non tutte le matrici 3x3Tuttavia non tutte le matrici 3x3

sono matrici di rotazione!sono matrici di rotazione!

R tende ad allontanarsi dall’ortogonalitàR tende ad allontanarsi dall’ortogonalità

Effetto grafico e fisico non realisticoEffetto grafico e fisico non realistico

Difficile ripristinare RDifficile ripristinare R

Page 43: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

Deriva numerica di R: Deriva numerica di R: soluzione ?soluzione ?

Angoli di EuleroAngoli di Eulero

Rappresentano le rotazioni attorno agli assi principaliRappresentano le rotazioni attorno agli assi principali

Ma gli assi dopo ogni rotazione cambiano! Ma gli assi dopo ogni rotazione cambiano!

E’ importante l’ordine in cui si applicano le rotazioniE’ importante l’ordine in cui si applicano le rotazioni

Alternativa: angoli di Eulero “nautici”: assi sempre in Alternativa: angoli di Eulero “nautici”: assi sempre in

un sistema di riferimento globaleun sistema di riferimento globale

Sono interpolabili e consistono di 3 soli numeri Sono interpolabili e consistono di 3 soli numeri ma…ma…

problema del “problema del “gimbalgimbal locklock”: esistono singolarità in ”: esistono singolarità in

cui la stessa rotazione è esprimibile in diverse cui la stessa rotazione è esprimibile in diverse

manieremaniere

Page 44: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

Deriva numerica di R: Deriva numerica di R: soluzione ?soluzione ?

AngleAngle--AxisAxis

Ogni rotazione comunque complessa può essere Ogni rotazione comunque complessa può essere

sempre espressa come una rotazione di un certo sempre espressa come una rotazione di un certo

angolo attorno a un certo asseangolo attorno a un certo asse

Molto intuitive per rotazioni semplici, non per Molto intuitive per rotazioni semplici, non per

rotazioni complesserotazioni complesse

Utilizzabili come rappresentazione “di appoggio” Utilizzabili come rappresentazione “di appoggio”

(solo 4 numeri) ma l’interpolazione tra due (solo 4 numeri) ma l’interpolazione tra due angleangle--axisaxis

non è significativanon è significativa

Page 45: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

Deriva numerica di R: soluzione (1/2)Deriva numerica di R: soluzione (1/2)

I quaternioniI quaternioni

Estensione dei numeri Estensione dei numeri complessi: un complessi: un valore reale e valore reale e

tre immaginaritre immaginari

Q = Q = w w + + ixix + + jyjy +kz+kz concon ii22 = j= j22 = k= k22 = = ijkijk = = --11

Q relativo a una rotazione di Q relativo a una rotazione di θθ gradi attorno a un gradi attorno a un

asse [i,j,k] =asse [i,j,k] =

Un Un quaternione è unitario sequaternione è unitario se

xx22 + + yy22 + + zz22 + + ww22 = 1= 1

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

è interpretabile come una rotazione in 3D e viceversaè interpretabile come una rotazione in 3D e viceversa

Page 46: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

Deriva numerica di R: soluzione (2/2)Deriva numerica di R: soluzione (2/2)

Risolvono il problema perché:Risolvono il problema perché:

Hanno solo 4 elementiHanno solo 4 elementi

Si accumula meno erroreSi accumula meno errore

Sono facili da correggereSono facili da correggere

Hanno norma unitariaHanno norma unitaria

Tutti i 4v con norma Tutti i 4v con norma unitaria sono unitaria sono quaternioni!quaternioni!

Inoltre:Inoltre:

Meno memoriaMeno memoria

Facile interpolare Facile interpolare rotazioni rotazioni

Contro: rappresentazione “ostica” Contro: rappresentazione “ostica”

Page 47: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

InstabilitàInstabilità numericanumerica

La La precisioneprecisione deidei float è float è finitafinita e e variavaria con la con la

grandezzagrandezza del del numeronumero

I I test di collision non test di collision non sonosono maimai precisiprecisi

SoluzioneSoluzione: : permetterepermettere unauna lievelieve interpenetrazioneinterpenetrazione

GliGli oggettioggetti possonopossono guadagnareguadagnare energiaenergia

La La simulazionesimulazione diventadiventa instabieinstabie

SoluzioneSoluzione: : aggiungereaggiungere dellodello smorzamentosmorzamento

TuttiTutti i test i test devonodevono considerareconsiderare gligli errorierrori didi precisioneprecisione

deidei numerinumeri floatfloat

Page 48: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

Un Un mondomondo didi soluzionisoluzioni

Page 49: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

physXVRphysXVR hello worldhello 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 fisicaCrea il manager della fisica

Imposta i parametri Imposta i parametri temporalitemporali

Imposta altri parametriImposta altri parametri

Inizia la simulazioneInizia la simulazione

Aggiornal la posizione degli Aggiornal la posizione degli oggettioggetti

Disegna gli oggetti con la Disegna gli oggetti con la posizione aggiornataposizione aggiornata

Page 50: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

CreareCreare deglidegli oggettioggetti

UnaUna box:box:

var box = phManager.AddPhObj(posA, orientationA,

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

UnaUna sferasfera::

var sphere = phManager.AddPhObj(posB, posB,

PHX_DYNAMIC, PHX_SPHERE, 10, 12, 0.5);

Un Un piano:piano:

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

PHX_FIXED, PHX_PLANE);

Page 51: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

CreareCreare unauna mesh mesh dada un un oggettooggetto

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

var cookedMeshConvex = phManager.cookConvexMesh(mesh);var cookedMeshConvex = phManager.cookConvexMesh(mesh);

var cookedMeshTri = phManager.cookMesh(mesh);var cookedMeshTri = phManager.cookMesh(mesh);

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

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

o1.linkToMesh(mesh);o1.linkToMesh(mesh);

oppureoppure

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

Page 52: Real Time Physics - percro.sssup.itpercro.sssup.it/marcello/didattica/19_PBM.pdf · Ogni rotazione comunque complessa può essere sempre espressa come una rotazione di un certo angolo

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro RealReal--Time Time PhysicsPhysics

•Le collisioni tra oggetti

concavi non sono supportate

•Oggetti convessi possono

essere create tramite

diverse convex shape

OggettiOggetti convessiconvessi