physically-based modelling

48
Physically-based modelling Ruth Aylett

Upload: others

Post on 20-Oct-2021

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Physically-based modelling

Physically-based modelling

Ruth Aylett

Page 2: Physically-based modelling

Overview

What is it and why do it? Obstacle detection and avoidance Moving and falling

– A bit about vectors

Particle systems Solid objects

Page 3: Physically-based modelling

What it is Building in physically accurate behaviour For example:

– Solid objects cannot be walked through– Unsupported objects fall

• In a physically accurate way under gravity– Interacting objects bounce or rebound– Soft or bendy objects flex and deform– Fragile objects break– Liquids flow

Physically accurate models of light and sound

Page 4: Physically-based modelling

Why use PBMs?

Autonomy– objects should act and react in a virtual

world as they would in the real world• if you drop a rubber ball it should fall and

bounce• if you drop a glass it should fall and smash• if you drop a jelly it should fall and wobble

– this automation is useful in animation, butit is vital in virtual environments

Page 5: Physically-based modelling

Why use PBMs?

Interaction– for haptic devices physical forces are

required for input and output– Virtual assembly would be odd without it– a good PBM can make interaction feel

more real• may lead to more realistic interaction between

the user and the environment• e.g. vehicle physics in simulators and games

Page 6: Physically-based modelling

Why use PBMs?

Presence– better interaction and autonomy are more

likely to achieve a suspension of disbelief– increased visual realism

• erosion and weathering• physically based rendering of paints & pigments

Page 7: Physically-based modelling

Why use PBMs?

Get answers through experimentation– interactive– safe– accurate (potentially) enough to take

measurements– examples

• virtual wind tunnel• civil engineering structural models

Page 8: Physically-based modelling

Problems with PBM’s

VEs must run in real time Some physics models are extremely

computationally intensive, e.g. fluid dynamics– SO: get a faster computer– OR: reduce the accuracy of the simulation (not

always acceptable) Like photo-realism, it has a downside

– ‘Nearly right’ may be worse if it raisesexpectations

– ‘Real’ physics may complicate interaction

Page 9: Physically-based modelling

Collisions

A requirement for use of PBMs Three stages:

– Detecting collision• Not physical modelling but graphics algorithms

– Determining exact location of collision– Generating response to collision

• Where using a physical model helps a great deal

Detection required for haptic interaction– Can be thought of as haptic clipping

Or agents that grasp objects or each other

Page 10: Physically-based modelling

Exact collision detection

Which polygons intersect?– Exactly where do they intersect?

Make a pairwise piercing test betweenall polygons in the scene?– Computationally infeasible

Would like to exclude polygons thatcannot intersect

Page 11: Physically-based modelling

Approximate collisiondetection

Uses a bounding box– A simple geometrical

object roughlyrepresenting thevolume of a realobject’s geometry.

– As small as possiblewhile still enclosingall vertices of theobject.

Page 12: Physically-based modelling

Bounding volumes - 1

Trade-off between speed of applicationand accuracy of boundary

Various choices:– Spheres

• Very quick to set up• Especially simple intersection test depending

only on radius r and centre v (a vector x,y,z):– Non-overlapping if:– (v1 - v2).(v1 - v2) > (r1 + r2)2

• Not especially accurate

Page 13: Physically-based modelling

Bounding volumes - 2

– Axis-aligning bounding boxes (AABB)• Aligned to axes of world: quite easy to set up• As objects rotate may become pretty inaccurate

– Object-oriented bounding boxes (OBB)• Aligned to main axes of object and move with it• Herder to set up since must translate into

object coordinate space• But more accurate as a result

Page 14: Physically-based modelling

Detecting collision

Project bounding box along axes of worldcoordinate system– If all three projection intervals overlap there is a

collision Scene coherence

– Objects do not move much between frames– all fixed size bounding boxes projected onto world

coodinate system at start– Sort interval list and create overlap pairs– Traverse sorted lists at each frame– Collision detection is O(n) for n objects

Page 15: Physically-based modelling

Bounding volume hierarchy

Combine approximate and exact tests Extend the bounding volume idea:

– Associate each node of a tree with subsetof primitives

– With a bounding volume for this subset– Use BVs as simplified surface

representation for collision test

Page 16: Physically-based modelling

Line-based obstacle detection

Useful for autonomous agents– Carry out their own obstacle avoidance

Project line (s) and test for intersectionwith polygons– Similar to infra-red sensors on robots

Uses higher-level knowledge aboutobjects in scene

Page 17: Physically-based modelling

Vectors Many quantities are described by one

value (a scalar) Vectors combine both magnitude and

direction– in 3D, vectors have x, y & z components– can also have n-dimensional vectors with

n components

Page 18: Physically-based modelling

Vector & scalar quantities

Vector quantities– velocity– acceleration– force– position (a vector

which starts at theorigin)

Scalar quantities– mass– length– area– time

Understanding the use of vectors andscalars is vital for creating PBMs

Page 19: Physically-based modelling

Vector notation

To differentiate between scalars andvectors we normally underline vectorvariables:

area a (scalar)velocity v (vector)

Page 20: Physically-based modelling

Direction vectors

To calculate the vector that goes from p1 top2 (the direction vector)– simply subtract p1 from p2

– the result is a vector, v

v = p2 - p1vx = p2x - p1x

vy = p2y - p1y

vz = p2z - p1z

Z

Y

X

p2

p1

v

Page 21: Physically-based modelling

Direction vectors

Example:

p1 = {1, 5, 4}p2 = {7, 6, 3}

v = {7-1, 6-5, 3-4}= {6, 1, -1}

Page 22: Physically-based modelling

Direction vectors

If we wish to represent any point alongthe vector between p1 and p2– start at the start point (p1)– add some fraction (λ) of v

x = p1x + λvx

y = p1y + λvy

z = p1z + λvz

Page 23: Physically-based modelling

Adding vectors

By adding 2 vectors together,we can get a direction vectorfrom the start of v1 to the endof v2

v3x = v1x + v2x

v3y = v1y + v2y

v3z = v1z + v2z

p2

p1

v1

p3v2

v3

Page 24: Physically-based modelling

Scaling vectors

Multiplying a vector, v , by a scalar, s The result is a vector with the same

direction, but the length is scaled

v2x = sv1x

v2y = sv1y

v2z = sv1z

v1

v2 = sv1

Page 25: Physically-based modelling

Modulus (length) of a vector

The modulus, or length, of a vector can becalculated using Pythagoras’ theorem

length = sqrt (x2 + y2 +z2)example:

v = {2, 5, 9}|v| = sqrt (22 + 52 + 92)

= sqrt (4 + 25 + 81)= sqrt (110) = 10.488

H2 = A2 + B2

HA

B

Page 26: Physically-based modelling

Normalised (unit) vectors

Sometimes we wish to have only the directionof a vector for use in calculations

To normalise (calculate a unit vector) wesimply divide a vector by its length, giving thesame direction, but a length of 1.0

example: v = {2, 5, 9} vn = {2/10.488, 5/10.488, 9/10.488}

= {0.190694, 0.476735, 0.858124}

Page 27: Physically-based modelling

Direction Cosines

We can also represent a unitvector as cosines of the anglesmade between the vector andeach positive axisvn = {0.190694, 0.476735, 0.858124}

= (cos α, cos β, cos γ)

α = cos -1 0.190694 = 79.00o

β = cos -1 0.476735 = 61.53o

γ = cos -1 0.858124 = 30.89o

Z

Y

X

v

α

Page 28: Physically-based modelling

Dot (scalar) products

The dot product of 2 vectors can becalculated, producing a scalar

u . v = ux vx + uy vy + uz vz

if u and v are perpendicular, u . v = 0 if u and v are parallel, u . v = 1

Page 29: Physically-based modelling

Angle between 2 vectors

To calculate the angle, θ,between 2 vectors, we usethe Cosine Rule

Using the cosine in the planeof the triangle

|c|2 = |a|2 + |b|2 - 2 |a| |b|cos θ

b

a

Page 30: Physically-based modelling

Cross (vector) products

Given 2 vectors a and b , we cancalculate a vector, c , that isperpendicular to a and b

c = a x b = ( ay bz - az by ,

az bx - ax bz ,

ax by - ay bx )

Page 31: Physically-based modelling

Solid Objects

Rigid bodies– particles– extended masses

Collision response Deformable objects

Page 32: Physically-based modelling

Newton’s Laws of Motion

Newton’s first law– if the forces on an object are balanced then its

acceleration will be zero– if the forces are unbalanced then the object will

accelerate, changing its velocity Newton’s second law

– if the forces are unbalanced, the resultingacceleration depends on:

• the object’s mass• the forces applied to the object

Page 33: Physically-based modelling

Newton’s Laws of Motion

– The second law is expressed by theequation

f = ma

Newton’s third law– For every action there is an equal and

opposite reaction

Page 34: Physically-based modelling

Mechanics

If acceleration, a, is constant over atime, t, we can derive some equationsthat govern motion

If the time, t, is short enough we canassume the acceleration to be constant

Page 35: Physically-based modelling

Mechanics

Acceleration a = v - u t

orv = u + at

where:u is the initial velocityv is the final velocity

Page 36: Physically-based modelling

Mechanics

Displacement, ss = t * u+v

2giving:

s = ut + 1/2 at2

and:v2 = u2 + 2as

Page 37: Physically-based modelling

Mechanics

If the only force that is acting is gravity(an acceleration of 9.81 ms-2)

s = 1/2 gt2

Page 38: Physically-based modelling

Moving

Implemented graphically asinterpolation between frames– However linear interpolation (e.g. X3D)

clearly not physically correct in most cases– Acceleration produces non-linear motion– Use Newtonian mechanics to calculate

displacement under acceleration

Page 39: Physically-based modelling

Modelling a particle

With Newton’s equations of motion cansimulate motion of a particle

Particles are an ‘ideal’ concept– They do not account for a distribution of mass

• it is all focused at one point– The simulation will lack some accuracy– These equations do not account for aspects such

as friction and spin Is a bouncing ball a particle?

Page 40: Physically-based modelling

Modelling a particle To model the motion of a particle with these equations, we

use the following process for each frame of the simulation

Calculate forces acting on the particleCalculate the acceleration of the particleCalculate the new velocity of the particle

(include drag here)Calculate the new position of the particle

Page 41: Physically-based modelling

Extended bodies

When a force is appliedto an object with extent(i.e. not a particle) theobject’s movement willconsist of– translation– rotation

force

Page 42: Physically-based modelling

Extended bodies

We consider the induced motion as twoseparate components– A force acting on the centre of mass of the

object, inducing motion as if it were aparticle

– A torque (rotational force) acting about aparticular axis

Page 43: Physically-based modelling

Extended bodies In order to calculate the rotational

components, we need to understand thedistribution of the mass of the object withrespect to its centre of mass

We measure this distribution with momentsof inertia– For symmetrical bodies we require 3 moments of

inertia, one about each axis– For asymmetrical bodies we require an inertial

tensor consisting of 9 components

Page 44: Physically-based modelling

Extended bodies Say we consider a rigid body to consist

of an infinite number of particles– Then a moment of inertia is just the sum of

the mass of each particle weighted by thesquare of the distance to each axis:

Ix = ∫ (y2 +z 2) dm

Iy = ∫ (x2 +z2) dm

Iz = ∫ (x2 +y2) dm

Page 45: Physically-based modelling

Extended bodies

Symmetrical bodies– A sphere, with radius r and mass m

Ix = Iy = Iz = 2/5 mr2

– A cylinder ,with radius r and height h,where the z axis is the along the long axisof the cylinder

Ix = Iy = 1/4 m (r2 + 1/3 h2 )Iz = 1/2 mr2

Page 46: Physically-based modelling

Extended bodies

– A box, with sides a, b and c along the x, y and zaxes respectively

Ix = 1/12 m (a2 + b2)Iy = 1/12 m (a2 + c2)Iz = 1/12 m (b2 + c2)

The box formulation is very useful as you canoften approximate an object to its boundingbox, providing a simplified (but less accurate)solution

Page 47: Physically-based modelling

Extended bodies

For asymmetrical objects we must alsocalculate the products of inertia– Then assemble the inertial tensor (a 3 x 3

matrix) that describes the asymmetricdistribution of mass

Page 48: Physically-based modelling

Extended bodies

The translational components of motionare defined with the same equations forparticle motion

The rotational component relates– angular acceleration, mass, torque