Haptic Cloth Rendering 6th Dutch-Belgian Haptics

Haptic Cloth Rendering
6th Dutch-Belgian
Haptics Meeting
TUDelft, 21st June 2006
Lode Vanacken
Expertise centre for Digital Media (EDM)
Hasselt University (UHasselt)
Introduction
Cloth Simulation
Haptics
Haptic Cloth Rendering
• Comparing techniques in both domains:
– Integration Techniques
– Collision Detection
– Haptic Rendering
21-06-2006
6th Dutch-Belgian Haptics
Meeting
2
Overview
•
•
•
•
•
Cloth Simulation
Integration Techniques
Collision Detection
Haptic Rendering
Haptic Cloth Rendering
21-06-2006
6th Dutch-Belgian Haptics
Meeting
3
Cloth Simulation
• Using Mass Spring Systems
– Combination of Particles and Springs
– Several techniques to connect particles
21-06-2006
6th Dutch-Belgian Haptics
Meeting
4
Overview
•
•
•
•
•
Cloth Simulation
Integration Techniques
Collision Detection
Haptic Rendering
Haptic Cloth Rendering
21-06-2006
6th Dutch-Belgian Haptics
Meeting
5
Integration Techniques
• Moving the Cloth?
– Movement through Newton’s dynamics
– Position/Velocity of the particles need to
be updated
– Represented as Initial Value Problem
– IVP can be solved using a first order
Ordinary Differential Equation (ODE)
– Several numerical methods exist
• Explicit, Implicit, IMEX, Verlet Integration,…
21-06-2006
6th Dutch-Belgian Haptics
Meeting
6
Integration Techniques
• Verlet Integration
– Popular in Molecular Dynamics
– Basic Verlet Scheme
– High accuracy: O(h4) with only one
force evaluation
– No explicit Velocity computation
– Two other schemes
• Velocity
• Leapfrog
21-06-2006
6th Dutch-Belgian Haptics
Meeting
7
Integration Techniques
• After IT step: Inverse Dynamics
– Changing the positions/velocities
– Stability increases
21-06-2006
6th Dutch-Belgian Haptics
Meeting
8
Overview
•
•
•
•
•
Cloth Simulation
Integration Techniques
Collision Detection
Haptic Rendering
Haptic Cloth Rendering
21-06-2006
6th Dutch-Belgian Haptics
Meeting
9
Collision Detection
• Achieving an interactive cloth (e.g.
draping a table)
• Two phases
– Broad phase: efficiently decreases the
number of possibly colliding objects
– Narrow phase: detects the areas of an
object that possibly collides and checks
these areas for collision
21-06-2006
6th Dutch-Belgian Haptics
Meeting
10
Collision Detection
• Only Object-Object collisions
• Main problem
– Deformable Object  Pre-computed
structure becomes invalid
• Two popular techniques
– Bounding Volume Hierarchies (BVH)
– Spatial Subdivision
21-06-2006
6th Dutch-Belgian Haptics
Meeting
11
Bounding Volume
Hierachies
• BVH is a tree structure
• Primitives are recursively subdivided
• Pre-computed but here also
rebuild/repair
• Bounding Volumes
– Sphere, AABB, OBB,…
– Good Enclosing + Fast Intersection test
21-06-2006
6th Dutch-Belgian Haptics
Meeting
12
Bounding Volume
Hierachies
• Arity is important!
– # nodes to update
– # recursion depth
• Collision testing is performed topdown
• Repairing the BVH
– Top-down, Bottom-up or Hybrid
– Brown et al. combine Bottom-up with a
priority queue sorted on depth
21-06-2006
6th Dutch-Belgian Haptics
Meeting
13
Spatial Subdivision
• Divide the objects in space
– Subdivision of the Complete Space
– Each object has its own subdivision
• Optimized Spatial Hashing (OSH)
–
–
–
–
Divide the space implicitly into small grid cells
Hash function: 3D grid cells  1D hash table
No 3D Structure!
Infinite Regular Spatial
Grids
– Two phases
21-06-2006
6th Dutch-Belgian Haptics
Meeting
14
Overview
•
•
•
•
•
Cloth Simulation
Integration Techniques
Collision Detection
Haptic Rendering
Haptic Cloth Rendering
21-06-2006
6th Dutch-Belgian Haptics
Meeting
15
Haptic Rendering
• Two popular Rigid Body techniques
– Penalty Based Methods
• Uses penetration depth
• Pop-Through/Multiple Objects
– Constraint Based Methods
• Solution to above
problems
• Representative object
attached to the user
using a spring
21-06-2006
6th Dutch-Belgian Haptics
Meeting
16
Haptic Rendering
• High cost of dynamic simulation
 Adapt HR algorithm
– Intermediate model
[Mark et al.]
• Plane updated at simulation speed
– Local model
[Mendoza et al.]
• Treat part of object as rigid body in the
haptic loop
– Forcegrid
[Mazella et al.]
• Uniform grid that functions as a buffer
structure
21-06-2006
6th Dutch-Belgian Haptics
Meeting
17
Overview
•
•
•
•
•
Cloth Simulation
Integration Techniques
Collision Detection
Haptic Rendering
Haptic Cloth Rendering
21-06-2006
6th Dutch-Belgian Haptics
Meeting
18
Haptic Cloth
Rendering
• Choose appropriate techniques
• Cloth Simulation
– Some forces: Gravity, Viscous drag
– Rectangular surface
– Cloth’s mass
– Smooth Shading
– Texturing
21-06-2006
6th Dutch-Belgian Haptics
Meeting
19
Haptic Cloth
Rendering
• Integration:
– Empirically
• Taxonomy M. Hauth
• Comparison of Implemented ITs
– Mathematically
• Second most stable/accurate
Leapfrog Verlet
21-06-2006
6th Dutch-Belgian Haptics
Meeting
20
Haptic Cloth
Rendering
• Haptic Rendering
– Realized using HAL
– Constraint Based Methods [Ruspini et al.]
– Force Shading [Morgenbesser et al.]
– Cloth simulator integrated as a separate
library
• Implemented and compared the other
Collision Detection Techniques
21-06-2006
6th Dutch-Belgian Haptics
Meeting
21
Haptic Cloth
Rendering
• Sphere and AABB Bounding Volume
Hierarchies with possible arity of 2 or 4
– Modification of the repair algorithm of Brown
et al.
•
•
•
•
21-06-2006
Priority queue is sorted on IDs
Last added parent is saved
Use array (see Table)
Recursion is
completely
removed!
6th Dutch-Belgian Haptics
Meeting
22
Haptic Cloth
Rendering
• Optimized Spatial Hashing
– Removed the first phase
• Evaluation of the CD algorithms
21-06-2006
6th Dutch-Belgian Haptics
Meeting
23
Haptic Cloth
Rendering
• Comparison in update time (#updates <> Ms)
45
40
35
Milliseconds
30
25
20
15
10
5
0
162
722
1682
3042
4802
# Triangles
21-06-2006
Sphere Quad Tree
Sphere Binary Tree
6th
Dutch-Belgian
Haptics
AABB Binary Tree
Optimized Spatial
Hashing
Meeting
AABB Quad Tree
24
Haptic Cloth
Rendering
• Comparison in Haptic Loop
Milliseconds
0.032
0.03
0.028
0.026
0.024
0.022
0.02
162
1152
3042
# Triangles
21-06-2006
Sphere Binary Tree
AABB Quad Tree
Sphere Quad Tree
AABB Binary Tree
Optimized
Spatial
HashingHaptics
6th
Dutch-Belgian
Meeting
25
Conclusion
• Who Won?
– In our situation a sphere BVH with arity
4 is the best CD algorithm.
• Still a few problems
– Force discontinuities arise
– Solutions:
• Interpolate between two cloth
representations
• Integrate locally at haptic update rate
21-06-2006
6th Dutch-Belgian Haptics
Meeting
26
Questions?
21-06-2006
6th Dutch-Belgian Haptics
Meeting
27