This post is originally from 2003 when we created a test port of Quake for the original Xbox. At the time the post was only made available to a few folks so we are reproducing it here:

Quake Xbox Quake Xbox Quake Xbox

Above are a few screen shots. Nothing really new there but Xbox's antialiasing and texture filtering are pretty sweet.

Quake Xbox

Above is the first and easiest experiment. Quake uses a sine perturbation to create a swirling motion for water, slip gates, etc. The water texture has been replaced with a grid texture to highlight the effect for the still screen shot. On the left of the composite image is the original GL Quake per vertex effect. On the right is the Xbox enhanced version, a pixel shader using dependent texture reads. Ironically, the algorithm is based on the one used by the software rendered version of Quake.

Quake Xbox Quake Xbox Quake Xbox

Implicit quadratic bezier patches for real time mesh smoothing (n-patches but different). Generating patches on the fly from ordinary triangle data and implemented in a vertex shader. These trivial to use primitives are suitable for very memory efficient mesh representations and getting more out of existing mesh assets. Performance currently peaks at around 18 million tris/second.

The left image shows a dog rendered with normal triangles. Center is the smoothed model rendered with patches. The right images show how a mesh created to light well also smoothes well (the armour) whereas one which is not lit accurately is smoothed incorrectly (the nail gun).

Quake Xbox

As it turns out, n-patches (cubic) aren't a great deal more expensive than quadratic when everything is implemented in the vertex shader. You can see that the dog is smoother in places, particularly along the hind legs.