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.
@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.
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.
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.
refcracker 1 year ago
Pretty cool though I'm still concerned about the screen space nature of the visibility.
refcracker 1 year ago
@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 ...
DarkChris92 1 year ago
@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.
DarkChris92 1 year ago
@refcracker It can also be used for reflection mapping, what I actually forgot to implement in this video >.<
DarkChris92 1 year ago
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 1 year ago
@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.
DarkChris92 1 year ago
@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.
DarkChris92 1 year ago
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.
DarkChris92 1 year ago
Did you send the scao code to naughty dog yet?:P
Astrapogiannos14 1 year ago