Catalan - Spanish - English

Quake III - Cell Shading

Lastest version

Version 1.0 sports a new alternative cell shading algorithm (white texture) and a lot of bug fixes. See the change list and screenshots, or download it. It's recommended that you enable antialiasing, and by the way, Windows users should download the MSI package and uninstall the previous version.


The goal of this project is to add Cell Shading capabilities to the Quake III engine with Real-time performance.

In order to provide such feature we have decided to use Kuwahara filter. Kuwahara filter is a noise-reduction filter that preserves edges.

It uses four subquadrants to calculate the mean and variance and chooses the mean value for the region with the smallest variance.

To increase the hand-painted effect we have decided to apply a simple blur filter to reduce hard-edges on textures and increase the flatness effect.

To produce the cell shading effect we use no graphics card shaders, so our implementation could run with almost any gfx card. The edge effect is produced by painting backface polygons with a thick wireframe without textures and repaint all the scene, but this time, with textures.

We have also implemented a different algorithm (we call it White Texture) , which uses white textures. It looks like this and this, you can set the console variable r_celshadalgo to 2, and load another map, or run using the appropiate link that came with the release.

To test our modified engine just place our binary in your game's folder to frag all day long!

Ensure you have a copy of Quake 3 Arena installed on your PC. You're going to need the artwork/content from the game because it is not redistributable.


Original source code
Quake III Cell Shading on Planet Quake
Quake III - Cell Shading on Jordi Prats' homepage

Related projects

Cell Shaded Quake II
OpenGL interceptor
NPR Quake