Search Unity

Wisdom Ambient Occlusion - evolved SSAO - the best AO

Discussion in 'Assets and Asset Store' started by bobcao3, May 2, 2017.

  1. bobcao3

    bobcao3

    Joined:
    Dec 13, 2016
    Posts:
    46
    Realistic AO / Temporal Accumulation / Physically Correct / Efficient / Console Ready / HDRP

    Wisdom AO is an ambient occlusion solution that uses industry leading Ground Truth Ambient Occlusion algorithm that provides ambient occlusion results similar to path-traced rendering. Wisdom AO works across the platform and it has special optimization for DX11/12 and console platforms. Wisdom AO supports both HDRP and traditional 3D pipeline, providing astonishing ambient occlusion effect.

    Features

    Industry-leading GTAO algorithm makes it have incredible image quality with a result similar to path-traced rendering result. Extremely accurate ambient occlusion result with high performance.


    This ambient occlusion features a double frequency ambient map, which provides both detailed occlusion and wide range occlusion at the same time.


    Temporal accumulation option is available in this plugin. This allows ambient occlusion be rendered with lower presets and get the same or even better results compared to non-temporal AO with blur. This gives the effect huge performance boost.


    The ambient occlusion has an efficient simulation for multi-bounced colored AO to provide near physically-accurate result that responses to different albedo and reflectivity.


    This shaders also supports PBR Injection, which allows you to create realistic occlusion. Color bleed can also be applied into Injection and make the colors much more accurate.


    High compatibility: Console ready with HDRP!
    This effect works on DirectX 12, DirectX 11, DirectX 9, Vulkan, OpenGL and GLES. Consoles (PS4, XBoxOne, and Switch), and mobile (GLES 3.1) are supported! More than that, single pass stereo and HDRP* is also supported

    About compatibility of HDRP:

    If you are using HDRP, Wisdom AO works as an Post Processing Stack v2 plugin. You need to install post processing stack v2 to use this. If you can't find the plugin in the effect list (Custom->Wisdom AO), you may need to get to WisdomAO/SRP/WisdomAO_SRP.cs and enables SRP support with the macro in the first line. Since old versions of Unity3d does not support SRP and it won't even compile without post processing stack v2, SRP support can't be enabled by default.

    If you use the standard 3D pipeline (or Legacy pipeline), you may encouter an error like this:
    ErrorOnNonHDRP.PNG
    The solution is to delete the folder "SRP" under "Wisdom AO" main folder. As files in SRP are only for HDRP support, you can delete them in non SRP pipelines, and this will solve the compilation problem. Since Unity3d does not provide a macro for HDRP enabled environment, this is a compromise I need to make. Sorry for the inconvenience.

    *Due to a bug in Asset Store Uploader, I can't upload the package for Unity 5.6.0+ platforms. This version support will come in the next minor patch soon after 1.0.0 gets onto the platform (currently in review). Currently it's 2018.2.17 or higher.

    And, more screenshots:

    a1.PNG

    0A.PNG
    0B.PNG
    PPS_v2.PNG
     
    Last edited: Dec 3, 2018
  2. bobcao3

    bobcao3

    Joined:
    Dec 13, 2016
    Posts:
    46
    Last edited: Dec 3, 2018
    Mauri and John-G like this.
  3. bobcao3

    bobcao3

    Joined:
    Dec 13, 2016
    Posts:
    46
    AO Only, No down sample
    7O.PNG
    AO Only, 2x down sample (3~4x performance). This plugin is friendly to console platforms or 4K platforms where downsamples are needed for performance issues.
    7O_downsample.PNG

    AO Only:
    8O.PNG

    AO Only
    9O.PNG

    I know you guys like a comparison, so:
    This is a comparison between standard SSAO, HBAO and Wisdom Occlusion:
    AO comparism.png
     
    Last edited: Dec 3, 2018
    John-G likes this.
  4. Pode

    Pode

    Joined:
    Nov 13, 2013
    Posts:
    145
    @bobcao3 : interesting implementation !
    Did you made some tests against NNAO (Neural Network AO) http://theorangeduck.com/page/neural-network-ambient-occlusion
    I wanted to implement NNAO for one of our mobile POC, because of its simplicity vS. quality of rendering.
    If your implementation can provide realtime speed on mobile platform, that would be interesting.
    Is it modular enough for us to add our own shader code inside it ?
     
    bobcao3 likes this.
  5. bobcao3

    bobcao3

    Joined:
    Dec 13, 2016
    Posts:
    46
    @Pode I think the lowest profile can run on mobile. I may need to test it first. But I think the GLES support is ready and usable. I will give you a voucher code. As soon as version 0.4.2 get through pending, you can also test that for me! I sent the voucher code through your forum "conversation"
     
  6. punk

    punk

    Joined:
    Jun 28, 2013
    Posts:
    408
    @bobcao3 It does look interesting, does it work in single pass VR mode?
     
  7. bobcao3

    bobcao3

    Joined:
    Dec 13, 2016
    Posts:
    46
    @punk Yes. It works in single pass stereo!
     
  8. bobcao3

    bobcao3

    Joined:
    Dec 13, 2016
    Posts:
    46
    Single pass stereo:
    Capture.PNG
     
    John-G and punk like this.
  9. AndroYD

    AndroYD

    Joined:
    Nov 3, 2014
    Posts:
    28
    Is there any watermarked/demo version for testing? I'm always looking for that sweet spot between quality/performance.
     
  10. John-G

    John-G

    Joined:
    Mar 21, 2013
    Posts:
    1,122
    Really like the results in the screen shots. Do you know if this will play nicely with Ceto ocean system?.have been unable to get an AO system that didn't cause artifacts on the water as of yet.
     
  11. bobcao3

    bobcao3

    Joined:
    Dec 13, 2016
    Posts:
    46
    I'm trying to get one. However, there are posts about assets' code can be easily stolen from those demos. Since they can always export the source code using .NET dissembler, and the whole asset is several pieces shader and C# code. I'm thinking about how to address that problem.
     
  12. bobcao3

    bobcao3

    Joined:
    Dec 13, 2016
    Posts:
    46
    I'm not sure about it. I don't have Ceto ocean system right now. If the ocean system output correct depth and normal to gbuffer, it should work. I will investigate it.
     
    John-G likes this.
  13. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    2,517
    I would absolutely love to test this AO in our project running on XboxOne and PS4. I am little hesitant to buy it when I am not sure if it will run ok on those platforms. Please PM me if you would like to test your asset on these platforms. I will gladly buy it if it proves to be indeed better than Amplify.
     
    bobcao3 likes this.
  14. bobcao3

    bobcao3

    Joined:
    Dec 13, 2016
    Posts:
    46
    V0.4.2 is released on asset store now.
     
  15. bobcao3

    bobcao3

    Joined:
    Dec 13, 2016
    Posts:
    46
    Update: XboxOne platform is supported by the shader, but it requires a update. This update will soon arrive in asset store!
     
    castor76 likes this.
  16. bobcao3

    bobcao3

    Joined:
    Dec 13, 2016
    Posts:
    46
    GLES 3.0 & 2.0 get supported in 0.4.3.
     
    Last edited: May 21, 2017
  17. bobcao3

    bobcao3

    Joined:
    Dec 13, 2016
    Posts:
    46
    Got a demo package!

    Screenshots: (I enabled tonemap so these images seem gray)
    CorridorDemo - 1920x1080 - 2017-05-07_15-37-52.jpg CorridorDemo - 1920x1080 - 2017-05-07_15-38-19.jpg CorridorDemo - 1920x1080 - 2017-05-07_15-38-53.jpg CorridorDemo - 1920x1080 - 2017-05-07_15-39-11.jpg

    Download link for demo:
    http://qionouu.cn/WisdomAO_Demo_v0.4.2b.7z
     
  18. bobcao3

    bobcao3

    Joined:
    Dec 13, 2016
    Posts:
    46
    Update: Improved performance on blurring and double frequency AO.

    For double frequency AO, high sample rate, on my intel HD Graphics 5500, the gpu time comes down to 6ms from 10.5ms. On dedicated graphics, it should be much faster. (0.2ms - 0.5ms on a modern medium class graphics card)

    These features, with a demo scene will comes to asset store in version 0.4.3, which will be in the store in several days.
     
  19. bobcao3

    bobcao3

    Joined:
    Dec 13, 2016
    Posts:
    46
    Update for 0.4.3b: (should be in asset store soon)
    1. User document is added
    2. Compatible for all kinds of platforms: GLES 3, GLES 2, Consoles, OpenGL, Direct X
    3. Ultra quality option with superior quality.
    4. Demo scene included
     
  20. Vagabond_

    Vagabond_

    Joined:
    Aug 26, 2014
    Posts:
    1,148
    Hi, just saw it in the store and i want to say that this looks much better than any other AO solution in my opinion !
    Haven't try it but judging just by the images !
    I rally like the effect, really nice shadow distribution !

    Great work !
     
    bobcao3 likes this.
  21. bobcao3

    bobcao3

    Joined:
    Dec 13, 2016
    Posts:
    46
    Thank you for appreciate this work! You can try the demo, though it is a demo for a lower version, the latest version should be even better than that!
     
  22. bobcao3

    bobcao3

    Joined:
    Dec 13, 2016
    Posts:
    46
    Update for 0.4.4 (still in devlopment)

    1. Improved sample distribution, now you don't need blur in some scene!
    2. Improved blur speed, 40% performance increase on blur
    3. Overall optimizations, about 15% performance increase on AO
     
  23. bobcao3

    bobcao3

    Joined:
    Dec 13, 2016
    Posts:
    46
    AO comparism.png

    Frame time: the lower the better
     
    ZJP and chiapet1021 like this.
  24. chiapet1021

    chiapet1021

    Joined:
    Jun 5, 2013
    Posts:
    605
    Hi @bobcao3, does Wisdom AO have a color bleed feature? Or is it something you would consider adding to a future update? Thanks!
     
  25. bobcao3

    bobcao3

    Joined:
    Dec 13, 2016
    Posts:
    46
    Yes, color bleeding is planned in the next version release! I'm working on a realistic color bleeding system with PBR deferred injection.
     
    chiapet1021 likes this.
  26. chiapet1021

    chiapet1021

    Joined:
    Jun 5, 2013
    Posts:
    605
  27. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    2,517
    Interesting. I wonder which one is faster! :D
     
    bobcao3 likes this.
  28. bobcao3

    bobcao3

    Joined:
    Dec 13, 2016
    Posts:
    46
    The performance difference is kind of subtle, but after all these optimizations, it should be a little faster!
     
  29. scvnathan

    scvnathan

    Joined:
    Apr 29, 2016
    Posts:
    75
    Hey bobcao3! Have you tested out SPSR lately? There's some really uncomfortable depth perception issues -- multipass works fine. Seems like most AO plugins out there have been running into this issue.
     
  30. bobcao3

    bobcao3

    Joined:
    Dec 13, 2016
    Posts:
    46
    I think mine works fine with single pass. I tested before with deferred rendering with SPSR. Also some Unity3d's plugin or built in effect doesn't work with SPSR and sometimes cause the AO works bad. It could also be post processing stack that breaks the normal buffer, which is some how a requirement of Wisdom AO. (You can override it with generated normal, but with lower quality)
     
  31. scvnathan

    scvnathan

    Joined:
    Apr 29, 2016
    Posts:
    75
    I just tested using the demo scene provided, so there were no other effects. However, I did forward rendering instead of deferred -- deferred is not recommended for VR due to the lack of MSAA and general performance.
    If you have a VR headset you should compare multipass vs SPSR in forward rendering.
     
  32. bobcao3

    bobcao3

    Joined:
    Dec 13, 2016
    Posts:
    46
    Can you give me a screenshot? The effect should work totally fine in SPSR with forward + MSAA
    There are some unity's effect shaders are totally not compatible with SPSR in the demo scene
     
  33. scvnathan

    scvnathan

    Joined:
    Apr 29, 2016
    Posts:
    75
    Sure, I'll post some examples tomorrow morning.
     
  34. scvnathan

    scvnathan

    Joined:
    Apr 29, 2016
    Posts:
    75
    So it's somewhat difficult to tell something is wrong with just a screenshot. You need to put on a headset to really notice the issue -- it feels like you're going cross-eyed in SPSR.

    Here's a screenshot using SPSR (disabled the Bloom script too)
     

    Attached Files:

    Last edited: Aug 1, 2017
  35. scvnathan

    scvnathan

    Joined:
    Apr 29, 2016
    Posts:
    75
    Here's a screenshot of multipass. Same scene, same settings, just multipass flipped on:
     

    Attached Files:

  36. bobcao3

    bobcao3

    Joined:
    Dec 13, 2016
    Posts:
    46
    So this is not a problem with SPSR support.. It is a problem with the gbuffers, which is totally messed up in this case. Do you have post processing stack on? Since this AO needs a normal buffer working properly, if the normal buffer is not working, the effect does not work. But you can use a generated normal buffer by turning on generated normals
     
  37. scvnathan

    scvnathan

    Joined:
    Apr 29, 2016
    Posts:
    75
    No, like I said, I'm using the demo scene you provide with the asset. It's completely stock. No post-processing stack, your bloom script is disabled, there is basically nothing on the camera except Wisdom.

    I'll try turning on generated normals
     

    Attached Files:

  38. u3gt6o8

    u3gt6o8

    Joined:
    Jun 9, 2014
    Posts:
    17
    Hi,

    Do you have an estimate when version 0.44 will be released?
     
  39. bobcao3

    bobcao3

    Joined:
    Dec 13, 2016
    Posts:
    46
    About the starting of September, with color bleed and PBR
     
    Vagabond_ likes this.
  40. multivac

    multivac

    Joined:
    Oct 27, 2009
    Posts:
    133
    Great asset, it really seems to provide the best quality/performance ratio.

    A quick improvement for those wishing to use this in combination with Unity's postprocessing stack:
    Replace OnEnable() with OnPreCull() in WisdomAO.cs to make sure depth normals are generated correctly.
     
    bobcao3 likes this.
  41. bobcao3

    bobcao3

    Joined:
    Dec 13, 2016
    Posts:
    46
    Thanks a lot for pointing that out! This will be fixed in the next version.
     
  42. andyz

    andyz

    Joined:
    Jan 5, 2010
    Posts:
    2,276
    I like what you are trying to do but the low frequency effect just seems to be stretched in the horizontal and vertical directions in an unrealistic way.

    link fixed - dropbox is a pain
     
    Last edited: Aug 22, 2017
  43. bobcao3

    bobcao3

    Joined:
    Dec 13, 2016
    Posts:
    46
    I can't load your image here
     
  44. bobcao3

    bobcao3

    Joined:
    Dec 13, 2016
    Posts:
    46
    That's a bug for old version which doesn't have randomized rotation. It is now fixed!
     
  45. ZJP

    ZJP

    Joined:
    Jan 22, 2010
    Posts:
    2,649
    Performance against HBAO (the best tested to date) are interesting. Bookmarked. :cool:
     
    bobcao3 likes this.
  46. ApolloPM

    ApolloPM

    Joined:
    Mar 24, 2017
    Posts:
    12
    Looking good. Any updates on this asset? Thanks.
     
  47. bobcao3

    bobcao3

    Joined:
    Dec 13, 2016
    Posts:
    46
    Preparing for color bleed right now
     
    punk, ApolloPM and Vagabond_ like this.
  48. VictorPinto1

    VictorPinto1

    Joined:
    Nov 6, 2017
    Posts:
    1
    Hi everyone. Would this asset work smoothly with Gear VR?
     
  49. bobcao3

    bobcao3

    Joined:
    Dec 13, 2016
    Posts:
    46
    It should work, but I don't have a gearVR device to test it. It works on SPSR and multi-pass ones on PC with other VR devices.
     
  50. SilverStorm

    SilverStorm

    Joined:
    Aug 25, 2011
    Posts:
    712
    I am always interested in new AO solutions mainly because they are all so slow.
    Right now HBAO seems to be the best performance and accuracy I can find but I still want better performance to be able to run other assets like water etc..

    Your effect does seem to be more accurate but the demo seems to run quite slowly and I wonder if the demo shows an optimized settings version.
    .
    I am using a Radeon HD5000 series card so are you saying I will get 6 ms rendering time?

    I have so much stuff going on from volumetric fog, shadows, terrain and so I wonder if it would actually be possible to get this effect to render at 1ms or less perhaps using the scaling settings or is it too much to ask for that 5000 series card?

    I also wonder if it can render grass without problems like transparent objects?
    Also why is it version 0.5 and not 1?

    Sorry for so many questions but unfortunately without a trial version I m going to have to annoy you to get the answers ahaha.