SCA ‘13

View-Dependent Control of Elastic Rod Simulation for 3D Character Animation
Yuki Koyama  Takeo Igarashi
The University of TokyoTokyoMotivation
• 2D-like stylizations in 3DCG
– View-dependent, inconsistent shapes
Example of inconsistency:

© Fujio, Fujiko F., Shogakukan

Existing method• View-dependent geometry (VDG)
– [Rademacher, 1999]
– Changing the geometry according to the view
direction
cameraview-direction
characterExisting method• View-dependent geometry (VDG)
– [Rademacher, 1999]
– Changing the geometry according to the view
direction

Video

Existing method• View-dependent geometry (VDG)
– [Rademacher, 1999]
– Changing the geometry according to the view
direction

Only for static geometry Our goal• Extending VDG for physical simulation
– Passively deformable rod structures

Target: hairs, ties, long ears, …

Big Buck Bunny
Bunny

DEMO

Demo
• Side-by-side comparison

Video

Fixed view

Camera viewOTHER RESULTS

Other results• Front hair avoiding the eyes

Video

Other results• Front hair avoiding the eyes

Without our method

With our methodOther results• Hair always facing the camera VideoOther results• Hair always facing the camera – This “cowlick” effect is popular especially in recent Japanese 2D animations
animationsOUR METHODUser inputs• A skinned mesh– Whose deformable rods are represented byjoint chains

Joint chainsUser inputs• A skinned mesh– Whose deformable rods are represented byjoint chains
P0 (base pose)
P5• Pairs of…– Key example pose– Key view direction
P4

P1
P3

P2

Rod simulation framework• Oriented Particles – [Müller and Chentanez, 2011]
– Based on position-based dynamics

• Simple distance constraint– For ensuring inextensibilityOverview of 
the runtime operations1. Calculate weights
2. Blend poses 3. SimulateP 0P1(base pose)

(example pose)

Current deformed poseOverview of 
the runtime operations1. Calculate weights
2. Blend poses 3. Simulateview directionw
P 0P1(base pose)

(example pose)

Current deformed poseOverview of 
the runtime operations1. Calculate weights
2. Blend poses 
3. SimulateP(w)P 0P1(base pose)

(example pose)

Current deformed poseOverview of 
the runtime operations1. Calculate weights
2. Blend poses 
3. SimulateP(w) = goal pose

P 0P1(base pose)

(example pose)
Internal elastic forceCurrent deformed poseTechnical details
• Weight calculation

• Suppression of ghost momentumTechnical details
• Weight calculation

• Suppression of ghost momentumWeight calculation
• The algorithm of VDG [Rademacher, 1999]
– Wrapping the model with a triangle mesh• Each vertex corresponds to a key view direction

Video

Weight calculation
• The algorithm of VDG [Rademacher, 1999]
– Wrapping the model with a triangle mesh• Each vertex corresponds to a key view direction

– Linear interpolation on a triangle

Weight calculation
• The algorithm of VDG [Rademacher, 1999]
– Wrapping the model with a triangle mesh• Each vertex corresponds to a key view direction

– Linear interpolation on a triangle– Difficulties• Necessary to give at least 4 inputs• No base (default) poseWeight calculation• Our algorithm (scattered interpolation)
– Consider Gaussian weights on a sphere(wi = i   i)(w0 = max 0, 1  
P ( w) = i=0
i=0 wi

wiPi

()

2

= exp     i i

wi=1 i)(i = 1,2,…)
1

23Weight calculation• Our algorithm (scattered interpolation)
– Consider Gaussian weights on a sphere(wi = i   i()()

2= exp     i iw0 = max 0, 1  wi=1 i)– Arbitrary number of inputs2– Base (default) pose– Influence control by 
i(i = 1,2,…)
1

3

Technical details
• Weight calculation

• Suppression of ghost momentumProblem: ghost momentum• Ghost momentum– The rod increases undesired momentum as the view direction changes
– It looks “alive”

Video

Problem: ghost momentum• A possible naïve approach– Suppressing ALL momentum• Simple damping technique– Undesirable• Our solution– Damping ONLY the ghost momentum• “Suppression algorithm”Suppression algorithm• Separate velocity and position updateP(w)P 0P1(base pose)

(example pose)
Internal force

External forceCurrent deformed poseSuppression algorithm• Separate velocity and position updateP(w)P 0(base pose)

P1(example pose)

(b)
(a)

(a): force that causes the ghost momentum(b): force that doesn’t cause the ghost momentumSuppression algorithm• Separate velocity and position updateP(w )

P 0(base pose)

P(w)

P1
(example pose)

(b)
(a)

(a): force that causes the ghost momentum(b): force that doesn’t cause the ghost momentumSuppression algorithm• Separate velocity and position update
Goal pose forvelocity updateP(w )

Goal pose forposition updateP(w)P 0P1(base pose)(example pose)

Suppression algorithm• Comparison

Video

Video

Without suppressionWith suppressionSuppression algorithm• Comparison– Failure case (still ghost momentum remaining)

Video

Video

Without suppressionWith suppressionSuppression algorithm
• Limitations– Cannot completely remove the momentum• Ghost momentum still remains– No theoretical ground• But practically useful?

– Doubled computational costs• Simulation runs twice (for position and velocity)

CONCLUSION

Conclusion• Concept– View-dependent control of simulated rods• Techniques– Calculating weights from view directions– Suppressing ghost momentum• Limitations– Suppression algorithm is not complete• Empirically (not theoretically) derived algorithm– Not physically accurateThank you for listeningVideo

••Characters used in our experiments– Hatsune Miku © Crypton Future Media, Inc.
– Big Buck Bunny © Blender Foundation
3D models by Yamamoto, Kio, and Blender Foundation