Efficient rendering of semi-transparent geometry in real-time
Licentiate thesis, 2010
Rendering images of semi-transparent geometry representing e.g. windows, transparent
cloth or architectural models made transparent for visualization purposes presents
a difficult problem in interactive applications due to the limitation of the ubiquitous zbuffer
of only storing one object per pixel, whereas correctly resolving the color of
transparent geometry requires considering the color of all fragments within a pixel in
the correct order. Very fine geometry, representing e.g. hair, fur or foliage that has triangles
to thin to be correctly captured by anti-aliasing hardware must often be treated
as semi-transparent and so suffer from the same limitations. Casting shadows from either
of these types of geometry presents an analogous problem as standard real-time
shadowing techniques do not take into account the opacity of materials.
This thesis presents a number of novel solutions to the problem of rendering and
casting shadows from semi-transparent and fine geometry. First, we present a method
for simply sorting camera-facing billboards efficiently on the GPU. Second, the specific
problem of rendering alpha-composited self-shadowing hair or fur, where the geometry
is typically a large number of short line-segments is addressed. Third, we present a
method that handles any type of transparent geometry under the assumption that alpha
can be considered constant for all fragments and finally, we present a general algorithm
that is able on current hardware to render any type of fine or transparent geometry which
is equivalent to backwards Monte Carlo raytracing (with no changes in ray direction).
For each new method introduced, comparisons to previous work are made considering
performance as well as quality of the rendered images.