Modeling Hair-Hair Interactions Using Sparse Guide Hairs Yizhou Yu Joint work with Johnny Chang and Jingyi Jin Department of Computer Science University of Illinois at Urbana-Champaign Dynamic Hair Interactions • Hair-Hair Collision – Volumetric Appearance – Computationally Expensive for >50,000 Hairs • Adhesive Forces due to Cosmetics, Interweaving, Static Charges – Hairstyle Recovery after Minor Movements • Hairs are hard to stretch, and interactions become obvious when they are sufficiently close. Hair Simulation Using Sparse Guide Hairs • Simulating Sparse Guide Hairs – Single strand dynamics for each guide hair – Simulating adhesive forces using static links – Simulating hair-hair collisions using density modulated triangle strips • Dense Hair Simulation by Interpolation – Hair interpolation happens at each frame. – Fixed correspondences between dense hairs and guide hairs to achieve temporal coherence – Hair-object collisions are handled after interpolation for each individual strand. Guide Hair Modeling • Modeling hair flows with vector fields Video: Guide Hairs Related Work on Hair Animation • Single Strand Dynamics – Mass-Spring-Hinge Model • [ Rosenblum et. al. 91 ], [ Daldegan et. al. 93 ] – Cantilever Beam • [ Anjyo et. al. 92 ] – Multi-body Open Chain • [ Hadap & Thalman 01 ] • Hair-Hair Interactions – Fluid-based Model • [ Hadap & Thalman 01 ] – Wisp-based Model • [ Plante et. al. 01 ] Hair Strand Dynamics • Each hair strand is modeled as a rigid multibody open chain • Forward Dynamics – Featherstone’s algorithm or Lagrange’s equations for generalized coordinates. • Joint actuator force accounts for the bending and torsional rigidity of the strand. – Deviation from the resting position results in a nonzero resisting actuator force. • Hair-hair interactions are formulated as external forces in addition to gravity. Static Links • Breakable Elastic Connections among Nearby Guide Hairs – Simulate the bonding effects formed when hair is in still – Enhance hairstyle recovery after minor movements. • Static links enforce neighborhood configurations by exerting external forces onto the hair strands. Static Links as Positional Springs • Introduce a local coordinate system to each segment of the hair strands. • Transform points on the nearby strands to the segment’s local system and keep them as the reference points. • Forces are generated to recover the original relative positions of these reference points. Force from Static Links • The accumulated force a segment receives due to static links can be formulated as – ks is the spring constant kd is the damping constant, v is the time derivative of l, and • A static link can be broken when its length change exceeds a threshold. Dynamic Interactions • Use of auxiliary triangle strips to imagine the space in between the set of sparse guide hair • Collisions between the hair segments and the triangle strips are explicitly considered Modeling Hair Density • Every face on a triangle strip is associated with a density value which can be zero. – The length of the triangle edges serves as the indicator for the hair density on a strip. – If a triangle becomes too elongated, its density is labeled as zero. • Hair strands are allowed to go through sparse or broken pieces of a triangle strip more easily. Modeling Collision Forces • Depending on the orientation of the penetrating hair vertex and the triangular face, the repelling spring force might vary. • where a is the normalized tangential vector of the hair at the penetrating vertex, b is the interpolated hair orienation on the triangular face, λ is the scale factor • The scale factor λ is adjusted according to the hair density. Adaptive Hair Generation • Generate additional guide strands adaptively on the fly to cover the over interpolated regions – Compare the distance between two guide strands. If the distance is too far, an adaptive hair is inserted. • Inserted guide hairs can also be removed during the simulation Hair Interpolation • Define a local coordinate system at each hair root • Interpolate the transformed coordinates n v ' ( M 21M 1 ) vi wi i 0 translation local coordinate transformation translation + rotation Random Curliness I • Editing Hairs with an Offset Function Random Curliness II • Parametric Offset Function – Variable magnitude + variable period Wave(t) = Mag(t) sin( 2 ( Rt P0 )t 0 ) Mag(t) = A + B t exp(- t) + C (1-exp(- t) + D exp( (t-t0 )) Examples of Curly/Wavy Hair Models Hair Rendering Kajiya-Kay Illumination Model + Adjustable Translucency Video: Braided Hair Video: Long Hair Video: Short Hair Video: Brush Conclusions • Hair mutual interactions are indispensable for realistic hair simulations. • We use sparse guide hairs to produce hair motion, and densely interpolated hairs for the final appearance. • We propose to use static links to simulate adhesive forces and enhance hairstyle recovery, and density modulated triangle strips for hair-hair collisions.