Volume 31 (2012), Number 7

Pacific Graphics 2012
C. Bregler, P. Sander, and M. Wimmer(Guest Editors)

Wetting Effects in Hair Simulation
W. Rungjiratananon1 , Y. Kanamori2 and T. Nishita1
1 The University of Tokyo, Japan
2 University of Tsukuba, Japan

Abstract
There is considerable recent progress in hair simulations, driven by the high demands in computer animatedmovies. However, capturing the complex interactions between hair and water is still relatively in its infancy. Suchinteractions are best modeled as those between water and an anisotropic permeable medium as water can flow
into and out of the hair volume biased in hair fiber direction. Modeling the interaction is further challenged when
the hair is allowed to move. In this paper, we introduce a simulation model that reproduces interactions between
water and hair as a dynamic anisotropic permeable material. We utilize an Eulerian approach for capturing
the microscopic porosity of hair and handle the wetting effects using a Cartesian bounding grid. A Lagrangian
approach is used to simulate every single hair strand including interactions with each other, yielding fine-detailed
dynamic hair simulation. Our model and simulation generate many interesting effects of interactions between
fine-detailed dynamic hair and water, i.e., water absorption and diffusion, cohesion of wet hair strands, water flow
within the hair volume, water dripping from the wet hair strands and morphological shape transformations of wet
hair.
Categories and Subject Descriptors (according to ACM CCS): I.3.7 [Computer Graphics]: Computer Graphics—
Three-Dimensional Graphics and RealismAnimation

1. Introduction
Wetting of hair is an interesting phenomenon in our everyday
life. When water contacts with hair, the water is absorbed
and diffuses into the hair, making the hair wet. Then, the wet
hair strands stick to surrounding strands and form several
clumps due to cohesive forces caused by water bridges. The
absorbed water also makes the hair strands heavier and temporally alters the protein structure (keratin) of a hair strand,causing its shape to change. For example, one’s straighthair may turn into wavy hair or vice versa when wet. With
enough water, the hair will be saturated and the excess water
will flow down the hair strands to the tips. When the waterat the tips grows large enough, it will turn into a water drop
dripping out off the hair.
The permeability (the water absorption and diffusion) of hair
originates in an inner part of each hair strand and a vast
amount of microscopic void spaces among hair strands. Eachhair strand is a permeable material which can absorb water
up to 30%-45% of its mass [L1́1] and the microscopic void
spaces among hair strands form a porous structure similar
to microscopic pores in porous materials such as sponges.
c 2012 The Author(s)Computer Graphics Forum c 2012 The Eurographics Association and Blackwell Publishing Ltd. Published by Blackwell Publishing, 9600 Garsington Road, Oxford OX4 2DQ,
UK and 350 Main Street, Malden, MA 02148, USA.

These microscopic void spaces absorb and diffuse water due
to a capillary effect. However, while pores in sponge-likeobjects do not move inside the solid material, void spaces inhair lie in complicated contact regions among hair strands
and drastically change their position together with hair motion. Furthermore, hair is an anisotropic permeable medium;water diffuses more in the hair fiber direction than the orthogonal direction.
Recently, the coupling simulations between water and permeable media including water absorption and diffusion, suchas sand [RSKN08, LD09] and sponge [LAD08], have beenstudied. However, these methods did not consider the special
features of hair porosity mentioned above. These methods
sampled permeable media in a macroscopic scale by particles [RSKN08] or porous particles [LAD08, LD09] witha diameter comparable to water particles to keep computational cost low. Note that a drop of water usually has a diameter around 2-5 mm [WMT05] which is fairly large compared to 15-110 µm of a hair strand [Rob02]. Smoothed Particle Hydrodynamics (SPH) [MCG03] is used for the water
simulation in their works. We also follow their approach using SPH for water simulation and handle hair porosity at a

W. Rungjiratananon, Y. Kanamori & T. Nishita / Wetting Effects in Hair Simulation

handled as a dynamics anisotropic permeable material with
our model. The complex porous structure of hair can be captured even under the motion. Our model recreates many interesting wetting effects of hair, i.e., water absorption anddiffusion, cohesion of wet hair strands, water flow within
the hair volume, water dripping from the wet hair strands
and morphological shape transformations of wet hair.

2. Related Work

Figure 1: A simulation result of 5,000 wavy hair strands
with water showered onto them until completely wet. The
water is absorbed and diffused, making the hair wet and saturated, then the excess water flows along the hair strands
until dripping out at the tips. The wet hair strands stick tosurrounding strands forming several clumps, while the detail of some wet stray hair forming a clump can be seen as
well.

macroscopic scale. We model the porosity of hair volume using a Cartesian bounding grid, because it is difficult to sample hair volume that is not continuum by particles. Then, ourmodel introduces a method to capture the porosity of hairvolume and a method to handle wetting effects of hair on the
grid.
While the wetting effects of hair are handled by an Eulerian approach, we use a Lagrangian approach to simulate every single hair strand as an individual entity, yielding the best plausible results of fine-detailed hair dynamics. There are several models for strand dynamics such as
mass-spring model [SLF08], super-helices [BAC∗ 06] andshape matching based model [RKN10]. In this paper, we
use the shape matching based model called Chain ShapeMatching (CSM). The CSM can efficiently handle individual hair strands as well as an easy shape controllability ofhair strands which advantages morphological shape transformation of wet hair in our model. An interesting interactions
between fine-detailed hair and water can be handled by our
method as shown in Figure 1. Hair is wet by the water absorption and diffusion. Wet hair strands stick to surrounding
strands as expected and a detail of stray hair between clumps
of wet hair can be seen as well.
Our contribution is a simulation model that reproduces fullinteractions between hair and water. We introduce a methodthat captures the wetting effects of fine-detailed dynamic
hair simulation using a Cartesian bounding grid. Hair can be

Most of previous work regarding wet hair did not target
simulations but focused on rendering [GMT07] and modeling [Bru00, SBCN10]. Only a few research studies havebeen introduced for the dynamics of strand-like objects withwetting effects. Procedural techniques were proposed formodeling clumping of wet fur [Bru00, SBCN10]. Ward etal. [WL04, WGL07] introduced a method for simulating wet
hair whose wetness is supplied by user interactions. Theirmethod is a clump-based model which sacrifices detail for
speed. None of these methods is a full simulation between
hair and water. To the best of our knowledge, the methodof Ward et al. [WGL07] is the latest approach in wet hairsimulation model.
Strand dynamics: Rosenblum et al. [RCT91] and Anjyo
et al. [AUK92] are among the first groups that introduced
methods for handling the dynamics of individual hair strand
using mass-spring system and projective dynamics, respectively. There are also several works representing a hair strand
as a serial chain of rigid bodies [CCK05, Had06] or elastic
rod [Pai02,BAC∗ 06,ST07]. Mass-spring system is extended
by Selle et al. [SLF08] to enable torsion and solve numericalstability problem. McAdams et al. [MSW∗ 09] introduced ahybrid Eulerian/Lagrangian method to efficiently capture theinteractions among straight hair strands. To speed up simulations, several techniques reduce degrees-of-freedom of hairusing clump based models [DTKT93, BKCN03, Osh07] or acontinuum models [BNC03,VMT06]. Alternatively, Rungjiratananon et al. [RKN10] introduced a Chain Shape Matching (CSM) model to simulate each single individual hairstrand. The CSM can directly modify positions of hair particles; therefore transforming wet hair shape during the simulation is straightforward. Our Eulerian method for wetting
effects can be applied to any hair simulation models. However, considering morphological shape transformation of wet
hair, the CSM is our appropriate choice.
Porous media and water simulation: The wetting effects in porous media and water simulation has been studied recently. Rungjiratananon et al. [RSKN08] introduced aparticle-based model for sand-water interactions. Lenaerts etal. [LAD08] integrated porous flow into SPH framework forpermeable media (rigid and elastic bodies) and water simulation. Later, Lenaerts et al. [LD09] applied their framework to
porous flow in granular material such as sand. Their methods sample solid permeable media in a macroscopic scalec 2012 The Author(s)c 2012 The Eurographics Association and Blackwell Publishing Ltd.

W. Rungjiratananon, Y. Kanamori & T. Nishita / Wetting Effects in Hair Simulation

by particles and handle wetting effects as an interactions between particles. However, these models do not consider the
dynamic anisotropic porous medium such as hair. Huber et
al. [HPS11] introduced a simulation model for wet cloth including water absorption, diffusion and stickiness. However,their model is limited to wetting effects on a flat surface.

3. Overview
To model wetting effects in coupling simulations of hair andwater, our method introduces a Cartesian grid to implicitly
represent the dynamic capillary system among hair strands(Section 4). Each voxel in this grid defines the unit for water
absorption and diffusion. Water travels in the hair volume
both in microscopic (hair strands) and macroscopic scales(voxels). In the microscopic scale, each hair segment of eachhair strand holds some water inside and around the segment.
The water inside the segment diffuses to adjacent segments
in a hair strand, and the water around the segment flows
along the hair strand. In the macroscopic scale, each voxel
containing hair absorbs water and the water diffuses amongvoxels. The water in each voxel is then distributed to eachsegment within the voxel. The water propagation processes
are summarized in the following four stages:
Voxel absorption: When water contacts with voxels, thewater is absorbed to the voxel (Section 5.1).
Macroscopic propagation (Inter-voxel diffusion): The
water propagates to the neighboring voxels according to
the difference of capillaries of the voxels (Section 5.2).
The change of water in each voxel is then distributed tosegments in the voxel.
Microscopic propagation: Water inside each segment diffuses to its connected segments and the excessive wateraround the segment flows along the hair strand, which
is followed by intra-voxel diffusion that uniformizes segments’ water amount within the voxel (Section 5.3).
Water dripping: Water drips out as a droplet from a voxel
if the water mass exceeds its capacity in certain duration.
(Section 5.4).
After these processes, the stored water in each segment
causes cohesion forces (Section 6) and morphological shapetransformation (Section 7) as well as increase of the weightof hair strands. Algorithm 1 shows the pseudocode of ouralgorithm.

Algorithm 1 Pseudocode of our algorithm.
1: Given V : a set of non-empty voxels.
2: Given M: hair surface meshes (Section 5.4).
3: Given wi : current water mass in segment i
4: Given wv : current water mass in voxel v
5: Given Wv : a set of water capacities in voxel v
6: loop
7:
S IMULATE CSM AND SPH()
8:
V, wv ,Wv ← C ONSTRUCT G RID() // Section 4
9:for all voxel v ∈ V do
10:
VOXEL A BSORPTION(wv ,Wv ) // Section 5.1
11:
I NTERVOXEL D IFFUSION(wv ,Wv ) // Section 5.2
12:
for all segment i in voxel v do
13:
wi ← wi + I NTERPOLATE C HANGE()
14:I NSIDE H AIR S TRAND D IFFUSION(wi )15:
end for16:
end for17:
for all segment i do
18:
F REE WATER F LOW(wi ) // Section 5.3
19:
end for20:
for all voxel v ∈ V do
21:
I NTRAVOXEL D IFFUSION() // Section 5.3
22:
end for23:
M ← C ONSTRUCT H AIR S URFACE()24:
D RIP WATER(M) // Section 5.4
25:
for all segment i do
26:
C OMPUTE C OHESION F ORCES() // Section 627:
S HAPE T RANSFORM() // Section 7
28:
end for
29: end loop

Hair strands

Hair particle
Hair segment
Absorbed waterin hair segment

W imaxWater
bridge

wi

Water

W if
c

Wi
Free flow water

W is

Cross-section view

Figure 2: A brief microscopic illustration of wet hair andour simulation model of a hair segment. Water permeatedinto hair is represented as a water mass of a hair segment.
The total possible amount of water mass is a summation ofabsorbed water, water bridge and free-flow water capacities.

4. Grid Construction
As introduced in Section 1, when water contacts with hair,
the water absorption and diffusion happens due to the permeability of hair strands and capillaries. However, the capillaries of hair is difficult to figure out due to the complexity ofhair structure. We can do nearest neighbors search for eachc 2012 The Author(s)c 2012 The Eurographics Association and Blackwell Publishing Ltd.

hair segment and examine contact regions among neighboring hair segments to accurately determine the capillaries, but
it is not an efficient way. Therefore, we introduce a grid of
uniform voxels to approximate the capillaries of hair.
Hair volume is divided into voxels. Each voxel contains por-W. Rungjiratananon, Y. Kanamori & T. Nishita / Wetting Effects in Hair Simulation

tions of hair segments and acts as a porous voxel that absorbs
and diffuses water. In a porous voxel v, the maximum watercapacity Wvmax that a porous voxel v can hold is considered
as a summation of three capacities of water as follows (seeFigure 2).
• Water capacity in hair segments Wvs : The water capacity
can be held inside of the hair segments.

• Water capacity in capillaries Wvc : The water capacity
held by capillaries (the extremely small gaps) between
hair segments. We call the water in the capillaries water
bridges.
f• Water capacity of free flow Wv : The capacity of wateraround the hair segments that is not absorbed into hairsegments or held as water bridges, but covers the hair segments due to a cohesion. This capacity is a user-definedvalue controlling the amount of water considered as an
Eulerian free-flow water.
Regarding notations, we use capitalized W for water capacity and small w for current water amount. Superscripts s, cand f denote water in segments, capillaries and free flow, respectively. Additionally, subscripts v and i indicate water ina voxel and a segment, respectively.
The maximum capacity of the voxel is then: Wvmax = Wvs +ff
Wvc + Wv . The Wvs and Wv can be directly computed froma function of the total mass of hair in the voxel, while thecapacity of capillaries Wvc is approximated.
To determine the total hair mass in the voxel, we rasterizeeach hair segment in the grid using 3D Digital Differential
Analyzer (3DDDA). 3DDDA yields a set of voxels that segment i passes through together with its length in each voxel.
Let liv be a length of segment i in a voxel v (Figure 3), then
the total length of hair segments Lv and total mass of hairmhair
in the voxel can be computed as follows.
v
Lv =∑ liv ,

(1)i∈R(v)mhair= ρhair πr2 Lv ,v

(2)

where R(v) is a set of segments in the voxel v, ρhair is thedensity of hair segment and r is a radius of cylindrical hairsegment. Then, we can compute water capacity in portions
fof hair segments Wvs and free-flow water capacity Wv as follows.
Wvs = Khair mhairv ,f

Wv = k f ree mhair
v ,

(3)

the voxel.
Wvc =



0,
kcapillaries mhairv ,if |R(v)| = 1
otherwise(5)

where kcapillaries is a constant and |R(v)| is the number ofsegments in the voxel v. Our simple assumption is based on
the fact that wet hair segments tend to stick to each othersuch that the water bridges totally lie in the clump of hairstrands. The higher the number of hair strands in the clump
is, the larger the water bridges are. However, it might resultin a large error according to complicated configuration of
dry hair strands. The more accurate method for approximating topology of contact region inside the voxel is one of our
future work.
In our model, a hair segment i stores water mass wi . The
current amount of water mass wv in a voxel can be computedfrom a summation of water mass of the portions of segmentsin the voxel. We consider that the water mass of a segment isuniformly distributed in the segment (Figure 3), therefore awater mass of a portion of the segment is linear proportional
to its length.
wv =l∑ wi livi ,(6)

i∈R(v)

where li is the total length of segment.
Later in this paper, the current amount of water mass in eachcapacity is used to handle the wetting effects. We define thecurrent amount of each kind of water mass as follows.
wsv=min{wv ,Wvs },(7)

wcv=min{max{0, wv−Wvs },Wvc },f
wv=max{0, wv −Wvs−Wvc }.

(8)
(9)

Equations 7, 8 and 9 represent the current water mass of eachkind in the voxel. We use the same equations for the currentfwater amount of a segment as well, i.e., wsi , wci and wi .
To handle an anisotropic water diffusion in hair, a representative tangent vector of hair in each voxel has to be known.
We use an averaged tangent vector dv of each segment in thevoxel as the representative tangent vector.
dv =

1
l
∑ ui livi ,Lv i∈R(v)(10)

where ui is the tangent vector of segment i.

(4)where Khair is a permeability of a hair segment (usually
0.3 ≤ Khair ≤ 0.45, as described in Section 1) and k f ree isa constant controlling the free-flow water capacity.
To approximate Wvc , we assume that the contact regions ofhair strands are proportional to the total mass of hair inside

5. Water Propagation
Water flows into and drips out of the hair volume influenced
by voxel absorption, macroscopic and microscopic waterpropagation. In this section, we describe the detail of eachstage.
c 2012 The Author(s)c 2012 The Eurographics Association and Blackwell Publishing Ltd.

W. Rungjiratananon, Y. Kanamori & T. Nishita / Wetting Effects in Hair Simulation
dv : reprentative tangent vector
Water particles Porous voxel
Hair particle
Water mass capacity of a voxel
Hair segment
wv

f

Wv

c

Wv

s
Wv

liv : length ofsegment i in voxel v
li : length of segment i

Figure 3: An Eulerian grid of uniform voxels for capturing
hair porosity. Each voxel contains portions of hair segments.

computed on the grid as follows.
(wc − wcv )∆wv= ∑ Dv (Su − Sv ) u,∆t∆du∈G(v)(14)

where G(v) is a set of six connected neighboring voxels ofvoxel v, ∆t is a time step, ∆d is a size of voxel, and Sv is asaturation of the voxel v. The saturation is a mass fractionofwc
water in the capillaries of the porous voxel: Sv = Wvc .
v

After the absorption and diffusion processes, we update thechange of water mass in each porous voxel ∆wv to segmentsin the voxel. The increase is distributed to each segment
according to the fraction of its portion length in the voxel(Eq. 15). The longer the portion is, the more change is distributed to that segment.
l∑ ∆wv Livv ,∆wincrease
=
i

(15)

v∈G(i)

5.1. Voxel Absorption
When a water particle p contacts with a porous voxel v, weconsider the following conditions to check whether the waterparticle gets absorbed or not.
• The porous voxel has a capacity left, i.e., wv < Wvmax .
• The water particle’s velocity v p is toward the porous
voxel, i.e., v p · n pv > 0, where n pv is the vector from thewater particle to the center of the porous voxel.
When the water particle is absorbed into the porous voxel,
the water mass of the porous voxel is increased by the waterparticle’s mass wv ← wv + wSPH , where wSPH is the watermass of the water particle (Figure 3).

5.2. Macroscopic Propagation
The difference of water in capillaries between the porous
voxels is the main cause of the inter-voxel diffusion. We employ the Fick’s second law for the change of the water incapillaries over time.
∂wcv= ∇ · (Dv ∇wcv ),
∂t

(11)

where Dv is the diffusivity of porous voxel. The diffusivityof an isotropic porous voxel can be some constant. However,hair is an anisotropic permeable medium where the water
diffuses more in the hair tangent direction. Given Dk andD⊥ are diffusivity constants in the hair tangent and orthogonal directions, respectively, we modify the diffusivity for ananisotropic porous voxel as follows.
Dv = Dk λ + D⊥ (1 − λ),(12)

λ = |dv · u|,(13)

where u is the unit vector from the voxel v to a neighboringvoxel. The evolution of diffused water mass, ∆wv , is thenc 2012 The Author(s)c 2012 The Eurographics Association and Blackwell Publishing Ltd.

where G(i) is a set of voxels that segment i passes through.
However, there’s possibly a problem in case that the changeof water mass is decreasing and some segments in the voxel
has no water mass. The water mass of those segments will be
updated to a negative value, which is impossible. Therefore,
we use a fraction of water mass that the segment contributes
to the voxel wiv for the change (Eq. 16), instead of the fraction of length.
w∆wdecrease= ∑ ∆wv iv .
(16)
i
wv
v∈G(i)
5.3. Microscopic Propagation
In microscopic level, we consider the diffusion of water inf
side a segment wsi and the flow of free-flow water wi . For
each segment, there are also three kinds of water mass caf
pacity. Wis and Wi are directly computed from the mass ofthe hair segment, while Wic is derived from the approximatedWvc in the voxels (Eq. 5) that the segment resides in.
Wic =

l

∑ Wvc livi .

(17)

v∈G(i)As a result, the current amount of water inside the segmentf
wsi and free-flow water mass of the segment wi can be calculated similarly to Eq. 7 and 9, respectively.
The current water mass inside the segment diffuses to theadjacent segments in its strand. We use a simple diffusion
process as follows.
∆wi= Ds (wsi+1 + wsi−1 − 2wsi ),(18)∆twhere ∆wi is the variation of wi and Ds is a diffusivity between hair segments.
The water that flows within the hair volume is the free-flowfwater of the segment, wi . We move this free-flow wateralong a hair strand from segment to segment controlled by a

W. Rungjiratananon, Y. Kanamori & T. Nishita / Wetting Effects in Hair Simulation

flow rate k f low and the direction of the segment. We determine the direction of the flow by checking the dot product of
the unit tangent vector of hair segment ti and the unit gravity
direction ĝ, i.e., kdir = ti · ĝ.

Sticking force
Free-flow water flows
along hair strand

1. There will be no flow, if |kdir | is less than a threshold ε.

Intra-voxel diffusionof free-flow water

2. If kdir ≥ ε, the water will flow to the next segment,fwi+1 ← wi+1 + ∆tk f low |kdir |wi .
3. If kdir ≤ −ε, the water will flow to the previous segment,fwi−1 ← wi−1 + ∆tk f low |kdir |wi .
Each segment transfers an amount of free-flow water fromvoxels to voxels. The update of the water mass wv in eachvoxel can be computed using Eq. 6. The free-flow water inside the voxel diffuses among the segments as well, e.g.,there might be free-flow water inside the voxel that has dry
segments. We update wi of each segment as follows.
f lfl∆wi = ∆tk f (wv iv − wi iv ),
Lv
li

(19)

where k f is a constant. The first term on the right hand sidein Eq. 19 is the probable free-flow water mass of the segment
when all segments in the voxel are equally wet. The second
term is the current free-flow water mass that the segment
contributes to the voxel. The equation can be interpreted thatthe free-flow water mass of each segment gradually becomesequal to each other.

Hair surface mesh (Surface of hair volume)
Water particle generated from dripping

Figure 4: Handling free flow water and cohesion of wethair.

6. Cohesion of Wet Hair
Cohesion of wet hair is influenced by the water bridges andthe free-flow water. We add a sticking force between a pairof colliding segments according to those water masses ofthe segments (Figure 4). For collision detection we consider
a hair segment as a capsule (a cylinder with two spheres at
its endpoints). Let r be the cylindrical (and spherical) radius.
The result of the collision detection gives the closest points
xi and x j on the segments i and j, respectively. The pair ofsegments is a colliding pair when the length of the vector
xi j = xi − x j is less than di j , where di j is a distance taking
into account the cylindrical radius r and the water amount.
di j = 2r + σ(wi + w j ),5.4. Water Dripping
Water droplets drips out when the water mass in a voxel exceeds Wvmax . Water droplets should be created around hairstrands, but voxels are too coarse to specify where hairstrands exist. For this, we create a surface mesh from thehair volume using distance transform of hair segments andthe marching cubes algorithm [LC87]. We refer to this mesh
as the hair surface mesh. If wv > Wvmax in voxel v and a hairsurface mesh exists within the voxel, we generate a waterparticle and decrease the water mass of the voxel by the water particle’s mass, wv ← wv − wSPH . The decrease of thewater mass is interpolated back to the segments in the voxel
using Eq. 16. The position of the generated water particle isan averaged barycenter of the surface meshes (Figure 4). If
there is a water particle within a water particle’s radius of
the generated position, we add radius and mass to the waterparticle instead of creating a new one.
To guarantee that absorbed water does not turn into waterparticles repeatedly or vice versa at the interface between
porous voxels and water particles, we add a time delay γ.
Dripping occurs if the voxel has the water mass exceeded
Wvmax for γ time steps. We also add a small velocity to thegenerated water particle in the direction of an averaged normal vector of the surface meshes to avoid the absorption ofgenerated water particles.

(20)

where σ is a ratio of increasing water radius. The sticking
force between segments i and j is computed when di j ≥|xi j | > 2r:
Fstick
=
ij

xi j
1
k
(wi + w j )(di j − |xi j |),2 stick|xi j |

(21)

where kstick is a coefficient of the sticking force. If |xi j | < 2r,
the penalty force is computed:xi jpenaltyFi j= k p (2r − |xi j |),(22)
|xi j |
where k p is a coefficient of the penalty force.
7. Morphological Shape Transformation
The absorbed water inside a hair strand can temporally alter the shape of wet hair due to chemical reactions. In the
CSM model, a user assigns a predefined shape of a hairstrand by giving positions of hair particles or tangent vectorsof hair segments (see Figure 5). When the hair particles are
moved by external forces, CSM tries to maintain the predefined shape. Accordingly, we assign two predefined shapes
for a dry hair strand and a wet hair strand. When the hair segment i is wet, we first calculate a tangent vector that segmentgoal
i should transforms into, called goal tangent ti . The goalc 2012 The Author(s)c 2012 The Eurographics Association and Blackwell Publishing Ltd.

W. Rungjiratananon, Y. Kanamori & T. Nishita / Wetting Effects in Hair Simulation

Tangent vector of
dry hair segment

Tangent vector of
wet hair segment

dry
i

ti

t

wet

Shape of a dry hair strand

Shape of a wet hair strand

Figure 5: Morphological shape transformation of wet hair.
Predefined shapes of dry hair and wet hair are assigned by
the user.
Real hair

Figure 7: Results of morphological shape transformations
in our model. The wet parts of straight hair (left) and curly
hair (right) turn into wavy and straight hair, respectively.

Simulation result

D
r
y

W
e
t

(a) With water repellent

Figure 6: Comparison of our simulation results and realworld experiments.

tangent is interpolated between the tangent of dry segment
dryti and wet segment twet
using the absorbed water mass ini
side the segment wsi . The current tangent vector ti is thengoal
updated towards ti
as follows.
goal

ti

= (1 −

wsi dry wsi wet)t + s ti ,
Wis i
Wi

(23)

goal

(24)

ti ← kt ∆t(ti− ti ),

where kt is a constant controlling speed of the chemical reactions of hair strand.
8. Results
Our implementation was written in C++ with OpenGL. All
experiments were conducted on a PC with an Intel Core i7
3.20GHz, 6GB RAM and an NVIDIA GeForce GTX 480
GPU. We use the Dynamic Packing Grid (DPG) data structure [BCR09] for a memory-efficient grid structure in our
simulation. Our final results are rendered using an off-line
c 2012 The Author(s)c 2012 The Eurographics Association and Blackwell Publishing Ltd.

(b) Without water repellent

Figure 8: Simulation results of hair with and without water
repellent.

rendering software, POVRay 3.7. Each hair segment is rendered as a semi-transparent cylinder. The color of a hair segment gets darker according to the amount of absorbed water mass. When the amount of free-flow water around a hairsegment is large enough, the free-flow water can be seen asa thin water film covering the segment. In our rendering, we
add some virtual water particles (not used for simulation,
only for rendering) along the hair segment with the size according to the free-flow water amount. Then, we employ themethod proposed in [YT10] for constructing the surfaces ofwater particles in SPH domain and virtual particles aroundhair segments.
Our simulation result compared with the real world is shownin Figure 6. The real hair and our results are shown in the left
and right columns, respectively. The top row shows dry hairand the bottom row shows wet hair. There are 5,500 hairstrands in the simulation result compared to over 100,000
strands of the real hair and the shape of hair strands are
not exactly the same. Therefore, the overall appearance may
look different. However, our method can reproduce the co-

W. Rungjiratananon, Y. Kanamori & T. Nishita / Wetting Effects in Hair Simulation

hesion of wet hair and the presence of droplet at the tips as
seen in the real hair.
Figure 7 shows results of morphological shape transformations according to the absorbed water. Straight hair temporally turns into wavy hair in Figure 7(left), while the wet
curly hair in Figure 7(right) becomes more straight. In the
curly hair, hair strands become straight due to the weightof the absorbed water and the morphological shape transformations, but largely induced by the shape transformations. Figure 9 shows results of 5,500 straight hair strands
rising from a pool. Hair is completely wet under the water.
The water amount in hair volume is maximum. Therefore, agreat amount of excess water (free-flow water) flows along
hair strands until pouring out of the hair volume when hairis rising into the air. Figure 10 shows animation sequencesof 6,500 wavy hair strands interacting with water from ashower. The water is absorbed and diffuses into the hair. The
wet hair strands form several clumps. The excess water gradually drips at the tips. The breakdown computational time ineach process is shown in Table 1. The grid resolution usedin Figures 7, 9 and 10 is 55 × 55 × 55.

9. Discussions and Limitations
There are much more underlying physics of water and hairinteractions in the real world, e.g., water repellent, surface
tension between fluid and hair. In the real hair, there is sometimes a water repellent, i.e., water is repelled by the oil component or static electric in the hair. We demonstrate a simple
way to handle this in Figure 8. We give each hair segment an
α value that indicates the strength of oil component (or static
electric) of the segment. The voxel absorption occurs only
when the summation of α values in the voxel is less than athreshold. Unless, the α values of segments in the voxel keep
decreasing when the voxel contacts with water.
Regarding the choice of voxel size, we use the size equal
to or larger than a diameter of water particle, since a waterparticle can be totally absorbed into a voxel. Although theoverall water mass in the hair volume remains the same witha larger voxel size, the water absorption and diffusion processes affect more hair segments in a time step. The computational cost of hair voxelization glows linearly together
with the number of voxels.

10. Conclusion and Future Work
We have introduced a model for handling the wetting effects
in coupling simulations of hair and water. Hair is modeled
as an anisotropic dynamics permeable media. We have proposed a method utilizing Eulerian approach for capturing
hair porosity and handling wetting effects on the fine detailed hair simulation using Lagrangian method. Our method
have enabled many interesting effects of wetting hair. To thebest of our knowledge, our system is the first to fully simulate the interactions between hair and water both in macroscopic and microscopic levels.
For future work, we would like to improve an overall performance by GPU implementation. In this paper, the approximation of capillaries among hair strands is based on a simple assumption. A more accurate and efficient method is required to capture the exact topology of capillaries among
hair.
Acknowledgment
This work was supported in part by Grant-in-Aid for JSPS
Fellows (22·4748).
References[APKG07] A DAMS B., PAULY M., K EISER R., G UIBAS L. J.:
Adaptively sampled particle fluids. In SIGGRAPH ’07: ACM
SIGGRAPH 2007 papers (2007), p. 48.
[AUK92] A NJYO K., U SAMI Y., K URIHARA T.: A simple
method for extracting the natural beauty of hair. In SIGGRAPH’92: ACM SIGGRAPH 1992 Papers (1992), ACM, pp. 111–120.
[BAC∗ 06] B ERTAILS F., AUDOLY B., C ANI M.-P., Q UERLEUX
B., L EROY F., L ÉVÊQUE J.-L.: Super-helices for predicting the
dynamics of natural hair. ACM Transactions on Graphics (SIGGRAPH) 25, 3 (2006), 1180–1187.
[BCR09] BAJAJ C., C HOWDHURY R. A., R ASHEED M.: A dynamic data structure for flexible molecular maintenance and informatics. In 2009 SIAM/ACM Joint Conference on Geometricand Physical Modeling (2009), pp. 259–270.
[BKCN03] B ERTAILS F., K IM T.-Y., C ANI M.-P., N EUMANN
U.: Adaptive wisp tree: a multiresolution control structure forsimulating dynamic clustering in hair motion. In Proceedingsof the 2003 ACM SIGGRAPH/Eurographics symposium on Computer animation (2003), pp. 207–213.
[BNC03] BANDO Y., N ISHITA T., C HEN B.-Y.: Animating hairwith loosely connected particles. Computer Graphics Forum(Proceedings of EUROGRAPHICS 2003) 22, 3 (2003), 411–418.
[Bru00] B RUDERLIN A.: A method to generate wet and brokenup animal fur. Journal of Visualization and Computer Animation
11, 5 (2000), 249–259.
[BWR∗ 08] B ERGOU M., WARDETZKY M., ROBINSON S., AU DOLY B., G RINSPUN E.: Discrete elastic rods. ACM Transactions on Graphics (SIGGRAPH) 27, 3 (aug 2008), 63:1–63:12.
[CCK05] C HOE B., C HOI M. G., KO H.-S.: Simulating complex hair with robust collision handling. In SCA ’05: Proceedings of the 2005 ACM SIGGRAPH/Eurographics symposium on
Computer animation (2005), ACM, pp. 153–160.
[DBB09] D IZIOL R., B ENDER J., BAYER D.: Volume conserving simulation of deformable bodies. In Eurographics 2009 Short
Papers (March 2009).
[DTKT93] DALDEGAN A., T HALMANN N. M., K URIHARA T.,
T HALMANN D.: An integrated system for modeling, animating
and rendering hair. Computer Graphics Forum 12, 3 (1993), 211–
221.
[GMT07] G UPTA R., M AGNENAT-T HALMANN N.: Interactive
rendering of optical effects in wet hair. In Proceedings of the2007 ACM symposium on Virtual reality software and technology(2007), pp. 133–140.
c 2012 The Author(s)c 2012 The Eurographics Association and Blackwell Publishing Ltd.

W. Rungjiratananon, Y. Kanamori & T. Nishita / Wetting Effects in Hair Simulation

Figure 9: Animation sequences of 5,500 wavy hair strands (105,000 segments) rising from a pool.

Figure 10: Animation sequences of 6,500 straight hair strands (134,000 segments) interacting with water from a shower.

[Had06] H ADAP S.:
Oriented strands: dynamics of stiff
multi-body system.
In Proceedings of the 2006 ACM
SIGGRAPH/Eurographics Symposium on Computer Animation(2006), pp. 91–100.
[Hil06] H ILFER R.: Macroscopic capillarity and hysteresis forflow in porous media. Phys. Rev. E 73 (Jan 2006), 016307.
c 2012 The Author(s)c 2012 The Eurographics Association and Blackwell Publishing Ltd.

[HPS11] H UBER M., PABST S., S TRASSER W.: Wet cloth simulation. In Computer Graphics International Workshop (2011).
[L1́1] LÓ REAL .: Unexpected properties of hair, http://www.hairscience.com.
[LAD08] L ENAERTS T., A DAMS B., D UTRÉ P.: Porous flow inparticle-based fluid simulations. In SIGGRAPH ’08: ACM SIG-

W. Rungjiratananon, Y. Kanamori & T. Nishita / Wetting Effects in Hair Simulation

Table 1: The computational time in seconds taken in each process.
No. of hair segments /Max no. of water particles
15,000 segments / 2,500 particles(Figure 7)
105,000 segments / 8,200 particles(Figure 9)
134,000 segments / 9,500 particles(Figure 10)

CSM

SPH

Voxelization

Water flow

0.331

Water absorption
and diffusion
0.003

0.034

0.098

0.185
0.239

0.212

3.182

0.284

3.872

GRAPH 2008 papers (2008), ACM, pp. 1–8.
[LC87] L ORENSEN W. E., C LINE H. E.: Marching cubes: A
high resolution 3d surface construction algorithm. COMPUTER
GRAPHICS 21, 4 (1987), 163–169.
[LD09] L ENAERTS T., D UTRÉ P.: Mixing fluids and granular materials. Computer Graphics Forum (Proceedings of Eurographics
2009) 28, 2 (2009), 213–218.
[MCG03] M ÜLLER M., C HARYPAR D., G ROSS M.: Particlebased fluid simulation for interactive applications. In SCA ’03:
Proceedings of the 2003 ACM SIGGRAPH/Eurographics symposium on Computer animation (2003), pp. 154–159.
[MHHR07] M ÜLLER M., H EIDELBERGER B., H ENNIX M.,
R ATCLIFF J.: Position based dynamics. Journal of Visual Communication and Image Representation 18, 2 (2007), 109–118.
[MSKG05] M ÜLLER M., S OLENTHALER B., K EISER R.,
G ROSS M.: Particle-based fluid-fluid interaction. In SCA ’05:
Proceedings of the 2005 ACM SIGGRAPH/Eurographics symposium on Computer animation (2005), pp. 237–244.
[MSW∗ 09] M C A DAMS A., S ELLE A., WARD K., S IFAKIS E.,
T ERAN J.: Detail preserving continuum simulation of straight
hair. ACM Trans. Graph. 28 (2009), 62:1–62:6.

Total time

0.005

Collisions
and cohesions
0.470

0.009

0.034

3.797

7.419

0.015

0.037

4.126

8.573

0.941

[SBCN10] S ILVA P., BANDO Y., C HEN B.-Y., N ISHITA T.:
Curling and clumping fur represented by texture layers. Vis.
Comput. 26 (2010), 659–667.
[SLF08] S ELLE A., L ENTINE M., F EDKIW R.: A mass springmodel for hair simulation. ACM Transactions on Graphics 27(2008), 64:1–64:11.
[ST07] S PILLMANN J., T ESCHNER M.: CORDE: Cosseratrod elements for the dynamic simulation of one-dimensionalelastic objects.
In Proceedings of the 2007 ACM SIGGRAPH/Eurographics Symposium on Computer Animation(2007), pp. 63–72.
[VMT06] VOLINO P., M AGNENAT-T HALMANN N.: Real-timeanimation of complex hairstyles. IEEE Transactions on Visualization and Computer Graphics 12, 2 (2006), 131–142.
[WBK∗ 07] WARD K., B ERTAILS F., K IM T.-Y., M ARSCHNER
S. R., C ANI M.-P., L IN M.: A survey on hair modeling: Styling,simulation, and rendering. IEEE Transactions on Visualization
and Computer Graphics (TVCG) 13, 2 (2007), 213–234.
[WGL07] WARD K., G ALOPPO N., L IN M.: Interactive virtual
hair salon. Presence: Teleoper. Virtual Environ. 16 (June 2007),
237–251.

[NB] N ITAO J. J., B EAR J.: Potentials and Their Role in Transport in Porous Media. Water Resources Research 32, 2, 225–250.

[WL04] WARD K., L IN M. C.: Modeling hair influenced by water and styling products. In In International Conference on Computer Animation and Social Agents (CASA (2004), pp. 207–214.

[Osh07] O SHITA M.: Real-time hair simulation on GPU with adynamic wisp model. In Comput. Animat. Virtual Worlds (2007),
vol. 18, John Wiley & Sons, Ltd., pp. 583–593.

[WMT05] WANG H., M UCHA P. J., T URK G.: Water drops on
surfaces. ACM Trans. Graph. 24 (2005), 921–929.

[Pai02] PAI D. K.: Strands: Interactive simulation of thin solids
using cosserat models. Computer Graphics Forum 21, 3 (2002),
347–352.
[RCT91] ROSENBLUM R. E., C ARLSON W. E., T RIPP E.: Simulating the structure and dynamics of human hair: Modelling, rendering and animation. The Journal of Visualization and Computer Animation 2, 4 (1991), 141–148.

[YT10] Y U J., T URK G.: Reconstructing surfaces of particlebased fluids using anisotropic kernels. In Proceedings of the2010 ACM SIGGRAPH/Eurographics Symposium on Computer
Animation (2010), SCA ’10, Eurographics Association, pp. 217–
225.

[RJ07] R IVERS A. R., JAMES D. L.: FastLSM: fast lattice shape
matching for robust real-time deformation. ACM Transactions
on Graphics 26 (2007), 82:1–82:6.
[RKN10] RUNGJIRATANANON W., K ANAMORI Y., N ISHITA T.:
Chain shape matching for simulating complex hairstyles. Computer Graphics Forum 29, 8 (2010), 2438–2446.
[Rob97] ROBBINS C. R.: Hair and Hair Care. Cosmetic Scienceand Technology Series, 1997.
[Rob02] ROBBINS C. R.: Chemical and physical behavior of human hair, fourth ed. Springer, 2002.
[RSKN08] RUNGJIRATANANON W., S ZEGO Z., K ANAMORI Y.,
N ISHITA T.: Real-time animation of sand-water interaction.
In Computer Graphics Forum (Proc. of Pacific Graphics 2008)(2008), vol. 27, pp. 1887–1893.
c 2012 The Author(s)c 2012 The Eurographics Association and Blackwell Publishing Ltd.