interaction with virtual environments - percro ?· interaction with virtual environments ... molto...

Download Interaction with Virtual Environments - PERCRO ?· Interaction with Virtual Environments ... Molto simili…

Post on 17-Dec-2018

212 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

Interaction with Virtual Environments

15th May 2012 Physical Based Modeling

Emanuele Ruffaldi

e.ruffaldi@sssup.it

mailto:e.ruffaldi@sssup.it

David Mumford

Physically Based Modeling

What does it mean?

In Engineering we always do PBM

But PBM is being used in:

Virtual Reality

Computer Graphics

Movies

Visualization

Animation

Modeling the World

Same thing, multiple ways of modeling it

videos/sofa-chains-xvid.avi

Entities of Physical Based Modeling

Rigid Body Simulation

Deformable Body

Simulation

Fluids Particle Systems

Physical Phenomena

Collision Detection

Simulation Architecture

Collision Detection

Collision detection

Contact Management

300 Hz

Haptic device

Haptic Rendering

Control Algorithms

Virtual Coupling

X, R

Fr, Tr

Simulation

Contact response

Rigid Body Simulation

X,R

Fc, Tc

F,T

-Fc, -Tc

1 kHz

C

C

Graphics

50 Hz

X,R

PARTICLE SYSTEMS

Particle Systems

Modeling the World with Discrete entities

For some entities it is the natural choice

Smoke

Natural Phenomena

Original Paper

R.W Hocknew and J.W. Eastwood. Computer Simulation Using Particles. Adam Hilger, New York, 1988.

First from Star Trek II Genesis http://www.youtube.com/watch?v=QXbWCrzWJo4

http://www.youtube.com/watch?v=QXbWCrzWJo4

A Particle

A discrete entity in our World

Described by position, mass, and other means

Temperature, Age, or other properties

Just make the particle move

Particle Simulator

Manage the State of the Particles

Compute the Force acting over the Particles

particles time

x v

Simulator

Particle forces m

solver

Simulator Phases

Zero Forces

Compute Forces

Handle Collision Detection

Update States

Compute Time Step

Init

Forces acting over a Particle

Which types of forces?

Constant Forces gravity

Position-Time Forces force fields

Velocity - drag

Interaction - spring

Spring Forces

Implementing Force Fields

Force Fields as Black Boxes

Just plug them into the Simulator

Compute the Force given the particle at given State

The Simulator Loop Deriv becomes:

1. Clear Force Accumulators

2. Compute Forces for Every Force Field

3. Return to Solver

Handling Collisions

Simple Computation of Collision

Discussion on Collision Detection Pipeline with Rigid Bodies

Handling Collisions

Check for Collision

Collision Cases

Moving along the wall

Moving away

N

V0

V1

Particle Generation

For some Phenomena Particles are being generated

Particle Emitters

Constrained Dynamics

Masses and Springs are very flexible

It is difficult to make stiff things

Alternatives

Weak Spring

Instability

Example of Stiff System

RIGID BODY MOTION

Rigid Body Particles

r i (t) = R(t)pi + x(t)

x(t)

pi

State Space of Rigid Body

ddt

0

BB@

x(t)

q(t)

P(t)

L (t)

1

CCA =

0

BB@

v(t)12! (t)q(t)

F (t)

(t)

1

CCA

0

BB@

x(t)

R(t)

P(t)

L (t)

1

CCA

0

BB@

x(t)

q(t)

P(t)

L (t)

1

CCA

L(t) = R(t)I bodyR(t)T ! (t) = I (t)! (t)

P(t) = m _x(t)

COLLISION DETECTION

Collision Detection

The geometrical techniques that allow to manage interaction between objects in a Virtual Environment

Collision Response manages the computation of the effects of the collision in the simulation

Feature: Computational Load

Realism issues expressed by Latency and Accuracy

Heavily based on geometrical model

http://www.youtube.com/watch?v=tT81VPk_ukU

http://graphics.cs.cmu.edu/djames/bdtree/niagara_divx.avihttp://www.youtube.com/watch?v=tT81VPk_ukU

Application Areas

Robotics

industrial, medical, spatial

Path Planning

Simulation

Physics in Video Games

Virtual Prototyping for CAD

Virtual Environments

Extremal Points and Local Minimal Distance

Local Minima Distance

General Mathematical approach for computing distance between two objects

We can easily compute it for two spheres

Result is the two pairs of points that are nearest

Computationally intensive for non implicit objects

Primitives and Tests

Ray Intersection Point

Distance Distance Intersection

Intersezione sfera-raggio

Segmento

Sfera

Intersezione

Lequazione precedente ha tre casi per le soluzioni di t, che deve avere

valore tra 0 ed 1:

Nessuna intersezione

Raggio tangente

Intersezione

Intersezione Sfera Sfera

La distanza tra due sfere si ottiene dalla distanza dei due centri:

Se la distanza e negativa allora le due sfere si intersecano in due punti

oppure una delle sfere e dentro allaltra

Il volume delle due calotte di intersezione vale

Intersezione Sfera Sfera in movimento

Date due sfere con velocita v0 e v1 per un tempo t compreso tra 0 ed 1 la

distanza dei centri e:

Listante di contatto si ottiene risolvendo:

Un modo alternativo [Gomez99] consiste nel considerare una delle sfere ferma e

trasformando una delle sfere in un punto:

CA CB rA+rB

CA

vA vB

vB - vA

CB

Intersezione Triangolo - Raggio

1. Calcolare lintersezione P0 del raggio con il piano del triangolo 2. Testare se il punto P0 e dentro al triangolo usando le coordinate

parametriche Nota: questa funzione e fornita da XVR con il metodo IsColliding di CVmObj

IsColliding(from, to, &ContactPoint, & ContactNormal, & TriangleID, & ComponentID, NoHidden)

Piano del triangolo

Intersezione con il raggio

Alternativamente si puo usare il prodotto scalare triplo che testa

lintersezione senza calcolare prima il punto

Distanza Punto - Triangolo

Dipende dalla regione di Voronoi giusta

F

E3

E1

E2

V3

V2 V1

1. Proiettare il

punto P sul

piano del

triangolo

2. Testare se il

punto e

dentro al

triangolo

3. Proiettare il

punto su

ogni Edge

4. Testare

Edge e

Vertici

Intersezione Triangolo Triangolo 1. Compute plane of triangle B 2. False if all vertices on A are on same

side of plane B 3. Compute plane of triangle A 4. False if all vertices on B are on same

side of plane A 5. Compute line of intersection between

two planes 6. Compute intervals for both the triangles

on the line 7. True if intervals overlap

Brute Force

Collision Between all triangles of two Meshes

For each triangle in mesh 1

For each triangle in mesh 2

Test mesh-mesh

Too complex computation

Bounding Volume Hierarchies

Bounding Volume Hierarchies

Bounding Volume Hierarchies

Bounding Volume Hierarchies

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

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

Collision between BVH

Hierarchical collision between two hierarchies

BVH oggetto 1

A

B C

A

B C

BVH oggetto 2

B C

B C A

A

Which Bounding Volumes?

Axis Aligned Bounding Boxes

AABB, scatole con facce parallele ai piani individuati dai tre assi principali

Il piu piccolo volume convesso (di questa forma) contenente l'oggetto.

Costruzione: ricerca dei valori di minimo e di massimo delle coordinate dei

vertici delle primitive dell'oggetto.

Ix = [xmin, xmax], Iy = [ymin, ymax], Iz = [zmin, zmax]

Definiscono univocamente le dimensioni dell'AABB [Ix * Iy * Iz].

Bounding Spheres

La piu piccola sfera che racchiude il volume delloggetto

Oriented Bounding Boxes

Parallelepipedi con gli assi

orientati. Seguono la

geometria delloggetto quindi

aderiscono piu degli AABB

Per il calcolo si usano metodi

basati sulla distribuzione

statistica dei vertici

delloggetto (Principal

Component Analysis)

Generalizzazione: Bounding Boxes. Molto simili agli OBB, differenti per la politica in cui

viene decisa lorientazione

Discrete Orientation Polytopes

DOP

Poliedri convessi, con facce

delimitate da semispazi con

vettori normali uscenti da un

insieme piccolo ma fissato di k

orientazioni discrete.

Lobiettivo e approssimare al

meglio la convex hull (il

guscio convesso minimo che