NVIDIA has now shipped NV40 and NV47 hardware
("GeForce 6 and 7"). These cards have the ability to perform a texture
lookup in the vertex stage. As mentioned at the end of the paper,
this allows the edge mesh to store vertex and normal indices
instead of 3D vectors, leading to a 6x reduction in the size of our
data structure. The (at the time of this writing, 2006) soon-to-be-released
DirectX 10 graphics cards take this one step further with a programmable
geometry processor.
Marc ten Bosch has an extension to our technique called Partial Silhouette Detection that helps maintain coherence under animation with very attractive results.
Jorn Lovisach's Stylized Haloed Outlines on the GPU adds more line styles for sketchy strokes and halos for conveying occlusion.
In the paper, we mention that artists have long used Raskar's
1999 Image Precision Silhouette Edges method, which they
apparently discovered independently. Ramesh tells us that
he is often asked about this, and suggested we
provide an example so it can be cited in the future.
Here are three: Conor O'Kane's "Honey" model (2000,
http://www.planetquake.com/polycount/info/quake3/honey/honey.shtml)
uses a 1D texture for 2-tone shading (ala Gooch) and an
inverted, black, enlarged version of the mesh to provide
cartoon outlines. Seth Galbraith wrote the Cartoon Outline
Generator tool (2001, http://www.planetquake.com/gg/tutorial/toon/)
to automate the process of producing the second mesh.
The Anim8or site offers the following artist submitted tutorial (date unknown):
http://www.anim8or.com/tutorials/from_users/toon_notes/toon_rendering_hints.jpg. Note that
Quake 3's realistic rendering engine itself is not modified by these
techniques and these models work with any Quake 3 renderer; the
changes are purely to the geometry of a model and are performed
in a modelling tool.
Ramesh Raskar has also pointed out to us that his 1999 method can
handle thick silhouettes, and that the 2001 paper shows
examples of textured strokes. Figure 12 in his 2001 paper
shows a thickened stroke exhibiting stroke-cracks; this is
where the thick-stroke-cracks problem is first described,
as we mentioned in the text.