Hair Modeling & Simulation: An Overview Ming Lin and Kelly Ward University of North Carolina at Chapel Hill.

Slides:



Advertisements
Similar presentations
Bath, 25 Years of CG Hair Modelling, Animation, and Rendering Wen Tang School of Computing, University of Teesside
Advertisements

A Simple Method for Extracting the Natural Beauty of Hair Ken-ichi Anjyo, Yoshiaki Usami, Tsuneya Kurihara Presented by Chris Lutz How many roads must.
Optimized Stencil Shadow Volumes
Chapter 4.2 Collision Detection and Resolution. 2 Collision Detection Complicated for two reasons 1. Geometry is typically very complex, potentially requiring.
Motivation Hair animation used in movies, games, virtual reality, etc. Problem due to complexity –Human head has over 100,000 strands of hair –Computation.
Beams and Frames.
3D Graphics Rendering and Terrain Modeling
Advanced Computer Animation. Group Behaviors Group Behaviors : Motivation Many animations require natural-looking behavior from a large number of characters.
CHAPTER 12 Height Maps, Hidden Surface Removal, Clipping and Level of Detail Algorithms © 2008 Cengage Learning EMEA.
Hair Simulation COMP 768 Qi Mo.
Image Segmentation and Active Contour
Haptic Rendering using Simplification Comp259 Sung-Eui Yoon.
1Notes  Textbook: matchmove 6.7.2, B.9. 2 Match Move  For combining CG effects with real footage, need to match synthetic camera to real camera: “matchmove”
Particle Systems 1 Adapted from: E. Angel and D. Shreiner: Interactive Computer Graphics 6E © Addison-Wesley 2012.
1cs533d-winter-2005 Notes  More optional reading on web for collision detection.
Tomas Mőller © 2000 Speeding up your game The scene graph Culling techniques Level-of-detail rendering (LODs) Collision detection Resources and pointers.
18.1 Si31_2001 SI31 Advanced Computer Graphics AGR Lecture 18 Image-based Rendering Light Maps What We Did Not Cover Learning More...
2003 by Jim X. Chen: Introduction to Modeling Jim X. Chen George Mason University.
GPU Hierarchies for Hair Simulation Qi Mo COMP 768 course project proposal.
1cs533d-term Notes  list Even if you’re just auditing!
Interactive Hairstyle Modeling Using a Sketching Interface Xiaoyang Mao Kouichi Kashio Hiroyuki Kato Atsumi Imamiya CGGM 2002.
Haptic Cloth Rendering 6th Dutch-Belgian Haptics Meeting TUDelft, 21 st June 2006 Lode Vanacken Expertise centre for Digital Media (EDM) Hasselt University.
Bounding Volume Hierarchies and Spatial Partitioning Kenneth E. Hoff III COMP-236 lecture Spring 2000.
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Constraint-Based Motion Planning using Voronoi Diagrams Maxim Garber and Ming C. Lin Department of Computer.
Modeling Fluid Phenomena -Vinay Bondhugula (25 th & 27 th April 2006)
1 Advanced Scene Management System. 2 A tree-based or graph-based representation is good for 3D data management A tree-based or graph-based representation.
1Notes. 2 Time integration for particles  Back to the ODE problem, either  Accuracy, stability, and ease-of- implementation are main issues  Obviously.
Collision Detection David Johnson Cs6360 – Virtual Reality.
Computer graphics & visualization Collision Detection – Narrow Phase.
Modeling Hair-Hair Interactions Using Sparse Guide Hairs Yizhou Yu Joint work with Johnny Chang and Jingyi Jin Department of Computer Science University.
Shape Blending Joshua Filliater December 15, 2000.
Lecture VII Rigid Body Dynamics CS274: Computer Animation and Simulation.
Technology and Historical Overview. Introduction to 3d Computer Graphics  3D computer graphics is the science, study, and method of projecting a mathematical.
Introduction Tracking the corners Camera model and collision detection Keyframes Path Correction Controlling the entire path of a virtual camera In computer.
Computer animation Hair “A Survey on Hair Modeling: Styling, Simulation, and Rendering,” K. Ward, F. Bertails, T.-Y. Kim S. Marschner, M.-P. Cani, M. Lin.
Adaptive Real-Time Rendering of Planetary Terrains WSCG 2010 Raphaël Lerbour Jean-Eudes Marvie Pascal Gautron THOMSON R&D, Rennes, France.
Geometric Modeling using Polygonal Meshes Lecture 1: Introduction Hamid Laga Office: South.
Integral University EC-024 Digital Image Processing.
09/11/03CS679 - Fall Copyright Univ. of Wisconsin Last Time Graphics Pipeline Texturing Overview Cubic Environment Mapping.
Marching Cubes: A High Resolution 3D Surface Construction Algorithm William E. Lorenson Harvey E. Cline General Electric Company Corporate Research and.
Computer Graphics 2 In the name of God. Outline Introduction Animation The most important senior groups Animation techniques Summary Walking, running,…examples.
Real-Time Rendering SPEEDING UP RENDERING Lecture 04 Marina Gavrilova.
Computer Graphics and Multimedia Systems, University of Siegen, Germany 1 GPU-Based Responsive Grass Jens Orthmann, Christof Rezk-Salama, Andreas Kolb.
Rendering Overview CSE 3541 Matt Boggus. Rendering Algorithmically generating a 2D image from 3D models Raster graphics.
Simulation Level of Detail Or Doing As Little Work As Possible Jonathan Robbins Physically Based Modeling, Simulation, and Animation February 10, 2003.
Game Programming 06 The Rendering Engine
: Chapter 11: Three Dimensional Image Processing 1 Montri Karnjanadecha ac.th/~montri Image.
A Computationally Efficient Framework for Modeling Soft Body Impact Sarah F. Frisken and Ronald N. Perry Mitsubishi Electric Research Laboratories.
Representation and modelling 3 – landscape specialisations 4.1 Introduction 4.2 Simple height field landscapes 4.3 Procedural modeling of landscapes- fractals.
Graphics Graphics Korea University cgvr.korea.ac.kr 1 7. Speed-up Techniques Presented by SooKyun Kim.
Ray Tracing Fall, Introduction Simple idea  Forward Mapping  Natural phenomenon infinite number of rays from light source to object to viewer.
Discontinuous Displacement Mapping for Volume Graphics, Volume Graphics 2006, July 30, Boston, MA Discontinuous Displacement Mapping for Volume Graphics.
Physically based deformations of implicit surfaces Michal Remiš.
CS274 Spring 01 Lecture 7 Copyright © Mark Meyer Lecture VII Rigid Body Dynamics CS274: Computer Animation and Simulation.
1 CSCE 441: Computer Graphics Hidden Surface Removal Jinxiang Chai.
Image-Based Rendering Geometry and light interaction may be difficult and expensive to model –Think of how hard radiosity is –Imagine the complexity of.
RENDERING : Global Illumination
Interactive Continuous Collision Detection for Polygon Soups Xin Huang 11/20/2007.
Computer Graphics Imaging Ying Zhu Georgia State University Lecture 29 Soft Bodies and Rigid Bodies.
UNC Chapel Hill David A. O’Brien Automatic Simplification of Particle System Dynamics David O’Brien Susan Fisher Ming C. Lin Department of Computer Science.
Processing Images and Video for An Impressionist Effect Automatic production of “painterly” animations from video clips. Extending existing algorithms.
1 Geometry for Game. Geometry Geometry –Position / vertex normals / vertex colors / texture coordinates Topology Topology –Primitive »Lines / triangles.
Computer Animation Algorithms and Techniques
Hair Modelling, Animation, and Rendering
Bounding Volume Hierarchies and Spatial Partitioning
Bounding Volume Hierarchies and Spatial Partitioning
3D Graphics Rendering PPT By Ricardo Veguilla.
The Graphics Rendering Pipeline
Simulation Acceleration Techniques
Presentation transcript:

Hair Modeling & Simulation: An Overview Ming Lin and Kelly Ward University of North Carolina at Chapel Hill

Hair Simulation The University of North Carolina at Chapel Hill Motivation  Hair animation used in movies, games, virtual reality, etc. Important for representing virtual humans  Problem due to complexity Human head has over 100,000 strands of hair Computation time for simulation and rendering is costly

Hair Simulation The University of North Carolina at Chapel Hill Overview  Hair Modeling [Magnenat-Thalmann, et al. 2000] Hair Rendering  Hair color, shadows, lighting, transparency, and anti- aliasing Hair Shape Modeling (hairstyle)  Geometry of the hair – Shape specification  Density, distribution, and orientation of hair Hair Simulation  Dynamic Simulation  Collision Detection

Hair Simulation The University of North Carolina at Chapel Hill Hair Modeling  Factors to consider Speed vs. Appearance Short vs. Long Wavy vs. Straight Movie: Final Fantasy Video Game: Lara Croft - Tomb Raider: Angel of Darkness  Choose hair model based on desired outcome

Hair Simulation The University of North Carolina at Chapel Hill Hair Simulation  Physics of dynamic simulation Control motion Different styles  Geometric representation of hair Individual strands Wisps Strips  Collision detection and response Hair-Object Interactions Hair-Hair Interactions

A Simple Method for Extracting the Natural Beauty of Hair K. Anjyo, Y. Usami, and T. Kurihara ACM SIGGRAPH Computer Graphics, 1992 Hair Animation with Collision Detection T. Kurihara, K. Anjyo, D. Thalmann Models and Techniques in Computer Animation, 1993

Hair Simulation The University of North Carolina at Chapel Hill Individual Hair Strands  Hair represented as individual strands  Each strand represented as a series of connected line segments

Hair Simulation The University of North Carolina at Chapel Hill Strand of Hair  Shape represented by angles specified between two segments  Polar coordinates Zenith θ i Azimuth Φ i  Specify resting position for hair as θ 0 and Φ 0

Hair Simulation The University of North Carolina at Chapel Hill Polar Coordinate System

Hair Simulation The University of North Carolina at Chapel Hill Polar Coordinate System Section 0 Node 0 Section 1 Node 1 y x z Φ1Φ1 θ1θ1 N1N1 N2N2 y z 0  θ  180° x z 0  Ф  360° Nodes, or control points, control the shape of the skeleton d

Hair Simulation The University of North Carolina at Chapel Hill Physics of Motion  Apply forces to control points  Use torque for resulting motion of control points M θspring, M Φspring between two segments M θexternal, M Φexternal from external forces  Gravity, Wind M θ = M θspring + M θexternal M Φ = M Φspring + M Φexternal

Hair Simulation The University of North Carolina at Chapel Hill Physics of Motion where k θ and k Φ are spring constants and θ 0 and Φ 0 are initial angles u is (1/2)d, d is the length of a segment of hair v is the half length of the segment that is the projection of s i onto the Φ plane.

Hair Simulation The University of North Carolina at Chapel Hill Collision  Hair-Hair collision ignored  Collision Detection with Head and Body Divide human body into several parts and create a cylindrical representation  Collision detection reduced to checking for control points inside or outside of cylinders

Hair Simulation The University of North Carolina at Chapel Hill Collision  Collision Reaction Use lookup table and bi-linear interpolation to find normal vectors for collision response direction Reaction constraint method by Platt and Barr 1988 is used: N = normal vector at point T V = velocity of point P c = damping coefficient k = strength of the constraint F input = applied force to node point P

Hair Simulation The University of North Carolina at Chapel Hill Limitations  Simulating each strand very costly  Collision detection is just rough estimation Can fail to detect collisions  Table Resolution  Some objects cannot be represented well as cylinder, particularly top of head Cannot be applied to hair-hair collisions

Hair Simulation The University of North Carolina at Chapel Hill Setup and Styling Hair

Hair Simulation The University of North Carolina at Chapel Hill Results

Hair Simulation The University of North Carolina at Chapel Hill Continuum Models  Individual strands make up a volume Simulate the volume rather than each strand  Fluid Dynamics  Guide Strands  Particles

Hair Simulation The University of North Carolina at Chapel Hill Group Strands  Strands close to each other behave similarly  Use some strands as a guide, interpolate position and motion of strands near it  Save computation time

A Layered Wisp Model for Simulating Interactions inside Long Hair E. Plante, M. Cani, P. Poulin Proc. of Eurographics Workshop on Animation and Simulation, 2001

Hair Simulation The University of North Carolina at Chapel Hill Layered Wisp Model  Skeleton Curve Defines global motion and deformations  Deformable Envelope Coats skeleton, defines deformations of wisp sections  Hair Strands Individual strands of hair for rendering

Hair Simulation The University of North Carolina at Chapel Hill Wisp Skeleton  Defines global movements and deformations of wisp  Chain of point-masses linked by linear damping  Create motion by applying forces to point-masses  Similar to strand of previous works

Hair Simulation The University of North Carolina at Chapel Hill Wisp Envelope  Surrounds the skeleton and defines deformations of the wisp sections  Responsible for motion that occurs when the group of hair, or wisp, is stretched or compressed

Hair Simulation The University of North Carolina at Chapel Hill Wisp Envelope  Broken up into cross-sections that are associated with each point-mass of skeleton  Shape of cross-section dependent on number of envelope point-masses used  Envelope point-masses linked to skeleton point- masses through damped springs

Hair Simulation The University of North Carolina at Chapel Hill Hair Strands  Individual strands of hair are placed within the wisp for rendering  Strands placed randomly within cross-section of wisp, skeleton is origin  Catmull-Rom piecewise cubic curves are used to define strands

Hair Simulation The University of North Carolina at Chapel Hill Hair-Hair Collisions  Interactions between wisps Create bounding boxes around wisp segments Test bounding boxes against each other to detect collision  Checks for penetration of envelope or skeleton point mass into another bounding volume Wisp envelopes can be compressed depending on orientation of colliding wisps  If same orientation, allow collision

Hair Simulation The University of North Carolina at Chapel Hill Hair-Hair Collisions   Check orientations of wisps   Determine if collision is allowed If not, determine if a point-mass is inside the volume of another wisp section  Volume defined by two cross- sections

Hair Simulation The University of North Carolina at Chapel Hill Hair-Object Collisions  Interactions between wisp and person Sliding Contact  Check point-mass close to body (within threshold)  Eliminate velocity of point-mass Penetration Reaction  If point-mass (either envelope or skeleton) collides with the body, move point-mass outside of body then use “sliding contact” method

Hair Simulation The University of North Carolina at Chapel Hill Timings  ~0.023 to fps  Short Hair 199 wisps 4 segments per wisp  Medium Hair 73 wisps 9.9 segments per wisp  Long Hair 56 wisps 7.7 segments per wisp   92 to 95% of total computation time spent on collision detection 64 to 70% wisp self- interactions 30 to 36% wisp-object interactions

Hair Simulation The University of North Carolina at Chapel Hill Results

A Simple Physics Model to Animate Human Hair Modeled in 2D Strips in Real Time C. K. Koh, Z. Huang Proc. of Eurographics Workshop on Animation and Simulation, 2001

Hair Simulation The University of North Carolina at Chapel Hill Physics of Motion  Group hairs into 2D strips represented as NURBS surfaces  Dynamic equations are defined and solved for the control points of the surface  Physics model used is same as previous examples

Hair Simulation The University of North Carolina at Chapel Hill Setup of Hair  Hair strands are represented in layers of strips overlaying each other to cover the head  Surfaces are texture mapped with hair images  Alpha map is used to define transparency

Hair Simulation The University of North Carolina at Chapel Hill Setup of Hair

Hair Simulation The University of North Carolina at Chapel Hill Collision Detection & Avoidance  Hair strips and external objects (head) Ellipsoids used to represent head Similar to previous techniques  Hair strips and other hair strips Use avoidance Springs between strips  Spring force used for either repulsion or attraction F i = Σ(-k s * x s ) Where k s is the spring constant and x s is the displacement from initial rest length, i is control point index, s is spring index

Hair Simulation The University of North Carolina at Chapel Hill Results

Modeling Hair using Level-of-Detail Representations K. Ward, M. Lin, J. Lee, S. Fisher, and D. Macri Proceedings of Computer Animation and Social Agents, 2003 Adaptive Grouping and Subdivision for Simulating Hair Dynamics Kelly Ward and Ming C. Lin Proceedings of Pacific Graphics, 2003

Hair Simulation The University of North Carolina at Chapel Hill Overview  Propose method to model hair using three discrete representations  Create hair hierarchy from these representations creating continuous LODs  Dynamically switch between different representations based on: Visibility Viewing Distance Motion of Hair

Hair Simulation The University of North Carolina at Chapel Hill Overview Individual Strands  Modeled with subdivision curves Clusters  Generalized cylinders created with subdivision surfaces Strips  Modeled with subdivision surfaces  Three Representations to model hair

Hair Simulation The University of North Carolina at Chapel Hill Overview  Hair Hierarchy Create hierarchies of each representation Generates continuous LODs

Hair Simulation The University of North Carolina at Chapel Hill Base Skeleton Maintains global physical behavior of hair Modeled as open chain of line segments Spring forces used to control angles  All hair representations follow the same base skeleton model as basis of motion x P1P1 P0P0 P2P2 P3P3 P4P4 s1s1 s2s2 y zфiфi θiθi PiPi P i+1

Hair Simulation The University of North Carolina at Chapel Hill Subdivision Framework  Subdivision curves and surfaces used for geometric representations  Ability to model each LOD shape and different hairstyles  Adaptive dynamic tessellation Continuous LODs for rendering

Hair Simulation The University of North Carolina at Chapel Hill Geometric Representation

Hair Simulation The University of North Carolina at Chapel Hill Hair Dynamics  Base skeleton controls hair dynamics  Implicit Integration Obtain more stable integration in comparison to explicit techniques Use Polar Coordinates

Hair Simulation The University of North Carolina at Chapel Hill Collision Detection & Response  Typically most time-consuming process in simulation  Exploit level-of-detail framework Simplify collision detection and response algorithm Still maintains accurate and consistent simulation state  Two types of collisions Object-Hair Interactions Hair-Hair Interactions

Hair Simulation The University of North Carolina at Chapel Hill Collision Detection  Swept Sphere Volumes (SSVs) [Larsen et al. 1999] Bounding volumes to encapsulate hair Shape closely matches each LOD geometry  Simple collision detection algorithm: Calculate distance between core shapes (line or rectangle) Subtract appropriate offset (radius of each SSV)

Hair Simulation The University of North Carolina at Chapel Hill Hair-Hair Interactions  Use spatial decomposition – Only test sections of hair near each other  Compute overlap between two SSVs  Use orientations of SSVs to determine response Near Parallel: Average velocites Else: Push apart SSVs based on overlap and average velocites

Hair Simulation The University of North Carolina at Chapel Hill Hair-Hair Interactions

Hair Simulation The University of North Carolina at Chapel Hill Hair-Hair Interactions

Hair Simulation The University of North Carolina at Chapel Hill Hair-Object Interactions  Occurs when hair interacts with body/head Impenetrable object  Encapsulate object with bounding volume hierarchy (BVH) of SSVs Recursively test hair SSV against BVH  When collision occurs Move section of hair outside of object Set velocity of hair in direction of object to zero

Hair Simulation The University of North Carolina at Chapel Hill Hair-Object Interactions

Hair Simulation The University of North Carolina at Chapel Hill Runtime Selection  Put more computational resources on hairs that are most important to viewer Visibility Viewing Distance Hair Motion  Entire head of hair is using combination of different hair resolutions at any given point Add more detail or simplify at any time on any position on head

Hair Simulation The University of North Carolina at Chapel Hill Visibility  Hair cannot be seen if: Outside field of view of camera Occluded by object in scene  Perform simple occlusion tests on hair to determine visibility  If hair is not visible Simulate hair as strips Do not render hair

Hair Simulation The University of North Carolina at Chapel Hill Visibility

Hair Simulation The University of North Carolina at Chapel Hill Viewing Distance  Hair that is far from viewer cannot be seen in great detail  Determine amount of screen space hair covers As distance from viewer grows, number of pixels covered by hair decreases Calculate screen space covered by skeleton  Test value against maximum allowable size for each LOD

Hair Simulation The University of North Carolina at Chapel Hill Viewing Distance Color-Coded Yellow  Strands: Yellow Red  Clusters: Red Blue  Strips: Blue Color-Coded Yellow  Strands: Yellow Red  Clusters: Red Blue  Strips: Blue

Hair Simulation The University of North Carolina at Chapel Hill Hair Motion  Relatively still hair does not have much detail to view Wind or large avatar motion causes more viewable detail  Measure the largest force acting on each section of hair Compare force to thresholds for strands vs. clusters vs. strips

Hair Simulation The University of North Carolina at Chapel Hill Hair Motion Color-Coded Yellow  Strands: Yellow Red  Clusters: Red Blue  Strips: Blue Color-Coded Yellow  Strands: Yellow Red  Clusters: Red Blue  Strips: Blue

Hair Simulation The University of North Carolina at Chapel Hill Demonstrations

Hair Simulation The University of North Carolina at Chapel Hill Demonstrations

Hair Simulation The University of North Carolina at Chapel Hill Hair Hierarchy Hierarchy of Hierarchies  Contains both discrete and continuous LODs

Hair Simulation The University of North Carolina at Chapel Hill Benefits of Hair Hierarchy  Gives more localized control over simulation  Generates continuous LODs throughout simulation  Transitions between LODs are less noticeable Natural progression in detail  Hierarchy can be traversed on the fly  Results in higher visual quality simulation

Hair Simulation The University of North Carolina at Chapel Hill Construction of Hair Hierarchy  Constructed offline as a pre-process  Continual subdivision of strand groups, clusters, and strips  Build hierarchies in top-down manner  Gain more detail down the hierarchy

Hair Simulation The University of North Carolina at Chapel Hill Hierarchy Construction

Hair Simulation The University of North Carolina at Chapel Hill Subdivision of Hair  Cross-section of strand grouping  Divide into four equal parts LSS tightly fits for collision detection  Placement of strands remains consistent

Hair Simulation The University of North Carolina at Chapel Hill  Cross-section of strand grouping  Divide into four equal parts LSS tightly fits for collision detection  Placement of strands remains consistent  Fit circular cross-section to four children Subdivision of Hair

Hair Simulation The University of North Carolina at Chapel Hill Subdivision of Hair

Hair Simulation The University of North Carolina at Chapel Hill Transitions Between LODs  Hair hierarchy allows localized LOD control of hair  Traverse hierarchy to select appropriate LOD throughout simulation  Crucial to perform transitions smoothly to avoid visual artifacts  During traversal either: Adding Detail: One skeleton  Multiple skeletons Simplifying: Multiple skeletons  One skeleton

Hair Simulation The University of North Carolina at Chapel Hill Adaptive Splitting

Hair Simulation The University of North Carolina at Chapel Hill Adaptive Splitting  Move down one level in hierarchy Add detail to simulation  Simplified through use of base skeleton  Child skeletons inherit dynamic state of parent skeleton Velocity is copied from parent Position is offset from parent

Hair Simulation The University of North Carolina at Chapel Hill Adaptive Grouping

Hair Simulation The University of North Carolina at Chapel Hill Adaptive Grouping  Multiple skeletons  One skeleton Average velocity and position of children and assign to parent  Constraints placed on merging: All children must be ready to transition to parent Positional constraint on children to avoid sudden jump

Hair Simulation The University of North Carolina at Chapel Hill Results

Hair Simulation The University of North Carolina at Chapel Hill Results

Hair Simulation The University of North Carolina at Chapel Hill Results

Hair Simulation The University of North Carolina at Chapel Hill Performance Fine StrandsLODsCoarse Strands Dynamic Simulation Collision Detection Total   9,350 individual strands (rendered)   3,570 skeletons at finest level   Skeletons contain an average of 6 control points Measured in Seconds/Frame  Wind Blowing through hair  Camera remains stationary

Hair Simulation The University of North Carolina at Chapel Hill Performance LODsStrandsClustersStrips Dynamic Simulation Collision Detection Total   9,350 individual strands (rendered)   3,570 skeletons at finest level   110 Strips at coarsest strip level   330 Clusters at coarsest cluster level Measured in Seconds/Frame  Wind Blowing through hair  Camera moves away from figure

Hair Simulation The University of North Carolina at Chapel Hill References  K. Anjyo, Y. Usami, and T. Kurihara. A simple method for extracting the natural beauty of hair. Computer Graphics, 26(2): ,  T. Kurihara, K. Anjyo, and D. Thalmann. Hair animation with collision detection. In Models and Techniques in Computer Animation, pages Springer-Verlag,  C. K. Koh and Z. Huang. A simple physics model to animate human hair modeled in 2d strips in real time. Proc. of Eurographics Workshop on Animation and Simulation,  E. Plante, M. Cani, and P. Poulin. A layered wisp model for simulating interactions inside long hair. Proc. of Eurographics Workshop on Animation and Simulation,  K. Ward, M. C. Lin, J. Lee, S. Fisher, and D. Macri. Modeling hair using level of detail representations. Proc. of Computer Animation and Social Agents,  K. Ward and M. C. Lin. Adaptive grouping and subdivision for simulating hair dynamics. Proc. of Pacific Graphics, 2003.