I recommend against using SSAO. It makes games look bad (and kind of cheap), because the results do not look much like the way light really behaves.
If you want your rendering to have nice lighting, there are all kinds of preprocessed global illumination techniques you can use. Yeah, these are not great for animated objects, and SSAO people will tell you SSAO is good for animated objects ... except it isn't, because again, the result does not look anything like actual light and shadow (I don't consider speed to be a great virtue if the thing that you produced quickly is not very good... Unless there is no way to do anything better because you can't affrod it.) There are other techniques you can apply in the case of animated objects to produce much better output (baking a per-vertex occlusion representation and evaluating it on the GPU, for example.)
There was a brief window in time when SSAO maybe seemed like a good idea but we are well past that.
The reason I say SSAO makes games look "kind of cheap" is because it usually gets used by Unity games that just turn on the SSAO flag. These games are instantly recognizable.
What other realtime techniques would you recommend besides SSAO/HBAO?
I personally don't dislike the look of SSAO, but I would compare the abuse of it to the overuse of bloom ten years ago. It felt like there was an arms race to see how much of the screen you could cover with a sickly glow. The same is true of any Unity game. If you crank up the SSAO intensity it starts to look absurd, but keep it at a subtle level and (IMHO) it adds a nice depth to the visuals.
I used to think SSAO looked fine until I implemented it. Now it sticks out like a sort thumb and one of the first things I do when I play a game is I turn off the SSAO in the graphics settings.
I don't think there's anything inherently wrong with it, but it is, as you say, a 'look'. If it fits into the overall art direction and feel you are going for then good, use it. There are a lot of places it won't be the best artistic choice probably.
6 comments
[ 4.4 ms ] story [ 22.7 ms ] threadYet i wonder if the techniques these days require multiple passes ? what kind of new techniques are used today to do this with one pass ?
https://clara.io/view/966d2196-8573-47df-b9c2-bd6e1ad65a73
If you want your rendering to have nice lighting, there are all kinds of preprocessed global illumination techniques you can use. Yeah, these are not great for animated objects, and SSAO people will tell you SSAO is good for animated objects ... except it isn't, because again, the result does not look anything like actual light and shadow (I don't consider speed to be a great virtue if the thing that you produced quickly is not very good... Unless there is no way to do anything better because you can't affrod it.) There are other techniques you can apply in the case of animated objects to produce much better output (baking a per-vertex occlusion representation and evaluating it on the GPU, for example.)
There was a brief window in time when SSAO maybe seemed like a good idea but we are well past that.
The reason I say SSAO makes games look "kind of cheap" is because it usually gets used by Unity games that just turn on the SSAO flag. These games are instantly recognizable.
I personally don't dislike the look of SSAO, but I would compare the abuse of it to the overuse of bloom ten years ago. It felt like there was an arms race to see how much of the screen you could cover with a sickly glow. The same is true of any Unity game. If you crank up the SSAO intensity it starts to look absurd, but keep it at a subtle level and (IMHO) it adds a nice depth to the visuals.
Oh and, can't wait for The Witness!