This demo loads a Doom-3 level (using the .proc format) and renders the level using portal-based visibility culling. I use the OpenGL Shading Language (GLSL) to render the levels using the light-data loaded from the .map files.
This demo is not a 'perfect' Doom-3 mapviewer, but more of an experiment to find out how to use GLSL and render a lot of lights in realtime.
The standard shader renders the geometry using bumpmapping, diffuse and specular lighting using specularmaps (no shadows!).
During the demo you can use the following keys:
B - shows the bounding boxes of the lights.
N - shows the bounding quads of the lights in screenspace.
M - cycles through the shaders defined in de scene.
You need GLSL capable hardware such as the Radeon 9500 and up and GeForce FX 5200 and up to run this demo.
Full source code is included. You can find the demo here.