Controls: Click applet before pressing keys
| u: Strafe Left |
i: Walk Forward |
o: Strafe Right |
| j: Turn Left |
k: Walk Backward |
l: Turn Right |
Instructions
- Explore the Labyrinth
- Hint: walk forward
Comments / Methodology
- The goal was to create an indoor FPS-style game (or at least some pathetic subset...).
- This required rendering large planes that could go beyond the edge of the screen.
- Many additions to the assigned renderer were required to achieve reasonable performance with such planes, including:
- Cull Polygons Outside a Range: To render fewer polygons, and thus improve performance, all polygons outside a certain range (bounded by z=0 and z=-100) were not rendered.
- Fog: The far culling boundary had an unsightly jagged edge, so fog was added to obscure this. It also adds a visual distance cue.
- Backface Culling: Triangles were not rendered if their normal was perpendicular to or facing away from the line of sight to the Triangle.
- Culling of Offscreen Triangles: Triangles were not rendered if all their vetices were outside the viewable area.
- Tiled Planes: By allowing unseen tiles of the large planes to be culled incrementally, large numbers of offscreen pixels were prevented from being rendered.
Source