Interactive_Physically-Based_Simulation_

advertisement
Interactive Physically-Based
Simulation
John Keyser
Department of Computer Science and Engineering
Texas A&M University
MOTIVATION AND BACKGROUND
First, a Little Background
• What do we mean by Physically-based
Modeling/Simulation?
• Why do we do this?
• What is its role in graphics?
Physically-Based Modeling
Physically-Based Simulation
• Modeling, then simulating processes
– Based on physical principles
Physically-Based Modeling
Physically-Based Simulation
• Modeling, then simulating processes
– Based on physical principles
• Basic idea: come up with a model
describing how the environment works
2 x
 g
2
t
Physically-Based Modeling
Physically-Based Simulation
• Modeling, then simulating processes
– Based on physical principles
• Basic idea: come up with a model
describing how the environment works
– Give an initial state
2 x
 g
2
t
Physically-Based Modeling
Physically-Based Simulation
• Modeling, then simulating processes
– Based on physical principles
• Basic idea: come up with a model
describing how the environment works
– Give an initial state
– Using those equations/relationships/etc.
we simulate the results
2 x
 g
2
t
Physically-Based Modeling
Physically-Based Simulation
• Modeling, then simulating processes
– Based on physical principles
• Basic idea: come up with a model
describing how the environment works
– Give an initial state
– Using those equations/relationships/etc.
we simulate the results
• The model does not have to be
real/complete!
– But, we usually assume the physical
principles are those governing the
phenomenon we are modeling
2 x
 g
2
t
Simulating the Real World
• Motivation behind many early computer
applications
– Solving equations from science/engineering
• Physically Based Modeling/Simulation
remains a topic of continued study, on its
own
– Scientific Computing/Computational Science
Why is PBM Part of Graphics?
• Many parts of graphics aim to
replicate/simulate the real world, virtually.
– Rendering: light interaction and sensing
– Modeling: describing real-world geometry
– Animation: behavior
• Goal is to create a visually plausible result
– Sometimes, but not always, want “correct”
result
Graphics Applications
• Offline
– Movies
Star Wars Episode III,
LucasFilm
– Some (limited) science/engineering studies
• Interactive
– Games
– Training Simulators
– Scripting Control
Halo3: Bungie Studios
Simulation in Offline Graphics
• We can create very good results!
– Witness almost any movie
• Still plenty of areas to work on
– Some still require a lot of user
interaction/tuning
– Some methods are unstable
– Some “higher order” effects aren’t handled
– Capturing real-world behavior
– etc.
How is Interactive Simulation
Different?
• Rate of simulation
– Orders of magnitude difference from offline
– Many offline methods are infeasible
• The user can control/adjust what happens
– Feedback loop
– We want the user to be able to direct the
simulation
What is Interactive?
• Action-response cycle
• Frequency needed depends on application
– Control: .1 to 1 Hz
– Smooth video: > 15 to 60 Hz
– Force feedback: ~ 1000 Hz
• Real-time: same rate as in real world
– Not always necessary, desirable, or achievable
What is Control?
• Letting the user specify the behavior of the
simulation
– Many ways to do this
• Control can give a range of “realism”
Goals of My Work
• Improving Interactive Simulation
– Developing methods that capture phenomena at
interactive rates
– Providing user control over simulation behavior
• These still affect offline simulation
– Good interactive models can still be used offline
– Control often applied to offline simulation
GENERAL APPROACH
Physically Based:
Modeling
• Set of defining equations
Simulation
• Method for predicting
future state from current
Improving Performance
Modeling
• Ignoring terms/effects
• Limiting domain
• Proxy objects
• Statistical model
• Phenomenological Model
Simulation
• Larger time steps
• More computing power
• Parallelism
• Hybridization
• Multiresolution methods
• Level of Detail
• Alternative Formulations
Six Examples
• Burning Objects
– Simplified Physical Model, Proxy Objects
• Plant Motion
– Simulation Level of Detail
• Waves
– Domain Limitation, Identifying Global Effect
• Rigid Bodies
– Statistical Simulation
• Piled Objects
– Phenomenological Model, Simulation Control
• Smoke Simulation
– Simulation Control
Conclusion
WAVE SIMULATION
Interactions of Water and
Objects
• Want to simulate the behavior of water
and the objects interacting with water
Wave Simulation
• 3D fluid simulations are expensive
• However, in most applications, the 3D fluid
motion is not needed.
– Only the behavior at the surface is important
• So, simulate waves, instead
– Far simpler equation
– 2D instead of 3D
Wave Particles
• Typical approach: discretize the domain
– Solve equations on grid
• Instead, represent the form of the solution
• Represent the solution using particles
– Represent a local solution to the wave
equation
– Behavior ensures global solution
• Only under certain conditions
– Simulate independently
Wave Particles
• Local Solution to Wave Equation
Local Deviation Function
Wave Particles in 2D
Wave Particles
• Waveform function
– C1 and non-zero in a finite range
– Easy to create wave trains
– Can approximate shapes with larger
wavelengths
– Suitable for circular motion
Wave Particles
• Linear Wavefronts
Blending Function
Expanding/Contracting
Wavefronts
Wave Particles
• Expanding/Contracting Wavefronts
Dispersion Angle
Wave Particle Origin
Wave Particles
• Radial Definition
– If the distance between wave particles < ri / 2
• Maximum error on wave crest < 0.1%
• Maximum error on wave shape < 3%
Subdividing
Wave particle origin
2/3 Dispersion angle
Wave Particles
• Wave particles
–
–
–
–
Collectively represent wavefronts
DO NOT interact
Move independently
Subdivide independently
• Into smaller wave particles
• Die when too small
Water Waves
transverse waves
Water Waves
transverse waves
longitudinal waves
Water Waves
transverse waves
longitudinal waves
water waves
Water Waves
• Gerstner 1802
Wave Particles
• Circular motion is important for
– Realistic wave shapes
– Realistic object interaction
– Realistic wave superposition
Wave Particles
• Vertical deviation
surface
vertices
Wave Particles
• Vertical deviation
Wave Particles
• Horizontal deviation
Wave Particles
• Horizontal deviation
Summary
• Simplified model of the phenomenon
– Waves, not fluid
• The model supports speedups in simulation
– Particles act independently, thus can simulate
in parallel
• Return
SIMULATING BURNING OBJECTS
Fire Simulation
• Fire is very complex process – not fully
understood
– Multiple fluids mixing: fuel, air, exhaust
– Chemical processes
– Pressure changes due to heat
• We create a simplified fire model
– Single fluid
– Simple processes to model combustion, fuel release
– Ignore pressure terms directly; instead introduce
buoyancy force
3-Gases, Single Fluid
• One motion field is used to advect fuel gas and smoke
• Two scalar density fields are used to model fuel and
smoke. For every cell, the unused part is filled with
oxygen.
• One scalar field is used to model temperature distribution
• Same solver is applied with different parameters for
advection of fuel gas, smoke and temperature.
Fuel gas and
smoke
Temperature distribution
around the flame
Three Gas Model: Combustion
d A  D  (d g  d a )
dA : Air density
dg : Fuel gas density
da : Exhaust gas density
C  r min d A , bd g  if
d g
C

t
b
d a
 1
 C 1  
t
 b
T
 To C
t
T>Tthreshold
b: Stoichiometric mixture
r: Burning rate, 0<r1
(burning fuel percentage per second)
T0: Heat output
Example: Fire Simulation
• Result: interactive fire simulator
– Can simulate fire, flame, process interactively
– Also includes object interaction/burning
• Resulting simulation method significantly
simpler than prior approaches.
Simplified/Separated Object
Representations
• In complex simulations, representing objects can
be difficult
– Different simulations want object in different form
– Using one model makes simulation more complicated
– Using multiple models means lengthy conversions, and
synchronization
• Proposed a multi-representation object format
– Use multiple representations of objects
– Treat each independently
– Functions allow asynchronous update/interaction
between different representations
Burning Objects
• In fire simulation, objects play many roles
–
–
–
–
–
Occupy space: influence airflow
Fuel source: releasing heat
Change shape in response to fuel loss
Move around according to dynamics
Rendered for visualization
Multi-Representation Objects
• Different object representations
–
–
–
–
Level set for object structure
Polygonal model for display
Voxelized model for fuel availability
Voxelized model in fluid domain
Multi-Object Representation
• Fuel release from voxel grid:
– Influences level set representation
– Different representations allows ash formation
• Level set can be used to update voxel grid for fluid
calculations
• Level set can be used to
update polygonal model for
display
• Polygonal model can be
used for rigid body simulation
(collision detection)
Deformation by Proxy
• Some objects deform as they burn
• Modeling physics is too complex
• We form a “proxy” object around
the object that will deform
– Map simulation parameters onto
proxy
– Modify proxy in response to
simulation
– Creates a free-form deformation of
underlying object
– Achieve net result by simulating on
simpler object
Bending Burning Matches,
Crumpling Burning Paper
Summary
• Simple combustion model captures burning
behavior
• Simplified model of the burning objects
– Multiple representations capture different
effects
– Proxy object captures primary effect without
low-level model
• Return
LOD SIMULATION FOR PLANT
MOTION
Level-of-Detail Approaches
• If the simulation takes place out of view, we only
need the final state when it’s in view
• If the simulation is less visible (e.g. farther away),
we don’t need it to be as accurate
• So, for things far away/less visible/necessary for
accuracy, we’ll use a simplified representation.
Simulation Level of Detail
• Use less complicated simulation technique
when possible
– Keep track of key information when objects
are out of sight
– Simplify/combine when simulated object is
farther away
• Discrete or Continuous
• Transitions are important
Plant Motion in Wind
• Simulate motion of plants, trees in
response to wind/external forces
– Forces generated at leaves
– Propagate back to branches, affecting other
leaves/branches
– Branches give damping force
Plant Formation from L-system
Method Overview
(simulation only)
Stage I: Precompute
1.
2.
3.
4.
Generate lookup tables describing motion
Create tree structure from L-system
At each parent store simplified branches of the child
Compute error and store distance at a given threshold
Stage II: Runtime
1.
2.
3.
Walk through tree and evaluate equations of motion
At each branch, if stored distance < actual distance
continue with the simplified branch
Smoothly transition between levels of detail
Parent/Child Combination
• Remove middle “vertex”
• Calculate new bend strength and area
• Match amplitude and period
* leaf area directly affects force
Original leaf area
Final area
Original bend
strength 2
Final bend
strength
Original bend
strength 1
Child/Child Combinations
• Combine vertices (can be > 2)
• Average leaf area
• Find new bend strength to minimize error
Original areas
Final area
Original bend
strengths
Final bend
strength
Stage I, Step 3: Branch Simplification
Stage I, Step 3: Branch Simplification
Stage I, Step 3: Branch Simplification
Stage I, Step 3: Branch Simplification
Stage I, Step 3: Branch Simplification
Stage I, Step 3: Branch Simplification
Stage I, Step 3: Branch Simplification
Stage I, Step 3: Branch Simplification
Stage I, Step 3: Branch Simplification
Stage I, Step 3: Branch Simplification
Stage I, Step 3: Branch Simplification
Stage I, Step 3: Branch Simplification
Runtime
• At runtime, determine the distance to the
viewer
– Decide on which simulation LOD to use
• If the necessary LOD is different from
previous, must account for transition
• Note: Simulation LOD is not necessarily
same as geometric LOD.
Stage II: Runtime
Smoothly transition:
• Rendering structures don’t align during simulation
• Need to reduce “popping”
Precomputed mesh
fixed distance
separation
wind
Stage II: Runtime
Smoothly transition:
• Force branches apart
• Try to maintain relative positions and velocities
Gradually force
branches apart
wind
Example – Comparison
Example – Transitions
Summary
• LOD approach allows adaptation to the
timing needs of the simulation
• Good measures for when it is OK to switch
LODs
– Or, how much error is introduced by switch.
• Return
STATISTICAL SIMULATION FOR
RIGID BODIES
Rigid Body Simulation
• Plausible visualization of rigid body
dynamics.
Sony TV Commercial
Nintendo Wii Sport
Disney‧Pixar Toy Story 3
Handle Collisions in
Rigid Body Simulation
• Collision Detection
Handle Collisions in
Rigid Body Simulation
• Collision Detection
• Collision Determination
Handle Collisions in
Rigid Body Simulation
• Collision Detection
• Collision Determination
• Collision Response
Why Speed Up Rigid Body
Simulation?
• Currently, rigid body simulation is pretty fast.
• But, it can still take up a significant part of the
computation budget.
– Large numbers of objects
– Real-time 3D worlds
• Explore whether statistical response is a good
way to speed up discontinuous simulations.
Previous Work
• Simplified Simulation
Simulation Level of Detail (SLOD)
Simulation Level of Detail for real-time animation.
Carlson & Hodgins, ‘97
Model Reduction
Model reduction for real-time fluids.
Treuille, Lewis, & Popovi´c , ‘06
Previous Work
• Simplified collision + dynamically update.
Bounded Deformation-Tree Dynamically simplify the collision model
BD-Tree: Output-Sensitive Collision Detection for
Reduced Deformable Models.
James & Pai, ‘04
Fast Collision Detection between Massive Models using
Dynamic Simplification.
Yoon, Salomon, Lin, & Manocha, ‘04
Previous Work
• Data Driven animations/simulations
Motion Retargeting
Retargetting Motion to New Characters.
Gleicher ‘98
Data-driven Mesh Animation
Mesh Ensemble Motion Graphs:
Data-driven Mesh Animation with Constraints.
James & et al. ‘05
Our idea
•
•
•
•
Record & Reuse.
Record statistical features at collision.
Reuse the features to mimic the behavior.
Save computation to boost performance.
Precompute
Our idea
•
•
•
•
Record & Reuse.
Record statistical features at collision.
Reuse the features to mimic the behavior.
Save computation to boost performance.
Simulation
How to Collect Features?
• Run scenarios.
– In one scenario, we drop one rigid body to
one plane.
• Collect features at first collision.
How to Collect Features?
• We sample a series of scenarios to cover most
possible simulation cases.
– E.g. Different directions of initial velocity.
How to Collect Features?
• Run each scenario several times with different
initial orientation.
μ : mean value
σ : standard deviation
Statistical feature tables
Goal
• Replace the most expensive part of a
simulation with a statistically-derived response.
• Use a single sphere as the collision model.
• The size of the sphere?
• Collision response?
?
Statistical Simulation Overview
Feature 1: Collision Height
• Distance from center of mass to the plane at collision.
Precompute
• Use the ratio of |Ω-|/|V-| to sample scenarios.
• Perform scenarios, record collision heights, and save it.
Simulation
• Query radius by |Ω-|/|V-|.
• Update the radius every time step.
V-
Ω-
radius =
H
Collision Height
Collision Response?
• Now, we can use a sphere as collision
model.
• But, we miss the contact points…
– Bad collision response.
• To make it respond like the original object,
we need response data.
?
Feature 2: Response velocities
• Used to replace collision response at simulation time.
Precompute
• Sample in 2D, but reuse in 3D.
• Sampling is controlled by four parameters.
Feature 2: Response velocities
Precompute
• Treat the target as a rigid object and
a particle respectively.
+
+
• Store 𝛺𝑅𝑖𝑔𝑖𝑑
and 𝑉𝑅𝑒𝑙𝑎𝑡𝑖𝑣𝑒
.
+
𝑉𝑅𝑒𝑙𝑎𝑡𝑖𝑣𝑒
+
𝑉𝑅𝑖𝑔𝑖𝑑
+
𝑉𝑃𝑎𝑟𝑡𝑖𝑐𝑙𝑒
+
𝛺𝑅𝑖𝑔𝑖𝑑
V-
Ω-
Feature
2:
Response
velocities
Simulation
• Compute correspondent indices to retrieve the
μ and σ of response data.
• Build a Gaussian distribution based on μ and σ.
• Generate random response data based on the
distribution.
μ&σ
+
𝛺𝑅𝑖𝑔𝑖𝑑
+
𝑉𝑅𝑒𝑙𝑎𝑡𝑖𝑣𝑒
Feature 2: Response velocities
Simulation
• Response velocity in simulation time
–
–
𝑉+
𝛺+
=
=
+
𝑉𝑅𝑒𝑙𝑎𝑡𝑖𝑣𝑒
+
+
𝑉𝑃𝑎𝑟𝑡𝑖𝑐𝑙𝑒
+
𝛺𝑅𝑖𝑔𝑖𝑑
• Object-Object?
– Treat as two object-plane
collisions.
+
𝑉𝑅𝑒𝑙𝑎𝑡𝑖𝑣𝑒
+
𝑉𝑅𝑖𝑔𝑖𝑑
+
𝑉𝑃𝑎𝑟𝑡𝑖𝑐𝑙𝑒
+
𝛺𝑅𝑖𝑔𝑖𝑑
V-
Ω-
Feature 3: Resting Configuration
Precompute
• Collecting most common resting
configurations.
– Resting height
– Resting normal
Feature 3: Resting Configuration
Simulation
• Only apply resting control when
– sufficiently low momentum.
– close to the ground.
• Determine the nearest resting
configuration.
– Smallest rotation angle from current
configuration.
• Gradually add torque and modify radius to
approach the resting configuration.
Resting Control
L-Resting
100 Armadillomen
300 L-Shapes
Performance Comparison
Impulse
Impulse (low-res)
Impulse (7-sphere)
Statistical
2503 Vertices
4698 Faces
99 Vertices
194 Faces
7 Spheres
1 Sphere
Swift++
Sweep & Prune
Swift++
Sweep & Prune
Sphere-Sphere CD
Sweep & Prune
Sphere-Sphere CD
Sweep & Prune
Video Comparison
Performance Comparison
10 bunnies
100 bunnies
100.00%
100.00%
26.31%
Impulse
Low-Res
20.79%
11.05%
2.54%
7-Sphere
Statistical
Impulse
Low-Res
1,000 bunnies
3.37%
1.21%
7-Sphere
Statistical
10,000 bunnies
100.00%
100.00%
64.08%
Impulse
8.79%
1.00%
0.75%
Low-Res
7-Sphere
Statistical
7-Sphere
Time per frame in %
The shorter, the faster.
Statistical
Limitations
• 6-8 hours precomputation for a single
object.
• Object-object interaction is approximated
by object-plane data.
– Some artifacts
• Only limited performance improvement
over 7-spheres case.
Summary
• Statistical model captures broad behavior
• Provides major speed improvements
• Return
PILING OBJECTS
Piles of Objects
• Interesting phenomena!
By Hope Shen
http://www.flickr.com/photos/hypermodern/
http://www.flickr.com/photos/wainwright
Simulating Piles of Objects
• Rigid body simulation.
• Model contact.
• Model friction.
• One of the most timeconsuming and difficult parts of
rigid body simulation
• Frictional contact force
computation  NP-Hard
Simulating Piles of Objects
• It’s not predictable
– Objects do not pile up as we thought.
Simulating Piles of Objects
• It’s not controllable.
friction coefficients?
What else can we do?
• Previous approaches focus on details:
– friction
– stability
– speed
• We want to look at the bigger picture:
– How can we control the shape of piles?
– Can we improve the speed, too?
Types of Stacking Piles
Random Piles
Structured Piles
http://www.flickr.com/photos/marcwathieu/
http://www.flickr.com/photos/chachlate/
Types of Stacking Piles
Random Piles
Structured Piles
http://www.flickr.com/photos/marcwathieu/
http://www.flickr.com/photos/chachlate/
Angle of Repose
• Maximal stable slope of a random pile.
http://www.geology.um.maine.edu/geodynamics/
Goal
• Generate piles.
• Specify the shape by angle of repose.
• Consider the max stable slope when a pile is growing.
– soft constraint
• Base on a physically-based simulator.
– Small-scale behavior is realistic
• With a Phenomenological simulation control:
– Simulate the piling phenomenon itself
– Captures the larger-scale behavior plausibly
Phenomenological Simulation
Control
• Spatial data structure
– Guide the pile growth
• Heuristic-based algorithm
– Strategically make objects “sleep” or “wake”
Ideas behind our pile modeling
• Spatial data structure:
– conical shape.
– layered.
– density information.
• Stopped objects:
– contribute to the volume of the shape.
– Increase performance.
Piling Structure
Num: N
Vol: v
• Given
– Number of objects
– Volume per object
– Angle of repose
N v 
• We know the radius
and height of an ideal
pile.

3
h
α
r
r 3 tan 
Piling Structure
• Cut the structure to
k layers.
D: Bounding box diagonal
– Track density
information
– No object span more
than 2 layers
– A cone  Cylinders
h
α
ri
Piling Structure
• Cut the structure to k
layers.
D: Bounding box diagonal
– Track density
information
– No object span more
than 2 layers
– A cone  Cylinders
h
α
ri
Track the Density
• Precompute the initial pile structures.
• Track the density of each layer every frame.
– ci= vi / vobj (Capacity of each layer)
– mi (Number of object in layer i)
– ρi = mi / ci
h
α
ri
During Simulation
• Keep track of density of each layer
– Grow if layers get too full
– If a more full layer is above a less-full one,
wake objects so they can avalanche
• Put objects to “sleep” as we don’t need to
simulate them
– Saves computation time
– Provides artificial “structure” to the pile
Sleeping Criteria
• Density
ρ=0.3
i  mi / ci
ρ=0.8
( probability to sleep )
Sleeping Criteria
• Closeness to center
d=0.9
d=0
d  max( ri 
p x  p y ,0) / ri
2
2
d=0.2
Sleeping Criteria
• Speed
( 0fast, 1slow)
s  1 /(1 | v |)
s=0.9
s=0.1
Sleeping Determination
• i  d  s > threshold  make the
object sleep.
Show Videos
• Video Link
Performance
• Provide a speedup
– Ranged from 1.6x to 6x in our experiments vs.
no sleeping.
– More limited (but still some speedup) vs. trivial
sleeping.
Summary
• Provide control over simulation
– Get a desired angle of repose, without having
to determine and simulate full friction
• Return
FLUID CONTROL
Fluid Simulation Challenges
• Time-consuming (hours) at high resolution
• Difficult to control/predict due to high
dimensionality and nonlinearity
• Resolution of the simulation affects the
behavior
– Numerical dissipation
– Typical incompressibility enforcement
• Small errors build up into larger changes
Fluid Simulation
Initialize
Fluid Simulation
Initialize
hours of
running
Result
Fluid Simulation
Initialize
hours of
running
Result
feedback
Fluid Simulation
Initialize
in low-res
Fluid Simulation
Initialize
in low-res
Result in
low-res
feedback
Fluid Simulation
Initialize
in low-res
Result in
low-res
feedback
Initialize in
high-res
Fluid Simulation
Initialize
in low-res
Result in
low-res
feedback
Different
Initialize in
high-res
Result in
high-res
Fluid Simulation
Initialize
in low-res
Result in
low-res
feedback
Our method
Initialize in
high-res
Result in
high-res
Previous Work
• Control of fluid systems
– Foster N., Metaxas D.
Controlling Fluid Animation. CGI 1997
Previous Work
• Control of fluid systems
– Foster N., Metaxas D.
Controlling Fluid Animation. CGI 1997
– Foster N., Fedkiw R.
Practical Animation Of Liquids. SIGGRAPH 2001
Previous Work
• Control of fluid systems
– Foster N., Metaxas D.
Controlling Fluid Animation. CGI 1997
– Foster N., Fedkiw R.
Practical Animation Of Liquids. SIGGRAPH 2001
• Particle based control of simulations
– Thürey N., Keiser R., Pauly M., Rüde U.
Detail-preserving Fluid Control. SCA 2006
Previous Work
• Keyframe matching
Treuille A., McNamara A., Popovic Z., Stam J.
Keyframe Control of Smoke Simulation. SIGGRAPH 2003
McNamara A., Treuille A., Popovic Z., Stam J.
Fluid Control Using The Adjoint Method. SIGGRAPH 2004
Previous Work
• Keyframe matching
Fattal R., Lischinski D.
Target-driven Smoke Animation. SIGGRAPH 2004
Previous Work
• Turbulence
Kim T., Thürey N., James D., Gross M.
Wavelet Turbulence For Fluid
Simulation. SIGGRAPH 2008
Schechter H., Bridson R.
Evolving Sub-grid Turbulence For
Smoke Animation. SCA 2008
Previous Work
• Variational Methods
Nielsen M. B., Christensen B. B., Zafar Nielsen M. B., Christiansen B. B.
N. B., Roble D., Museth K.
Improved Variational Guiding Of Smoke
Guiding Of Smoke Animations Through Animations. Eurographics 2010
Variational Coupling Of Simulations At
Different Resolutions. SCA 2009
Our Method
Low-Res Preview
High-Res Simulation
Our Method
Low-Res Preview
High-Res Simulation
Sample at
Match point
Keyframe
Sample
Our Method
Low-Res Preview
High-Res Simulation
Sample at
Match point
Keyframe
Determining
Amount of
Control
Sample
Error
Our Method
Low-Res Preview
High-Res Simulation
Sample at
Match point
Keyframe
Determining
Amount of
Control
Sample
Error
Control Weight
Apply Control
Preview
Match Points
Control weight
r
xi
Sampling Simulation Data
• At a match point, we sample the simulation
using a Gaussian
Sampling Simulation Data
• At a match point, we sample the simulation
using a Gaussian
– scalar property
Sampling Simulation Data
• At a match point, we sample the simulation
using a Gaussian
– scalar property
– vector property
‒ Magnitude & Direction
‒ Angular Momentum
Keyframe Storage
Low-Res Preview
High-Res Simulation
Sample at
Match point
Keyframe
Sample
Keyframe Storage
Low-Res Preview
High-Res Simulation
Sample at
Match point
Keyframe
Sample
Matching in High Resolution
Low-Res Preview
High-Res Simulation
Sample at
Match point
Keyframe
Determining Amount of Control
Sample
Error
Matching in High Resolution
Low-Res Preview
High-Res Simulation
Sample at
Match point
Keyframe
Determining
Amount of
Control
Sample
Error
Apply Control
Matching in High Resolution
Low-Res Preview
High-Res Simulation
Sample at
Match point
Keyframe
Sample
Apply Control
How?
Determining
Amount of
Control
Error
Matching in High Resolution
Low-Res Preview
High-Res Simulation
Sample at
Match point
Keyframe
Determining
Amount of
Control
Sample
Error
Apply Control
Matching in High Resolution
w-Res Preview
High-Res Simulation
Amount of increase at cell
Keyframe
mining
unt of
ntrol
Sample
Spatial Blending Function
Error
Matching in High Resolution
w-Res Preview
High-Res Simulation
Keyframe
Sample
mining
unt of
ntrol
Error
Matching in High Resolution
Low-Res Preview
High-Res Simulation
Sample at
Match point
Keyframe
Determining
Amount of
Control
Sample
Error
Apply Control
Matching in High Resolution
Low-Res Preview
High-Res Simulation
Sample at
Match point
Keyframe
Determining
Amount of
Control
Sample
Error
Apply Control
Matching in High Resolution
Low-Res Preview
High-Res Simulation
Sample at
Match point
Keyframe
Determining
Amount of
Control
Sample
Error
Apply Control
Matching in High Resolution
High-Res Simulation
Matching in High Resolution
High-Res Simulation
Matching in High Resolution
High-Res Simulation
Matching in High Resolution
High-Res Simulation
Matching in High Resolution
Low-Res Preview
High-Res Simulation
Sample at
Match point
Keyframe
Determining
Amount of
Control
Sample
Apply Control
Error
Iterate until Converge
Matching in High Resolution
• Guaranteeing convergence
Matching in High Resolution
• Guaranteeing convergence
How much every two
Gaussian kernels overlap
Matching in High Resolution
• Guaranteeing convergence
How much every two
Gaussian kernels overlap
The matching converges
Spectral Radius
Results
Stairs
Smoke Column
Multiple Densities
Varying Kernel Sizes
Summary
• Simple integration to control high-res by
low-res
• Gives the user a real chance to interact
with the simulation
– Still follows most simulation rules
• Still room for improvement
– Give user more control options
• Return
CONCLUSION
Many Other Simulations
• Cloud Formation
• Particle-Based Effect Transfer
• Adaptive Resolution Incompressible Fluids
Summary
• There are lots of interesting remaining
problems in interactive simulation
– We still have a long way to go
• Addressing this challenge will require a
variety of approaches
• Although many of the approaches were set
up specifically for one problem, the
concepts do generalize
Questions?
• Thanks for listening!
• Funding (NSF)
• Students: Cem Yuksel, Zeki Melek, Jacob
Beaudoin, Shu-Wei Hsu, Ruoguan Huang
• Contact:
– John Keyser
– keyser@cs.tamu.edu
– http://faculty.cs.tamu.edu/keyser
Download