Graphics Reference
In-Depth Information
linked lists for order independent transparency. Lastly, we cover further ideas
that may be worthwhile to expand the use of the hair technique or advance it
further.
To look into the technology demo that this chapter follows and that was used
as a base for integration into Tomb Raider , download the latest TressFX demo
at http://developer.amd.com/tools-and-sdks/graphics-development/amd-radeon
-sdk/.
5.1.1 Overview
In order to cover each part of the hair rendering in the easiest way to follow, it
is best to trace through the data flow path from raw hair vertices to the final
rendered image. So, here we give a high-level overview of the chapter, outlining
what to expect in each section.
Section 5.2 covers the geometry expansion step. We cover how hair geometry
is expanded from line primitives into quads that properly cover the pixels on
screen to represent hair.
The next step involves lighting and shadowing, covered in separate sections. In
Section 5.3, we cover details on the hair lighting model. In the separate section on
shadows, called “Shadowing and Approximated Hair Self-Shadowing,” we cover
the hair self-shadowing approximation calculations and implementation as well
as how we handle hair casting and receiving environment shadows.
Section 5.5 covers antialiasing . In this section, we cover how antialiasing is
specifically applied to hair and the image-based approach that was used in Tomb
Raider .
The next section, titled “Transparency,” covers how transparency is handled
with per-pixel linked lists. The section covers the two relevant shader passes:
A-Buffer Fill and Sort and Draw . We also describe where each of the steps,
covered in the previous sections, occurs relative to or within the transparency
shader passes.
Section 5.7 covers integration specifics. In this section, we cover how to handle
writing hair depth, because the final rendering of hair may need to be treated
as an opaque (or partially opaque) object when dealing with other transparent
objects or depth-based effects such as depth of field.
Lastly, we have the “Conclusion” section to sum up the content of the chapter
and cover possible paths of further work or improvement.
5.2 Geometry Expansion
We represented hair geometry data as individual strands made up of line seg-
ments. The line segments are represented as successive vertices. In order to
render hair in a typical triangle rasterizing graphics pipeline, each of the line seg-
ments undergoes an expansion to a quad made up of two triangles [Yu et al. 12].
Search WWH ::




Custom Search