| Submitted by , posted on 10 June 2001 |

Image Description, by For my final year project at uni, I did some research into Non-photographic Rendering (NPR) methods, especially in an area called Sketchy Rendering. After seeing a few NPR images recently, I thought i'd send my own in. The image is of a Quake3Areana model in various states: wireframe, textured, and sketchy.
To achieve the sketchy effect, I do the following:

> - To shade, I do a multitexture render pass using addative blending. The first texture is a 1-d (grey-scale) texture that is indexed using Light Direction dotted with the Vertex Normal. This is used to darken the areas in shadow. The second texture is projected from the viewpoint of the camera, so that it "wraps" the model. The actual texture is just a bunch of "scribbled" lines (in grey-scale).
> - Manually find the silhouette edges - I have a pre-calculated list of all possible candidates.
> - Add "noise" to the silhouette edge vertices (to make them look "rough").
> - Render them several times (3x shown) in differing shades of grey. The z-buffer removes hidden lines from view.

The application was run on an Athlon 800 with a Geforce2 GTS (using D3D). Without any optimisation (just got it to work :), this model (526 triangles) is rendered on a 1600x1200 display (up close) at ~90 fps. A model with 10,374 triangles is rendered at ~42 fps. The models (or lights) need not be static, as the silhouettes are found dynamically every frame. Although not implemented, animated models are quite feasible.
Please ask any questions you have.
Cheers, Stuart Yarham.

[prev] | Image of the Day Gallery www.flipcode.com | [next]

Copyright 1999-2008 (C) FLIPCODE.COM and/or the original content author(s). All rights reserved.
Please read our Terms, Conditions, and Privacy information.