cs 231 procedural animation - ucrvbz/cs231s09/lecture7-09.pdfcs 231 procedural animation procedural...

Post on 21-Apr-2020

21 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

CS 231

Procedural Animation

CS 231

Procedural Animation

Procedural Animation

Rule based animation

Particle systems

Free-form deformation

2

Procedural Animation

Rule based animation that changes/evolves over time.

Types of procedural systems:Function-based

Animating with noise

Grammars and fractals

Procedural Animation

Function-basedAnimating with mathematical rules

sine, cos, exp, ln, etc.Often depends on geometryPlay with this in MEL!

3

Procedural Animation

Animation example with kinematics

Procedural motionHip, knee, ankle

Rules turn on and offprescribed curves(scaled sin,cos) tocreate walk cycle

Animating with noise()

Perlin 1985 “invents” noise

What is noise()?

A 'random' function that has statisticalproperties perceived by the human visual system to include 'appropriate' detail at a variety of scales.

4

Animating with noise()Character animation a la Perlin

Use noise and sinusoid functions tocreate layerable, life-like animations

Behaviors built from low-level actions

Layered and transitions allow directablemotions

Animating with noise()Results:

5

Animating with noise()Character actions

A1 = Shoulder ( sin(t) 0 sin(t) )...Hip ( noise(t) 0 noise(t) )

A2 = Shoulder ( 0 0 noise(t) )...Hip (sin(t) sin(t) sin(t) )

Animating with noise()

Noise adds lifelike feel to models and movement

Powerful tool in layering and combining

Must model constraints explicitly

Animators skill play a heavy hand in success

6

Animating with noise()Results:

Particle systemsAnimating complicated systems withmany small elements and simple rules

Very common method for doing many effects: water spray, explosions, fireworks

Rules can include:Distribution rateMovementColor, size, shapeLife span, age-related changes

7

Particle systemsMoving particles

(X, V)

Particle dynamics

Newtonian particles: f = m a a = dv/dt = d2x/dt2

Given f, find the position x so we integrate

Can use a simple approximation:

vt+1 = at ∆t + vtxt+1 = vt ∆t + xt

Accuracy is not as important as effect!

8

Particle systems

for each video frame{

generate new particles;remove old particles;for each particle

{ resolve forces by vector addition;calculate a, v, x;apply rendering;

}}

“Wrath of Khan” – the first particle effects in film

Many particle systems starting at different times to simulate the flames spreading

In total around 750,000 particles

9

“Wrath of Khan” – the first particle effects in film

“Wrath of Khan” – the first particle effects in film

10

Particle systems – Movement

Applying an (force) acceleration to the particles acceleration types include:

Random accelerations Acceleration toward/away from a point Acceleration toward/away from a line Spirals, Vortices, Tornadoes

Particles move in a coherent fashionto produce overall effect

Other prescribed motions (sin(t), etc.)

Bouncing off a plane or other surface

Collision detection and collision resolution.Damping during collision, other richer behavior.

A plane is an easy surface with which to collide:if (z < o) velocity_z = -1*coef_restitution

Simple water-like effects can be created from particles bouncing off of objects.

Particle systems – Collision

11

Particle systems – Rigging to kinematic model

Starting from particle,"rig" follows

Procedurally add walkcycle based on

velocityturning radius

May use IK

Particle systems – Rigging to kinematic model

12

Particle systems – Results

Very fast – many particles

Often in realtime (games)

Large range of effects

Not great for highly ordered motionsor complex objects

Free-form deformationEmbed an object in a deformable region of

space.Each point of the object has a unique

parameterization that defines its position in the region.

When the region is altered, causing recalculation of each points’ new positions based upon their initial parameterization.

13

What is “Free-Form” ?

Parametric surfaces are free-form surfaces.The flexibility in this technique of deformation

allows us deform the model in a free-form manner.

Introduction Deformation of the lattice then implicitly

defines a deformation of the space.Track positions of key points within the

deformed sequence of lattices.

14

- Compressive bulging (e.g. muscles)- Folding and stretching (e.g. skin)- Draping

Physical Phenomena

Contortion for Expression- Anthropomorphic form (e.g. Aladdin’s carpet)- Facial gestures

Introduction

Skeletal Deformation

15

Interior angle bisectorsPerpendiculars at end points

Skeletal Deformation

d

L

s

Get object

Draw polyline

Map vertices to polyline

Warp polyline

Reposition verticesto polyline

Skeletal Deformation

16

Skeletal Deformation

Grid Deformation

Overlay 2D grid on top of object

Map object vertices to grid cells (create local coordinate system)

User distorts 2D grid vertices

Object vertices are remapped to local coordinate system of 2D grid by using bilinear interpolation

17

Grid Deformation

0.5

0.8

For each vertexIdentify cellLocal u,v coorindate

Grid Deformation

18

Bilinear interpolationPu0 = (1-u)*P00 + u*P10Pu1 = (1-u)*P01 + u*P11Puv = (1-v)*P0u + v*P1u

P00

P01

P01

P11

Pu0

Pu1

Grid Deformation

Grid Deformation

19

Grid Deformation

Free-Form Deformations

(not necessarily mutually perpendicular)S

T

U

Define local coordinate system for deformation

20

FFD - register point in cell

S

T

U

s = (TxU) . (P-P0) / ((TxU) . S)

TxU U

S

T

P

P0

((TxU) . S)(TxU) . (P-P0)

P = P0 + sS + tT + uU

FFD - register point in cell

21

(not necessarily mutually perpendicular)

FFD - register point in cell

FFD - move and reposition

Move control grid points

Usually tri-cubic interpolation is used with FFDs

Originally Bezier interpolation was used.

B-spline and Catmull-Romm interpolation have also been used (as well as tri-linear interpolation)

22

Example of FFD

It is originally a cylinder. Red boundary is FFD block embedded with that cylinder

Move control points of each end,and you can see cylinder inside also changes.

Move inner control points downwards

Final shaded version

23

Examples

Hierarchical FFD

The original lattice is deformed by moving one or more of its vertices.

The deformed lattice is then refined n times.Each point is used to obtain the corresponding cell.Calculate position for each deformed point according to the parameters associated with the original cell.

24

Hierarchical FFD

Result (1/3)

Deform a disk with a star-shaped lattice.

25

Result(2/3)

Result(3/3)

Deform a monster’s arm

top related