Scene for the Doom 3 engine

Been working on a personal project for some time now and this is the latest development; the cloister of a small abbey where the main character (‘Bob’) lives.

Everything is modelled in Blender and currently stands at c.7k triangles (building the scene from brushwork would probably top out at 1.5k) the reason for which is that all edges have been chamfered to get better smoothing and lighting in game (models with 90 degree edges don’t play nice with dynamic lighting.

Anyway, shot below and more info here where I’ll probably be doing another ‘dev diary’ type thing as I’m doing with a few other projects.


wonderful, can you share with us me how you exported the geometry/texture/lights to D3? A link would suffice.

I’ve got a good few tutorials on my site about getting models out of Blender into D3 (textures sort of alongside that), so it’s easiest to click my sig link. Basically;

Blender : model, UVWmap, texture, triangulate, export to ASE.
D3/Q4 : write material, edit ASE, import into editor, light, compile, run in game

Lights are all D3 I’m afraid which have to be placed individually in a scene - not that different to lighting a Blender scene really, although you have less control in terms of the shadows and overall ‘effect’ the lights have; the dynamic shadow volumes cast by lights tends to make everything look really ‘hard’ and high contrast so most of your time is spent trying to negate that issue.

I might at some point do a little test scene from start to finish in D3/Q4 so the process is shown; modelling the map, exporting, getting it into D3/Q4 and then lighting and compiling before finally running in game. It’ll be a long video!. heh
Thanks for the reply btw, I was begining to wonder if people had gone of D3/Q4 editing! lol ;o)

I am working on some project and actually needed a modern realtime renderer. And D3 works just fine. I’ll look into your method. Thanks again.

Ah, OK. Well the main thing you must watch out for is the lighting.

Without knowing the details of your project the one ‘common’ feature of all engines that use dynamic lighting seems to be how it can make a level very stark and contrasty (hard transitions between light and dark areas) which is difficult to avoid or compensate for.

Raven tweaked the lighting slightly when they developed Quake 4 which makes a significant difference to a level lit in Doom 3 compared to Quake 4 so that version of the engine is ‘better’ (obviously it depends on the ‘look’ you’re after).

Keep in mind this is for an engine that is pure dynamic lighting, there are no ‘tricks’ present in D3, no shadows maps or ‘special’ lightmaps or any other methods combined together to soften light and shadow as other engines have (HL2 and Oblivion come to mind).

Can I have some sort of ambient light shader so that the shadows (assuming there is only one light source in the map) isn’t completely black?

Actually Doom3 does use shadow maps to an extent(see image below), but probably a bit hard to implement via the blender->doom3 pipeline.

No, not if there’s only one light source. Lights in D3 can only act as ‘normal’ lights or ‘ambient’ lights, you can’t have a light behave normally and have an ambient shader attached to it (there very well could be a way using pixel shaders but you’ll be getting in to serious overheads applying something like that over an entire map).

To stop a scene from being black shadowed means using a 2nd (or more) light source. See this and this tutorial on lighting principles for D3.

Actually Doom3 does use shadow maps to an extent(see image below), but probably a bit hard to implement via the blender->doom3 pipeline.
Not quite sure what you mean by that so I’m going to assume you mean projected shadows? If that’s the case then “not quite” is the answer to that; they’re actually masked lights rather than projected shadows, so it’s not a ‘shadow map’ in the strictest sense.

You can do what are termed ‘black’ lights, that project only shadow but they are graphics card dependant; they only work on the more modern GFC cards, so anything older than say an ATI 9800 or GF7xxx won’t show the black light effect.

Ok, thanks for the clarification.