| 
 
  |  |  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.
 
 
 |  
 
 
 |