Added: 1 year ago
From: DarkChris92
Views: 2,758
Sort by time | Sort by thread (beta)

Link to this comment:

Share to:

All Comments (10)

Sign In or Sign Up now to post a comment!
  • Hi...Can you explain a bit further what you're doing here. To me it seems like you're using a version of SSAO to compute visibility information at each pixel and then baking that into spherical harmonic coefficients used later on in lighting. Which would be quite ingenious. How many samples\what technique are you using for the visibility gathering? I noticed in another video you have some of the normal problems with SSAO such as flat surfaces changing occlusion as they turn and haloing.

  • Pretty cool though I'm still concerned about the screen space nature of the visibility.

  • @refcracker You are right. This technique interprets an existing AO value as a visibility function. It doesn't matter how that AO value got calculated. It can also be a baked one. There are two versions of it. If you are illuminating an object via a dynamic light, you can use it in an uncompressed form by directly inserting the direction of the light and the normal into the function. The other possibility is that you have spherical harmonics coefficients. If that's the case you can use it to ...

  • @refcracker ... calculate radiance transfer coefficients that can be used like regular PRT coefficients. In this video you can see the spherical harmonics solution. The other video's lighting was completely based on actual dynamic lights that were sampled from the environment map, which explains the haloing.

  • @refcracker It can also be used for reflection mapping, what I actually forgot to implement in this video >.<

  • This looks incredibly gorgeous. You mention 700 FPS. What system are you using, and how would this AO compare to, say, the stuff in Amnesia in terms of optimization?

  • @leewolfgang I'm running it on my laptop which has an AMD Mobility Radeon HD 5730 GPU. And before I forget it, 8xMSAA was enabled as well. I can't tell you anything about Amnesia, since I haven't played it yet and haven't yet read any technical article about their engine yet, and after after googling some minutes, I couldn't find one either. The most games use Precomputed Radiance Transfer (PRT) + SSAO + Baked AO. The problem with PRT is, that it's pretty memory heavy and not dynamic.

  • @leewolfgang SSAO has the problem that it gets applied as AO, just like baked AO. All lights, independent of where they are get attenuated the same way. This is causing black shadows, not colored shadows like in the real world, causing it to look unrealistic. I chose not to use any of these techniques in their original way at all. I render SSAO combine it with the baked AO and than convert this information into SCAO which is basically the same as PRT, but dynamic. PRT might be supported too.

  • I haven't yet... And I'm glad I haven't. There were a few mistakes in there and now it's fully optimized and runs even faster at 700fps. It even can be used in more ways than before. If I have enough time, I'll write the paper and release it. Not only for Naughty Dog, but most probably for the whole industry.

  • Did you send the scao code to naughty dog yet?:P

Loading...
Alert icon
0 / 00Unsaved Playlist Return to active list
    1. Your queue is empty. Add videos to your queue using this button:
      or sign in to load a different list.
    Loading...Loading...Saving...
    • Clear all videos from this list
    • Learn more