SVOGI Implementation Details

Started by
121 comments, last by Josh Klint 1 year, 7 months ago

Programmer71 said:

I see that you claim 10x faster performance, have you tried your engine against ue5 yet ?

I have only tested against Unity, but it looks like the GI system will actually also be much faster than UE5, as far as I can tell so far.

Now working with multiple light bounces. There's no ambient light in the scene below.

10x Faster Performance for VR: www.ultraengine.com

Advertisement

Are you using voxelisation (sp??)

Programmer71 said:

Are you using voxelisation (sp??)

yes

10x Faster Performance for VR: www.ultraengine.com

So , basically you feed the voxelizer with geometry , is that correct ?

Programmer71 said:

So , basically you feed the voxelizer with geometry , is that correct ?

Yes. Nvidia has information on how to do this.

No bloom is used in this shot:

10x Faster Performance for VR: www.ultraengine.com

is that it ?

https://developer.nvidia.com/content/basics-gpu-voxelization

Programmer71 said:

is that it ?

https://developer.nvidia.com/content/basics-gpu-voxelization

Yes.

I need a formula for combining the indirect lighting with the direct light color. I want the indirect light to fill in the blacks, but not affect bright surfaces much. The while light is bouncing off the floor, hitting the red wall, and reflecting onto the dragon, which is also directly lit with the same white light. It does not make sense that the lit parts of the dragon would be so red, but the dark parts of the dragon are still very dark.

Simply adding them together does not look good. What is a good way to combine these?

10x Faster Performance for VR: www.ultraengine.com

In my opinion you should ocmpute how much light travels and how much irradiance contributes ti the final pixel, you might use an approximation of the integral irradiance, do not know how this is feasible in reltime, but you could use an approximations using the differentiated (sp??)from and use taylor series as ‘already integrated formula’

Josh Klint said:
I need a formula for combining the indirect lighting with the direct light color.

Simply adding them would be correct, because there is no physical difference between direct and indirect light.

If this does not look good, it's probably because of approximations on the indirect side, plus the usual artificial look of point lights. So you're not asking for a correct formula, but for a hack to improve inaccuracy with introducing even more error. Not sure if such hack is possible which gives improvements in any situation.

But to me the images look pretty good. If it's ‘too dark’, you likely want more bounces. Here you could cheat by giving the surfaces a brighter color for GI calculations than they actually have, so one bounce already causes more brightness.
Also, in test scenes we tend to use saturated colors like red or green. But that's bad and artificial, because pure red (1,0,0) can not reflect any other color than red. (0.7, 0.2, 0.2) could look more natural.

If it's ‘too bright’, you could again make the direct lights brighter for GI and darker for direct lighting.

That's the only kind of hack i can imagine here, which remains well controllable and is intuitive to use for artists. And you offload the problem to artists. ; )

In scattering problems you can track the energy loss of a packet of photons, but you can't really do that in gather problems, so it is possible for light to bounce back and forth, increasing in energy, unless you use heavy damping which darkens the scene excessively. For this reason you need to augment the formula for the indirect light to better approximate infinite bounces.

10x Faster Performance for VR: www.ultraengine.com

This topic is closed to new replies.

Advertisement