Take the 2-minute tour ×
Arqade is a question and answer site for passionate videogamers on all platforms. It's 100% free, no registration required.

The option confused me where I had the choice between SSAO, HBAO and HDAO in Far Cry 3.

Hitting google didn't really give me any answers nor did enabling each option and comparing the results. Apparently I'm blind or something.

First off, which one's the BEST quality? Secondly, what's the real difference between these options?

share|improve this question
13  
Just so everyone knows what this is: SSAO stands for Screen Space Ambient Occlusion, HBAO = Horizon-Based Ambient Occlusion, and finally HDAO is NOT the Highland Dancers Association of Ontario (that was my first Google result). HDAO is High Definition Ambient Occlusion. Essentially, different rendering modes. –  Frank Dec 5 '12 at 15:30
    
That said, BEST quality is subjective. I recommend you remove that bit, as everyone will have their own opinion. The second question, though, should be answerable. –  Frank Dec 5 '12 at 15:37
    
Positioning yourself so that one object is in front of a flat object (e.g. a person in front of a wall) and switching between the 3 options should make it fairly obvious if you look at the silhouette edge of the foreground object. In my opinion AO looks pretty bad in Far Cry 3 no matter which option you use, with considerable performance hit. I turned it off completely by editing My Documents>My Games>Far Cry 3>GamerProfile and changing the SSAO entry to 0. (Any adjustment ingame to the settings will reset it, though - so best to make that file readonly afterwards. Faster and better, imo –  RibsNGibs Dec 5 '12 at 17:40
add comment

3 Answers 3

up vote 27 down vote accepted

H*AO offers better quality but with an increased performance hit.

SSAO is less accurate but improves image quality with a much smaller performance penalty.

If you're going to use H*AO, from what I understand you should select HDAO if you have an ATI card or HBAO if you have an nVIDIA card.

HBAO and HDAO are essentially the same thing but different vendor specific implementations.

Here are some BF3 screenshots that may help: http://www.reddit.com/r/gaming/comments/kwjtw/my_battlefield_3_screenshot_comparison_ssao_vs/

I recommend using the link they provide here: http://www.flickr.com/photos/bmorlok/6197863052/in/set-72157627662461565/lightbox/ and using the cursor keys to quickly flip back and forth between the 3 screenshots.

You should quickly be able to identify where the shadowing is taking place between none, SSAO, and HBAO.

Look at the areas where objects intersect. For example, where the floor meets the wall, where a pillar meets the ceiling, the bushes, the pieces of debris on the ground.

I took the liberty of snatching one of the photos and highlighting the areas you should be looking at while flipping back and forth.

You'll notice that SSAO shades in these same areas, but it's MUCH less pronounced.

ssao vs hbao

share|improve this answer
    
I wouldn't say SSAO is MUCH less pronounced. I honestly don't notice that big a difference between SSAO the H*AO, but the performance hit can be quite noticeable. –  musicfreak Dec 20 '12 at 7:33
add comment

HBAO also implies the use of eye image plane techniques to simulate the differences in iris size when looking from certain levels of light into other levels of light.

HDAO does not do this.

share|improve this answer
    
Hi Squall - You might like to consider editing this answer to work without the context of the answer above it. Answers do not always stay in the same order as they were given, so it's best if they stand alone. –  Simon W Jan 24 at 9:57
add comment

First off, screen space ambient occlusion is not a physically based effect at all, so there is no realism argument. Theory of the effect basically states that

any surface that is not covered (optionally within a certain distance) is lit

Even if raytraced it's just a quick and dirty way to bring out small details on models.

Second, all of the techniques in question are just iterations of the SSAO; all of them work as a post process, after the scene has been rendered. This means that shaders have to do something magical to produce anything accurate from little information that remains after rasterization.

SSAO

This is the oldest technique. It assumes that any pixel within a given screen space radius is a possible occluder. This is roughly approximated by calculating difference of blurred and original Z (depth) buffer and darkening result if blurry version has a greater value.

The pitfall of this approach is that it both falsely darkens and fails to detect certain features. You'll have to take a really good look at this pillar but you'll notice that while the ceiling is falsely shadowed on the sides it is not affected at the junction.

Ceiling meets pillar. A SSAO demonstration

This paper has some more graphic examples.

HBAO

This algorithm attempts to solve problems of SSAO. It does so by using more information, namely the normal map. Instead of searching for occluders around a pixel in screen space it tries to restore small bits of the scene and make a more informed approximation of brightness that should be there.

You can notice that ceiling much clearly faces down, also, the pillar is darker at the top.

Pillar holds up the ceiling. HBAO

A paper by NVIDIA has some more details on it.

Conclusion

HBAO is a more recent algorithm, it produces much closer approximations of... an approximation.


Images are snippets of these screenshots.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.