Hi ! This is Joel's 3d graphics engine page, detailing my slow implementation of many ideas I've had, and others I have found out from elsewhere. The goal is ... well the goal is Quake. ish.
(a) Introduction to various ideas.
This 3d method doesn't use BSP trees, which are quite static and memory hogs and also take a lot of work to fully understand. Instead it uses Convex Polygon drawing, which is the same 3d method that Descent used. Another article on Convex Polygon drawing is available from Mark Feldman's web page (who wrote the games programmers encyclopaedia).
For now, we'll just work with a simple map, with Doom style 3d, and work our way up to full 3d - you can do that with this method, but not with BSP trees. You need to build a completely new tree for a full 3d viewer, with this method, however, you can just upgrade.
To generate a view, imagine that a map is a 2d "Floor Plan" of our level, with each distinct room space connected via its walls to other rooms. ie, each rooms co-ordinates are relative to its own centre (0,0), so each room is an entity in itself, then these are connected via their walls.