Animation CS 551 / 651 Chenney/Forsyth Paper Chenney & Forsyth, 2000

advertisement
Chenney & Forsyth, 2000
Animation
CS 551 / 651
Chenney/Forsyth Paper
Results
Applications
• Atoms: 200 spheres and 100 water molecules in
divided box
• Cars: 4 multibody vehicles and 400 pendula
• Robots: 20 eight-link manipulators throwing blocks
• Avalanche: 300 rocks tumbling down mountainside
Results
• Note average integration step vs. time between
discontinuities
Results
Atoms for 2 seconds
• Average integration step
– Conservative
advancement
slows down
Results
Atoms for 2 seconds
• Total “work done” per
simulated object
– Retroactive detection
repeats a lot of work
Results
Total time
• 100 atoms
– RD-1/30 = 0.142, TW = 0.147, CA = 1.15
• 200 atoms
– RD -1/30 = 2.61, TW = .388, CA = 4.74
Inspect the title
Sampling
Plausible Solutions to
Multi-body Constraint Problems
What’s the emphasis of this paper?
Randomness
Many details are ignored by simulations
• Randomness will replace these details with something
that is good enough (plausible)
Do you agree?
• A driving simulator with a random approximation to a
bumpy road will better prepare its users for driving on
a real road
Randomness
Multiple paths is a good thing
•
examples
Multiple paths is a bad thing
•
examples
Finding a place for uncertainty
Feed-forward simulations
• Where?
Optimal (goal-oriented) simulations
• What trouble do they cause?
Incorporating Uncertainty
pw (A) = probability animation A would occur
in the world
• non-negative
• finite integral over domain
• unnormalized
Example:
• A ball bounces on flat table i times with
– normal vector mean at 0 degrees
– standard deviation 10 degrees
Introducing constraints
The randomness must not interfere with
constraints
• Examples
• The ball must start here and land there
• The ball must go through this point
• The initial acceleration must be foo
• We now want pw(A | C)
Ball example
Evaluating pw(A | C)
•  prob(bouncei )
i
Constraints
Ball example
Evaluating pw(A | C)
• prob(bouncei )
i
Ball example
Trial and error is bound to fail
• Easy to start with constraint satisfaction and insert
intermediate bounces (but are they plausible)
• Easy to model plausible bounces (but will they satisfy
constraints)
Sampling from pw (A|C) is too difficult
Loosening requirements
pw(A): probability A occurs in real world
p(A): probability A occurs in world with
relaxed constraints (maybe not realistic)
• pc(A) = prob A satisfies constraints
• Removed conditional probability
Ball example
pw(A)
•
pc(A)
•
Gaussian function defined
on final position of ball, d
Ball example
Sampling
• Select animation, A, with high probability
• Select animation, A, from set with high probabilities
Markov Chain Monte Carlo
Markov chain
• Given a sequence of events, the present state is only
dependent on the preceding state and independent of the
previous states
– Only the present influences the future
– The past doesn’t influence the future
– A random walk (why?)
Monte Carlo
• Using random numbers to solve a problem
MCMC for animations
Identify degrees of freedom
• What variables are you looking to solve for?
– Normal vectors on table, friction over surface, …
– The random variables
• Iteratively search for good values of these variables
MCMC Algorithm
Compute p(A0)
Use markov model to perturb
degree-of-freedom values from Ai
Compute p(Ac)
MCMC Algorithm
How likely is change from
parameters used to generate
Ac to parameters used for Ai
Ball example
Transition probability, q
n ball bounces
10 values for
normal (+/- 5)
• First term = prob of choosing particular set of degrees
of freedom to change
• Second term = prob of choosing any particular value
for a degree of freedom
MCMC Algorithm
Key component
• propose ( )
– “designed through intuitive reasoning and
experimentation”
– “use past experience as a guide”
MCMC Algorithm
Provable feature of algorithm
• As i inf, samples are true reflection of probability
distribution of model
• Sampling animation from the set of samples produces
well-understood plausibility
2D Ball
Probability
function
Take the log
2D Ball
Lesson learned about standard dev
 s too small  most animations are improbable
because they don’t land in correct place
 s too large  most animations are probable because
they land within landing region but they miss the exact
spot
Tuning probability function, p(A) is tricky
Bowling
Degrees of freedom
• Ball (diameter, initial position, initial velocity, initial angular
velocity)
• Pin (initial position)
Constraints
• Initial pins up, final pins down
Lesson learned
• If constraints are too strict, iterative perturbations will not
frequently “jump” from one legal animation to another
Rolling Dice
Normal function (for tabletop)
• Example from bouncing ball won’t work
– Nearby points should have similar normals (not
independent)
– Object bouncing in same place should use same normal
each time
• Create “surface” using b-splines
– Degrees of freedom are control point heights, initial pos
– Also use restitution and friction values at control points
Rolling Dice
Lessons learned
• Creating a good proposal algorithm is difficult
• Algorithm finds first constraint satisfying animation (in
one hour) and has hard time jumping to another
satisfying animation (“many” hours)
Rolling Dice
Constraints
• Any position/orientation at any time
Review
What’s easy about this?
• Getting a simulation
• Selecting some degrees of freedom
• Building the MCMC algorithm
Review
What’s difficult?
• Building p(A|C) function
– Tuning bouncing ball standard deviation
– Authors used Gibbs distribution function to assist
• Building proposal function
– Dice example had simple proposal algorithm
Review
What’s difficult
• This is a search problem
– Global vs. local search
– Requires infinite samples to be perfect
² Simulation time and search space size are
realistic constraints on feasibility
Big Picture
How to synthesize animations that
accomplish specific goals
• Keyframing
• Simulation
• Motion capture
Data-driven simulation is a compromise
Next Class
Hodgins, O’Brien, Tumblin. Perception of
Human Motion with Different Geometric
Models.
Download