Are contact shadows really that important?

Which game was causing the 30% drop if you don't mind my asking?
my stuff
the thing about SSAO its about the most expensive operation u can do
u need depth values + ideally the normal values. ok no probs there but then u have to heaps of sample of these values, and then afterwards u have to do a couple blur passes. == a large drop in performance (+ if u want better quality like the nviodia pdf below youve gotta jump though a lot more hoops, halving your fps perhaps)

I havent played crysis (+ couldnt find with a google any benchmarks with SSAO on/off compared)
but did find this
http://bbs.pczilla.net/viewthread.php?action=printable&tid=4517

interesting the reiterate my experiences
Our only other thought on the matter is the whether SSAO is worth the performance hit if these numbers are correct. AMD’s press shot is one of the best case scenarios for the use of SSAO, and in the game it’s very hard to notice. For a 35% drop in performance, it’s hard to justify the slightly improved visuals.

also see nvidia pdf here
http://developer.nvidia.com/object/siggraph-2009.html
 
I think the game itself supports AO cause I remember the visual setting having AO option...& that was when I played on XP.

I'm 99.99% sure FC2 does not support SSAO..

I havent played crysis (+ couldnt find with a google any benchmarks with SSAO on/off compared)
but did find this
http://bbs.pczilla.net/viewthread.php?action=printable&tid=4517

There actually isn't an option for SSAO in Crysis, it is turned on automatically if you set Shaders to High. On Very High the SSAO gets even purtier.

It can be forced off via the console (r_SSAO I think), but like I said the perf hit isn't anywhere close to 30% on my GTX260 and 8800GT. I'll see about some benches when I get home. :smile:
 
It can be forced off via the console (r_SSAO I think), but like I said the perf hit isn't anywhere close to 30% on my GTX260 and 8800GT. I'll see about some benches when I get home. :smile:

Values for it to activate. Heck even on a 7900GT the perfomance penalty is around 10-15% or less.
r_SSAO 0/1
r_SSAO_quality 1/2
r_SSAO_radius (depends on setting but 2 is v.h)

q_Renderer 2
q_ShaderTerrain 2
q_ShaderPostProcess 2
 
heres a screenshot of SSAO as in crysis
http://en.wikipedia.org/wiki/File:SSAO.jpg

first notice all pixels are darkened, also the creases from the polygons on the guys hat (thus theyre only taking into consideration depth values and not normal values) this is gonna result in a faster SSAO method but less accurate, see the nvidia pdf above which I linked to.

esp the slides marked Ray traced AO (gelato) this is how the AO should ideally look like.

Another reason perhaps why theres only a 10-15% hit with crysis is
A/ Ive heard it brings most cards to their knees that I assume theyre doing a lot of post processing there, so much so that adding another expensive operation aint gonna bring the FPS down to much percentage wise, now if the game ran fast adding an expensive operation eg 5-10msec is gonna be like hitting a brick wall
 
Dunno if their SSAO is the same as that image is really old and not from final game nor even near that date. Though results ingame are excellent as evident in the game.

But even disabling AA, reducing res, disabling different post-process features it still hovers around 5-10% perfomance impact for highest SSAO quality. Was about same with CE3 assimilation config going over 100fps (DF).

But even if as you said and doing very high settings you end up losing a couple of frames and still being well above 30fps on moderate systems. In that case the tradeoff in perfomance is still small as in SSAO on/off for gained visual IQ!
 
Last edited by a moderator:
CE3 will use SSAO for normals as well

ssao_normals.jpg
 
heres a screenshot of SSAO as in crysis
http://en.wikipedia.org/wiki/File:SSAO.jpg

first notice all pixels are darkened, also the creases from the polygons on the guys hat (thus theyre only taking into consideration depth values and not normal values) this is gonna result in a faster SSAO method but less accurate, see the nvidia pdf above which I linked to.

I believe they're extending SSAO to support normals in CE3, can't recall but they may already be doing it in Warhead.

Another reason perhaps why theres only a 10-15% hit with crysis is
A/ Ive heard it brings most cards to their knees that I assume theyre doing a lot of post processing there, so much so that adding another expensive operation aint gonna bring the FPS down to much percentage wise, now if the game ran fast adding an expensive operation eg 5-10msec is gonna be like hitting a brick wall

I think they already had the buffers they needed for doing other stuff, so they just reused them to do SSAO calculations. They do the occlusion calculations on an aggressively downscaled z-buffer which is said to speed things up a lot. But I suspect you know more about this stuff than I do :p

btw a 5-10 ms calculation would bring fps down more % wise if framerate is already low... perhaps I misunderstood :???:
 
They do the occlusion calculations on an aggressively downscaled z-buffer which is said to speed things up a lot.

One could test by turning SSAO downscaling off.

r_SSAO_downscale_result_mask=0 (default setting)
r_SSAO_downscale_ztarget=1 (default setting)

Dunno r_SSAO_downscale_ztarget 0 seem to impact perfomance very slightly (0.5-1fps, 65 vs 64.5fps/55 vs 54fps, v.h). However a slight visual difference is noticable when swtiching off for the better as in smoother SSAO. To test it out correctly apply excessive SSAO by r_SSAO_amount and put some high number and put your weapon against a surface say inside a house. :eek:

EDIT: Dang keeping this off, improved SSAO for almost no perfomance cost! :)
 
Last edited by a moderator:
btw a 5-10 ms calculation would bring fps down more % wise if framerate is already low... perhaps I misunderstood
no its the opposite
if the framerate is low a X amount of time is going to affect the game less percentage wise
conversely if the framerate is high its gonna affect it more (*)

Crysis is one of the games that cards struggle with, Ive heard its a game that can bring even beefy cards to their knees (thus its gonna be affected less percentagewise than most games)

(*)example is perhaps easier to understand

game A runs at 100fps, thus 10hz,
game B runs at 30fps, thus 33hz,

say SSAO adds 5msec
game A now runs at 66fps -> 100fps->66fps
game B now runs at 26fps -> 30fps->26fps

SSAO is the same cost per game (provided they use the same methods/screenmsize) i.e. its not dependant on the shaders/polygon numbers/amount of objects drawn etc
 
(*)example is perhaps easier to understand

game A runs at 100fps, thus 10hz,
game B runs at 30fps, thus 33hz,

say SSAO adds 5msec
game A now runs at 66fps -> 100fps->66fps
game B now runs at 26fps -> 30fps->26fps

SSAO on.


SSAO off.


SSAO on.


SSAO off.


(DX10 very high base +30-40% load increase by u.cfg, 4890, E8400).
 
no its the opposite
if the framerate is low a X amount of time is going to affect the game less percentage wise
conversely if the framerate is high its gonna affect it more (*)

Crysis is one of the games that cards struggle with, Ive heard its a game that can bring even beefy cards to their knees (thus its gonna be affected less percentagewise than most games)

(*)example is perhaps easier to understand

game A runs at 100fps, thus 10hz,
game B runs at 30fps, thus 33hz,

say SSAO adds 5msec
game A now runs at 66fps -> 100fps->66fps
game B now runs at 26fps -> 30fps->26fps

SSAO is the same cost per game (provided they use the same methods/screenmsize) i.e. its not dependant on the shaders/polygon numbers/amount of objects drawn etc

10Hz = 10fps
33Hz = 33fps
and so on...

you mean 100fps = 10ms per frame and 30fps = 33ms per Frame.

Ahh this makes sense. Thanks :smile:
 
10Hz = 10fps
33Hz = 33fps
and so on...

you mean 100fps = 10ms per frame and 30fps = 33ms per Frame.
yes I mistyped hz for ms some reason

But basically u get the idea a slow update game (like crysis) is affected far less from a fixed cost operation (like SSAO) than a faster game
 
I thought STALKER CoP was kind of interesting with it's various SSAO modes. It uses the new HDAO, NV's HBAO, and their own implementation.

For HDAO at the highest setting on average it took about 33ms (or slightly more). It usually halved my frame rate and while it made the bump maps really stick out and look great, it wasn't too good for actual occlusion between objects. I hear DX11 takes some strain off but for me (DX10) it just wasn't worth it.

Their default implementation usually took about 8 to 9ms. The game for me barely runs at over 30fps as is so this was still too much, though more bareable than the HDAO. Besides that it doesn't look good really at all (very splottchy and unfiltered looking).

HBAO was actually the most interesting. On average it took about 3 to 4ms, looks a lot better than default (one of the best looking implementations I've seen) and is the fastest. Can't beat that.

Of course I only run at 1440x900 (GTX 260) but if a game can get good results like HBAO at a resonable cost (say 10 to 15) then I'd definitely say it's worth it - does great for IQ, in my opinion.
 
Contact shadows seem particularly important to establish object locations in 3D space (to stop "floating"), but recently when playing with 3D vision I noticed that this problem disappears completely -- for obvious reasons. Which is a good thing, since like many screen-space postprocessing methods SSAO can cause flickering issues in stereoscopic 3D.
 
Oh no! SSAO has made some great illumination contributions so far. Removing it for 3D seems a backwards step to me, creating unconvincingly lit 3D worlds. Uncharted 2 without it's SSAO wouldn't look a patch on the beauty ND achieved.
 
My personal opinion is that contact shadows are actually more important for gameplay than long distance shadows. Contact shadows give really important clues to the brain to quickly determine 3d positions of each object.

Oh no! SSAO has made some great illumination contributions so far. Removing it for 3D seems a backwards step to me, creating unconvincingly lit 3D worlds. Uncharted 2 without it's SSAO wouldn't look a patch on the beauty ND achieved.
No worries. Screen space ambient occlusion is not the only way to do ambient occlusion. SSAO has many flaws. But it is good enough for current visual standards. The flickering is not the only problem in SSAO with stereo rendering. You have to do the SSAO post process for both eyes separately and this doubles the performance hit (unless you use some kind of projection system). For stereo 3d it would be likely better to have the ambient occlusion factor stored somehow in the surface material itself (for example in baked lightmaps or in virtual texture).
 
For static AO, sure. Dynamic shadowing on, and with, characters has seen a considerable improvement with the introduction of SSAO though, and outside of stylised renderers, I'd rather dynamic illumination push forwards.
 
Oh no! SSAO has made some great illumination contributions so far. Removing it for 3D seems a backwards step to me, creating unconvincingly lit 3D worlds. Uncharted 2 without it's SSAO wouldn't look a patch on the beauty ND achieved.
I'm not arguing for the removal of ambient occlusion! I like it as well. It will just be required to replicate the effect in a way that works with stereoscopic 3D (maybe with a larger performance hit -- hardware "overprovisioning" is something you have to live with as an early adopter ;)). What I wanted to point out is that the important gameplay aspect of contact shadows becomes irrelevant in 3D gaming. (And for now, when I regrettably have to choose between SSAO and headache-free 3D, I clearly choose the latter -- the overall impact on immersion and visual quality is much higher in my experience)
 
Back
Top