4 ms·
This is an interesting read, but I wonder if we're going to see SSAO/HBAO becoming less relevant in the near future with the prevalence hardware which can handl
by skohan 8y ago
This is an interesting read, but I wonder if we're going to see SSAO/HBAO becoming less relevant in the near future with the prevalence hardware which can handle ray-tracing and other real-time global illumination techniques like voxel-cone tracing.
SSAO has been a valuable technique in terms of adding a lot of depth to real-time renders with a relatively low cost/quality ratio, but at the end of the day it's more or less a neat trick which is not physically based. I suspect we will see it go the way of using billboards to approximate auras around string light sources. It added a lot of atmosphere in the late 90s/early 2000s, but the feasibility of real-time bloom (and more recently volumetric lighting techniques) have relegated it to the history books.
- dahart 8y agoAgreed, ray tracing will make SSAO less necessary. One of the goals of ray tracing is to be able to unify all the ad-hoc techniques like SSAO into one easier to use framework. Ray traced games might still have over-darkening though, at least initially. A lot of ray tracing code I’m seeing is using very short max distances for AO rays. This helps with both tracing performance and with noise. But I think looking at too small of a local neighborhood is a big part of what’s responsible for the over-darkening the author is pointing out. To get realistic corner darkening, you really need path tracing or some other global illumination rendering.
- londons_explore 8y agoMethods like Adaptive Raytracing [1] should allow raytracers to mix large and small max distances and use machine learning to spot the differences and estimate it for all the rays even though a tiny percentage of rays were actually to a large distance. [1]: https://2018gputechconf.smarteventscloud.com/connect/sessionDetail.ww?SESSION_ID=152094 https://2018gputechconf.smarteventscloud.com/connect/session...
- dahart 8y agoIt would be pretty interesting to use a neural network for AO! It's a good coincidence you linked to SSIM based adaptive sampling, I'm actually using the research you linked to: I implemented the OptiX API for SSIM prediction. So far, we've used it for choosing where to send more rays, but I'm not aware of anyone using it to adapt the max distance for AO rays. That might be fun & fruitful to try! I'm not certain, but I think in theory that capping the max distance will always bias the AO (to the extent that AO even makes physical sense). You can reduce the bias by mixing lengths, but I'm not sure if you can ever fully compensate for it. More importantly, it's always (theoretically) biasing to separate AO shading from the normal surface shading & lighting calculation. AO is a beautiful simple hack, but I'm not sure it will survive the future, especially as ray and compute budgets increase. I know I've seen other AI attempts to learn AO & global illumination, just googling a bit: http://theorangeduck.com/page/neural-network-ambient-occlusion http://theorangeduck.com/page/neural-network-ambient-occlusi... https://www.youtube.com/watch?v=z_zmRWxU-PY https://www.youtube.com/watch?v=z_zmRWxU-PY
- vanderZwan 8y ago> Ray traced games might still have over-darkening though, at least initially. Couldn't we get around that similar to how we used to get around draw-distance back in the day with fake "fog" by assuming distant rays are more scattered, and hence can be modeled by less rays somehow?
- dahart 8y agoYeah, I think we could. There are definitely a bunch of ways to somewhat mitigate over-darkening. We can never completely get around it, though, unless we just go for global illumination. And still in that case, we definitely want to assume & leverage your idea that distant rays are more scattered. Aside from that, separating AO from material will always cause some kind of problem.
- dragontamer 8y agoAO is still a raytracing technique to create non-physical based depth. Ex: I'm pretty sure Voxel-cone tracing will still "unnaturally" darken corners, as pointed out in the discussion. Just because it "isn't real" doesn't dismiss the use of AO. AO improves contrast and likely improves the time it takes for humans to see the edges of objects. I don't think AO is used in movies that try to emulate reality. (ex: Iron Man's suit, Spiderman's suit, or other 3d effects). But cheaply increasing the contrast and edges of characters may remain important in video games, at the cost of being less realistic. Then again, video games don't usually look hyper-realistic anyway. There's just not enough space in the budget for that yet. Video Games can likely benefit from better sub-surface scattering for example... ------------ The only "fully real" technique is to use a 16k+ HDRI environment map for lighting. The technique doesn't seem to work for enclosed spaces though.
- gmueckl 8y agoAmbient occlusion was originally invented as a computationally lightweight way to add depth cues based on the assumption of uniformly diffuse illumination of the whole scene. This works quite well in animated movies where we perceive this as part of the stylized look. But this is not physically correct.
- skohan 8y agoMaybe, but the question is why you would do a less accurate approximation when you can easily do a better one? For example, before true HDR lighting in games was a reality, Half Life 2 faked iris adaptation by placing a brightly colored quad at the end of an exit from a dark tunnel into an outdoor space, and fading it out as you walk toward it, as if the player's vision is adapting to the brightness. Now the same effect is achieved by rendering to a floating point buffer which has much more dynamic range that can be displayed, and compressing that range in post-processing with parameters based on the light levels of the area the camera was focused on in the previous frames. It's much more faithful to real life, and it's less work than the faked solution from Half Life 2. You might be right that AO adds value beyond enhanced "realism", but it could also easily add to a long list of graphics techniques which look jarringly bad when compared to the more refined technique which replaces them.
- 8y ago
- floatboth 8y ago> adding a lot of depth with a relatively low cost/quality ratio I guess that's subjective. To me AO feels like "a relatively large performance hit [at 4K] for darkening corners that I absolutely do not want to be dark". I always turn any AO off. Am I the only one who wants just more detailed meshes and textures and LESS shader effects? I prefer plainer flatter looking things :P
- skohan 8y agoYeah 4k is a different ball game. Most graphics processes will scale with polynomial complexity with respect to screen resolution, so even if something is relatively cheap at 1080p or 1440p, at 4k you still need a lot of raw power.