38

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?

  • 17
    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
37

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

  • 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. – Sasha Chedygov Dec 20 '12 at 7:33
  • There are other images in that reddit post / flickr set that better show HBAO's quality improvement over SSAO— notably that in many of the indoor shots (but not the one shown above) SSAO will cast the AO “fuzzy shadows” directly behind a pillar (opposite the player/camera) whereas HBAO will cast the AO down to the ground and up to the ceiling, where it belongs. For a game where picking out whether a far-off detail is another player or a lighting fluke, I would think gamers would game about HBAO than the “I can't see the difference” reactions that appear common. – Slipp D. Thompson Dec 22 '16 at 3:39
  • @Sasha Chedygov Also keep in mind that this will appear differently across monitor brands, as well as configuration. (brightness, contrast, gamma, etc) – k1DBLITZ Jun 25 '18 at 14:21
12

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.

  • “it produces much closer approximations of...” radiosity. Would be the correct word. Calling radiosity an “approximation” is akin to calling netwonian physics an approximation— in the context of modern physics, then yes, it is an approximation; but in the context human perception, no, newtonian physics and radiosity light rendering are as good as real. This is a game designed for the purpose of human perception, not software for particle-accurate simulation. – Slipp D. Thompson Dec 22 '16 at 3:46
  • @SlippD.Thompson clearly you haven't yet played my realtime simulation of the precession of Mercury. You get to drive a planet! – Robert Grant Jun 3 '17 at 19:49
  • @RobertGrant I haven't. Link? robertgrant.org seems to be down. – Slipp D. Thompson Jun 3 '17 at 19:52
3

k1DBLITZ's answer implies that:

  • HBAO and HDAO look the same
  • They have a similar impact on the framerate

This may be true for Battlefield 3, but it isn't the case in Far Cry 3.

My answer is based on what I've experienced in-game, as well as on this article from HardOCP.

What are the differences between SSAO, HBAO and HDAO in Far Cry 3?

There are differences in how they work, how they look, and how they impact the framerate. I'm not going to detail how they work.

SSAO

SSAO creates shadows around the edges of objects, sometimes incorrectly (i.e. around edges of objects that aren't close to each other).

HBAO

HBAO results in less incorrect shadowing than SSAO, but it's sometimes too pronounced (it's even darker than SSAO in some areas), especially around grass, leaves and flowers.

As for the impact on the framerate, it's virtually identical to SSAO on AMD cards, and even very slightly faster than SSAO on Nvidia cards.

HDAO

HDAO is more subtle than SSAO and HBAO. It's probably the most accurate, because there's much less incorrect darkening.

Choosing HDAO over SSAO or HBAO results in a small framerate drop on AMD cards, and a significant one on Nvidia cards.

Which one looks the best?

The answer to this question is subjective. HDAO is probably the most realistic-looking option in Far Cry 3. However, some people may prefer SSAO, as it results in a more contrasted image, which may be more flattering to the eye.

2

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.

  • 1
    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. – Flyto Jan 24 '14 at 9:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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