Carmack to use shadow map in the next game?

DiGuru said:
You would only filter depth (or intensity) of pixels that are visible from the light source. How would you get soft shadows that way?

When you start out with a very dark scene and you turn on the lights, the things that are not illuminated are said to be in the shadow. Ergo: it depends on your definition of shadows: as being the absence of light or as spots that are made darker.

The idea is, that you use only those illumination maps to make dark things brighter.
The point is, you can only filter what's in the texture. For soft shadows, you need an interpolation from dark (in shadow) to bright. Your intensity (depth) map doesn't contain any information about areas in shadow, so a simple texture filter won't help you at all.

What you can do, however, is doing the depth comparison for each of four texture samples, and then filter the boolean comparison values. NVidia does this "percentage closer filtering" since GeForce3.
 
Xmas said:
The point is, you can only filter what's in the texture. For soft shadows, you need an interpolation from dark (in shadow) to bright. Your intensity (depth) map doesn't contain any information about areas in shadow, so a simple texture filter won't help you at all.

What you can do, however, is doing the depth comparison for each of four texture samples, and then filter the boolean comparison values. NVidia does this "percentage closer filtering" since GeForce3.

Ah, yes. I get it. That sure is hard to visualize!

I'll look up the "percentage closer filtering". Thanks!
 
Scali said:
I trust Carmack made the wrong choice. He could add a GPU-accelerated path in less than a day, I know I did. Since his game was delayed over a year anyway, one day more or less wouldn't matter. So I find it inexcusable that he failed to implement such a path.

FYI:

http://www.beyond3d.com/forum/viewtopic.php?start=20&t=14966

Reverend said:
I was looking for sites that plugged this interview and came across a comment in the Voodooextreme forums (horrors!) that had the following :

Skinning on the CPU is done so that shadow volumes can be calculated on the CPU. Early in development of Doom3, Carmack stated that all shadow volume calculations were to be done on the CPU. The reason for this was to be fair to the people who didn't have vertex shader support on their systems (his code for shadow volumes on the CPU was faster than vertex shaders running on the CPU). Also, he didn't want to support both options. Had he realized how late Doom 3 was going to be, he may have standardized on the vertex shader model - in which case skinning could be done on the GPU as well (assuming he could fix up the tangent vectors for the normal maps on the GPU, too).

Perhaps the full vertex shader model will be available for engine licensees.


It's been 4 years since Carmack mentioned they decided to make Doom3 and while I have been following his .plan updates like a religion, I must've missed the above part (or, well... 4 years... I forget!). Is the above true, and can anyone point me to a link (or his specific .plan file, if he did disclse the above in a .plan file)?

I believe John is god, and Scali is not crazy.
 
Many people attacked the aliasing problem of the shadow maps, but nobody except Mfa mentioned Perspective Shadow Map (PSM). Is there any problem to employ PSM in game engines?

I know there is a chapter on PSM in the "GPU Gems" book. It's said that (sorry I've not read the book) nVidia has solved some problems of the original PSM algorithm.

I am curious that any game (shipped or under development) uses PSM ?

FYI:

Marc Stamminger and George Drettakis, "Perspective Shadow Maps", Proceedings of ACM SIGGRAPH 2002.
- http://www-sop.inria.fr/reves/personnel/Marc.Stammnger/psm/
 
PSM only solve one of the aliasing issues. Covering "large" areas with relatively low resolution. The other one is the fact that your projecting a 2D grid from one space to another, and even very high resolution maps can have bad aliasing associated with this.

PSM is doable, but it's not simple, there are a lot of special cases that need to be caught.
 
I believe John is god, and Scali is not crazy.

I said it was inexcusable, yet you only post an excuse :)
Bottom line is, he didn't implement it. Whether he now thinks that was a good idea or not, is not relevant. Doom3 is out, and it is rubbish on PCs < 2.5 GHz, even with a GPU that would skin circles around the fastest CPUs in the world.
I think he should fix it in Doom3 itself, if he is going to fix it for future licensees aswell.
 
tcchiu said:
I am curious that any game (shipped or under development) uses PSM ?

Sudeki on XBox uses PSM (at least it did when I was at Climax, pretty sure it still did on release).

Works pretty well except it only only extends a fairly small way into the frustum, after that the shadow is switched off.
 
Is it even possible to make such a change in patch?

I don't see why not. The geometry already contains all the info required, since the CPU-version needs that same info. You'd just need to supply some extra shaders and change some bits in the engine to use them.
 
It's not going to happen. The source should be released at some point. When it is, Scali, you can make the mods if you want.
 
It's not going to happen. The source should be released at some point. When it is, Scali, you can make the mods if you want.

That will be at least 5 years from now, I suppose... (Quake 3 source is not even out yet, is it?).
By then I don't expect to have any kind of performance problems in Doom3 anymore. Heck, I already lost interest in the game. I've played it through a few times, and got bored with it. So I don't see why I would mod it then.
It's already too late for me. Doom3 wasn't the experience it could have been, and Carmack has lost the last bit of respect I had for him. I now see him as no more than a below-average software architect. The really good stuff will be coming from UnrealEngine 3.0, and who knows what the next 3dmark has in store for us.

And why are you so sure it's not going to happen?
Instead of everyone sucking up to Carmack, they should point out his obvious fault and pressure him for the patch.
 
Chalnoth said:
http://www.ausgamers.com/files/browsegame/html/1/3

No renderer source has been released, just game source. It's to be released in December this year if I remember correctly.

Given that discussion is renderer-specific, Scali is correct.

Rys
 
Scali said:
Ah, so it was finally released after years. Who cares :p
Actually, the first one was released over four years ago, if you look at the dates. Anyway, Rys may be right about the renderer thing.
 
Actually, the first one was released over four years ago, if you look at the dates. Anyway, Rys may be right about the renderer thing.

If you want to license a product, releasing the full source code is not a Good Idea(tm).
 
Scali said:
It's already too late for me. Doom3 wasn't the experience it could have been, and Carmack has lost the last bit of respect I had for him. I now see him as no more than a below-average software architect. The really good stuff will be coming from UnrealEngine 3.0, and who knows what the next 3dmark has in store for us.

According to Tim a UE 3 powered game should only be out in 2006. I'd be VERY DISAPPOINTED if a 2006 game was not better graphically than a 2004 one.

And why are you so sure it's not going to happen?
Instead of everyone sucking up to Carmack, they should point out his obvious fault and pressure him for the patch.

Well, if you listened to JC's QC keynote you'd pickup the fact that toggling between shadow buffers and stencils and his version of DOOM gives you:

- A lot lower performance with shadow buffers (this should come as a surprise to some who state that fill-rate is not improving as much as shader throughput making buffers an "inevitability").
- shadow buffers also use up "invisible" fillrate (and a lot in D3 since most lights are point lights).
- Only moderate quality improvements (he mentions that regular people might not even notice the soft shadows at first glance).

With that in mind, for a 2004 game, shadow volumes were a good decision, especially for the game they were doing. And quite a few people assumed since D3 was using stencils that every engine JC would do after that would use stencils so they actually forget that they have to look at the here and now and the advantages of using stencils here and now on the D3 game.

I wouldn't mind having the build JC talks about, being able to toggle between stencils and shadow buffers, but for actual gamers who were afraid D3 wouldn't run on their 3 year old machine they couldn't care less.
 
The lower performance on shadow buffer is probably because you have to switching between difference rendering context in OpenGL while in D3D, that's not a problem.
 
Back
Top