Rendering engine of S.T.A.L.K.E.R.

jjensson

Newcomer
Hi folks,

I played Stalker: Shadow of Chernobyl and was extremely impressed by the renderer. I have not experienced such immersive lighting since a long time. A great part of this plays the ambient occlusion technique they use and of course the fully dynamic soft shadows on all objects/models.

Now i'm wondering - if ambient occlusion allows for very realistic lighting, why there are no other engine that uses it?

My other question for the experts here is: How does Stalker's ambient occlusion work? Is it real time (i doubt it) or is it precompiled (lightmaps/shadowmaps)??. I searched here and there and asked this question on the official forums too, but to no avail.

Please enlighten a hobbyist with your information, speculation and all other thoughts on the subject.

Thx,
jj
 
STALKER uses a deferred lighting engine (I believe it is the only commercial game that I know of to do this), which allows - as you note - for fully per-pixel dynamic lighting with many, many lights.

If you're interesting in the technology, there was a good chapter on STALKER's graphics engine in GPU Gems 2. It may have changed somewhat since then, but I suspect that the fundamentals are the same.
 
Well, AFAIK the Unreal Engine 3.x has deferred shadowing too (and no AA in DX9 :LOL: ), but it does not feature ambient occlusion.

Does nobody now if ambient occlusion has to be precalculated (in Stalker or in general) ATM?

jj
 
Well, AFAIK the Unreal Engine 3.x has deferred shadowing too (and no AA in DX9 :LOL: ), but it does not feature ambient occlusion.

Does nobody know if ambient occlusion has to be precalculated (in Stalker or in general) ATM?

jj
There is no "deferred shadowing":
...

The only reasonable excuses I've heard for lack of AA other than not enough time is the one Epic uses to justify it in the Unreal3 engine games. Basically their shadowing algorythm projects screen space pixels back into light space so they would have to do 2x or 4x the work for shadowing if AA was enabled, but that's true reguardless of the AA implementation.
And: http://forum.beyond3d.com/showthread.php?p=973073#post973073
 
Yeah there is a distinction between doing shadowing as a post-process (using depth to unproject the fragment into world space) and doing all-out deferred lighting calculations, by storing all of the BRDF inputs in a geometry buffer. STALKER uses the latter which scales extremely well with lighting/geometric complexity. I believe Gears and other UE3-based games that I know of still use forward rendering for normal lighting calculations. I'm not sure about GRAW...
 
Ah right... brain fart... UE3 uses deferred shading. hah.

I hate to hijack threads.:oops:
http://gdconf.com/conference/archives/2004/pritchard_matt.ppt
http://gdconf.com/conference/archives/2004/geldreich_rich.ppt
Deferred lighting or deferred shading say only, which stage of the rendering pipeline is deferred.
Lighting – Light accumulation
Process can take into account a pixel’s location, normal (or full tangent frame for anisotropic shading), and some aspect(s) of the illumination model’s BRDF function (i.e. specular power for Phong)
Basically, “lighting” = Irradiance computation for direct light sources, diffuse and specular contributions separately accumulated
Shading – The process of computing an output pixel’s final color (or exit radiance for HDR) using all of the pixel’s attributes (such as albedo, specular color, etc.), accumulated light, and a shading function.
Shading can be done at many places:
During lighting passes (only final color is accumulated)
All at once as a final image space post process
During a final scene render pass
Deferred rendering = no MSAA possible (no MSAA on MRTs)
http://forum.beyond3d.com/showthread.php?p=973073#post973073
As you see, there is MSAA in R6V.
In STALKER it's possible to force 2x2 OGSSAA via DXTweaker.:smile:
In our title we use the same technique (with AA ;) ) and we call it deferred shadowing, others call it forward shadow mapping
I hope, you know who Nr. 5 was: Malfunction. Need input.
 
Last edited by a moderator:
Deferred lighting or deferred shading say only, which stage of the rendering pipeline is deferred.

Right... I wasn't trying to say it was a deferred renderer as a whole... The original topic was about deferred lighting and I got confused with "shading/shadowing" and thought of UE3.
 
In our title we use the same technique (with AA ;) ) and we call it deferred shadowing, others call it forward shadow mapping
Surely not this forward shadow mapping, right? And by "with AA", what are you doing exactly (if it's not a secret)? Please not a screen space blur...

I'm aware of the deferred shadowing method of rendering the eye-space depth buffer, then for each fragment working out the world position, projecting into light space, and doing shadow mapping as usual. Is that what you're doing?
 
Alright I give up: how are you doing 4x MSAA w/o VSM? :)
wrong space :) 4X AA in screen space, not shadow map/texture space, shadows are computed without AA, basicly we have a 720p texture filled with a per pixel occlusion term which gets someway mapped over a 720p 4X AAed color buffer.
 
wrong space :) 4X AA in screen space, not shadow map/texture space
Okay, that makes more sense :) Check out the demo I posted earlier though - shadow map MSAA is awesome!

[...] shadows are computed without AA, basicly we have a 720p texture filled with a per pixel occlusion term which gets someway mapped over a 720p 4X AAed color buffer.
Sounds cool. I'd certainly be interested in more information, but I can understand if you can't give it.
 
Too much rocket science for me... :D

Back to the remaining question. I realize that probably no one knows Stalker's engine up close... But what do you think - is the ambient occlusion they use calculated in realtime or do the have to precalculate it as shadow/light maps??

jj
 
Back
Top