PDA

View Full Version : Does Doom 3 calculate the shadows every frame again?



Jan
09-04-2002, 07:51 AM
Hi

I always thought Doom 3 would calculate the shadows (or the shadow volumes) every time a light is moved, so that it is not THAT expensive because updates are not so often.
However i just read the stencil-shadow tutorial at NeHe and now i am wondering, if it is possible to pre-calculate those shadows at all. I mean, you canīt just save the state of the stencil buffer and use it again in the next frame, because everytime you move, you turn, an object moves, etc. the stencil-buffer values are invalid.
So do you think Doom 3 does really calculate all the shadows every frame new, or is there any speedup-method it could use?

Jan.

Humus
09-04-2002, 08:59 AM
For static lights you can at least store the geometric model of the shadow volume and possibly cut it against walls and stuff to optimize a little. Other then that I'm not sure there are much you can preprocess.

PH
09-04-2002, 09:16 AM
For static lights DOOM stores a shadow volume beam tree.

knackered
09-04-2002, 09:32 AM
..that's static lights against static geometry.

OT:
I'd prefer a game with more dynamic scenery, rather than relying on stuff being static in order to optimize lighting. Dynamic environments = better gameplay, in my opinion.

PH
09-04-2002, 09:41 AM
..that's static lights against static geometry.


Yes, exactly.



I'd prefer a game with more dynamic scenery, rather than relying on stuff being static in order to optimize lighting. Dynamic environments = better gameplay, in my opinion.


There's nothing wrong with optimizing for cases where you know you can, that doesn't mean you can't have dynamic environments - you just run slower. From what I've seen, DOOM3 has a resonable amount of dynamic stuff ( moving machinery, monsters, swinging lights, breakable fences, pipes, glass, etc ).

Pentagram
09-04-2002, 11:57 AM
If you want to keep your cpu cost low you will need to use a caching system, keep things in caches. If alight moves throw everything for that light away and recalculate it.
(Don't forget to recalculate your halfangles if your head moves I forgot that when I did caching. http://www.opengl.org/discussion_boards/ubb/wink.gif )
And of course use static lights you can't visually see the difference between precalculated volumes or dynamically calculated ones so it's what J.C. calls unified lighting. (I hope this thread won't become 6 pages because of this sentence http://www.opengl.org/discussion_boards/ubb/wink.gif ).

Charles