Graphics Reference
In-Depth Information
Secondary highlight
reflection vector
e'
l
Primary highlight
reflection vector
θ
θ
t
Figure 5.4. This figure shows a simple representation of the reflection vector shift that
occurs to generate the dual highlights. The secondary highlight reflection vector is
shifted toward the root of the hair fiber (which is against the direction of the hair fiber
tangent), and the primary highlight reflection vector is shifted toward the hair fiber tip.
used to apply a volumetric self-shadowing term. The resulting effect is similar
to deep shadow maps but at a much lower cost. Here is the approximated deep
shadow maps calculation:
( depth range )
( fiber spacing )
number of fibers =
( fiber radius ) ,
hair shadow alpha ) number of fibers .
hair shadow term =(1
In these calculations depth range is the distance between the hair fragment be-
ing shaded and the corresponding shadow map depth. Fiber spacing and fiber
radius are artistic tweakables that help define how dense the hair is when cal-
culating the hair self-shadowing term. Fiber radius is considered in the geom-
etry expansion step (see Section 5.2), so it is best to adjust the fiber spacing
when tuning hair self-shadowing. A larger fiber spacing means a lower number
of fibers count, which leads to a lighter self-shadowing term. The hair shadow
alpha defines how much light energy goes through each of the approximated
number of fibers . Each fiber allows (1
hair shadow alpha ) light through, so
hair shadow alpha ) number of fibers calculates the amount of light that goes
through the approximated number of fibers and reaches the hair fragment being
shadowed.
In order to take care of hair casting shadows on the environment as well
as hair self-shadowing, hair was rendered into the engine's shadow maps just
like any other shadow casting object. This allowed hair to cast shadows on
the environment as any typical shadow mapping occurs. These shadow maps
(1
Search WWH ::




Custom Search