Q3cellshading

Jul 20, 2023

Quake III engine with Cell Shading capabilities

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, 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 graphics 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. You can set the console variable r_celshadalgo to 2, and load another map, or run using the appropriate link that came with the release.



Checkout these related ports:
  • Ztrack - Simple ncurses based pseudo-3D driving game
  • Zoom - Z-Interpreter for X with full V6 support
  • Zhlt - Zoner's Half-Life compile tools
  • Zephulor - Side scrolling arcade game
  • Zdoom - Source port for Doom-engine games
  • Zaz - Puzzle game where the player has to arrange balls in triplets
  • Zatacka - Nibbles-like multiplayer game
  • Zangband - Zangband (Zelazny Angband) with color, X11 support
  • Yquake2 - Improved version of Icculus Quake II
  • Yahtzee - Curses version of the dice game for one or more players
  • Yadex - WAD file editor, for games like Doom and Heretic
  • Xzip - Infocom game interpreter that runs under X11
  • Xye - Puzzle games like sokoban or boulderdash
  • Xworm - Classic game with apples and hungry worm
  • Xvmines - Simple minesweeper game for X Window System