Game Development Reference
Figure 5.1. Illustration of the different key techniques employed in the presented algo-
rithm. (a) Flow-guided smoothing for simplification and abstraction. (b) Shock filtering
to preserve and enhance sharp edge transitions. (c) Edge smoothing for antialiasing.
directional features while increasing contrast, which helps to clarify boundaries
and features. This chapter follows up on a technical paper [Kyprianidis and
Kang 11] presented at Eurographics 2011 and provides an in-depth discussion of
implementation details, including a few enhancements. For a discussion of related
work and comparisons with other techniques, the interested reader is referred to
the technical paper. The implementation is based on CUDA, and pitch linear
memory is used for all image data. This has the advantage that image data is
directly accessible on the device for reading and writing but can be bound to
textures as well.
A schematic overview of the presented technique is shown in Figure 5.3. Input
is given by a grayscale or color image (RGB color space is used for all examples).
The algorithm runs iteratively and stops after a user-defined number of iterations,
Figure 5.2. Examples created by the technique described in this chapter.