CPE 471 Final Project: celShader


celShader does exactly what its name says it does, it cel shades. Cel Shading is a technique
that allows a 3D object to be rendered such that it appears to be flat, like a cartoon. You can
see more cel shaded effects in games such as: Nintendo's Legend of Zelda: The Wind Waker,
Ubisoft's XIII or Sega's Jet Grind Radio.




Program Description

celShader achives its flat look by using 1D textures, and a light vector. OpenGL lighting is not used, since that would light the object realistically using the phong model. Although the mesh file it self had color values associated with it, I decided to color the model myself, using both predefined groups in the mesh, and manually finding faces. In order to improve performance (the mesh file contains 40,000+ faces, and lighting needs to be calculated for each face) display lists were used to precompile the mesh and the silhouette lines. The silhouette lines were done using front face culling, depth tests, and blending. The cel shaded mesh is displayed in an open topped box that is textured mapped with 2D textures that were created by me, using photoshop.




celShader Usage

Keyboard Controls:
ESC : toggles "full screen" mode
r : toggles mesh rotation (use the left mouse button to rotate the mesh)
c : resets the mesh and the camera position + : zooms the camera in - : zooms the camera out SPACE : toggles camera rotation q : quits celShader




Links

My email
NeHe Productions - Lesson 37
University of Auckland - Toon Shading Tutorial




Screen Shots