Now I’m checking promoted build every day, to see when it will get here lol
These aren’t the droids you are looking for, move along
We believe in you <3
So I tested the new GI in promoted build and it seems to be working. But it behaves like it would work in screen space. That’s definetly bug not intended behaviour:
https://dl.dropboxusercontent.com/u/70400220/Unreal/HighresScreenshot00000.png
https://dl.dropboxusercontent.com/u/70400220/Unreal/HighresScreenshot00001.png
Also, don’t mind dark blotches. They are obvious when you use, white surfaces to test.
Another thing, this GI doesn’t work without SkyLight in level. I found it odd for first 1 min, thinking why it doesn’t work, then placed SkyLight and whoop! Worked.
In anycase I like that it is here and it works. I guess it have the same set of limitations as DFAO (limited distances, etc ?).
edit:
Also when you uncheck cast shadows on SL, GI disappears, and It seems like GI doesn’t work, when there is not enough objects to cause occlusion around (for example If I removed the wall opposite to red one, the white floor wall won’t receive any bounced lighting, even if rotate it slightly in direction of floor.
If you look at the screenshots, it’s obvious that the red shading is only being applied where shadows are being cast, unshadowed areas aren’t recieving any colour information.
If it’s screen-space and only applying in shadowed areas, then it’s pretty darn useless.
I actually don’t see what difference that makes - you’re still progressing through the exact same day / night cycle, just at a different rate. 360 degrees is 360 degrees.
On my monitor the unshadowed area also has a red tint only it’s very faint. Probably because the sunlight is contributing a lot more to the color than the second bounce is which is to be expected.
Are you sure that’s not a trick of the eye? I can’t see it at all - try putting the screenshot into an image editor and comparing the surface with pure white, when you cannot see any red area. I cannot see any red at all
The not shadowed area has a tint of red, which I guess makes sense.
I’d wait to test until it’s in an official build
To be clear - r.DistanceFieldGI (what tested out) is not an actual feature yet and it’s just gathering lighting from scene color. Aka the worst of both worlds - the overhead of DFAO + the screenspace artifacts of SSGI.
So far I am not getting good results leveraging the distance field cone trace data for GI. But something may still work out.
Thanks for explanation!
It’s still good to see some progress on this front regardless of how it will work out (:.
This guy is getting nice results.
In case you guys want to try out this early version. This is like step 1 out of 10 toward getting it usable, but the scariest part is working (efficient indirect shadowing).
Change 2390645 by on 2014/12/16 19:59:21
Distance Field Global Illumination first working version
* Requires a Movable Skylight + ‘r.DistanceFieldGI 1’ + ‘r.GenerateMeshDistanceFields’ project setting enabled
* Provides a single bounce of Diffuse GI with bounce distance limited by OcclusionMaxDistance (default 6m)
* Virtual Point Lights are placed from the directional light by ray tracing the scene’s distance fields, normal comes from SDF gradient
* Currently only placing 128*128 VPLs up to 40m from camera
* VPLs light irradiance cache samples using hemispherical disk light model, indirect shadowing is provided by the same cone traces used for Distance Field AO
* Irradiance is computed only at irradiance cache points ( every 8 pixels) and interpolated to the rest of the pixels
* Hardcoded half grey material color for now, and poor performance due to brute force VPL lighting
Thanks for the update ! I’m not sure how crude the VPL approximation is and how it would look at a distance where none are placed, but the picture looks good and it’s an interesting feature.
That actually looks pretty nice I think
Looks nice but, gag! That’s why voxel accelerated cone tracing is such a nice idea. You’ve already got your acceleration structure good to go, along with material information and etc. Yay no VPL stuff to deal with!
What’s the performance on this anyway? I don’t have time to update and etc. quite yet with Holiday stuff to do. Can anyone tell me?
Prolly lower, to what is expected, due to VPL injection (;
Never the less it’s still .
But that makes me wonder, if that is really will be much better than voxels ? Yes, yes SVOGI, was slow, but since then, we have come long way (well it’s still not super fast, but it’s within usable range)…
The only advantages it seems that DF technique will have is no leaking trough thin walls. And some data is precomputed, which makes it a bit cheaper. But other than that it seems to operate on similar principles, just against different data structure which is precomputed.
I will definitely check it out, once it is in promoted branch. Not going to compile master or backport those changes. That’s way to much.
But since, I couldn’t make something like that in milion years, I’m waiting eagerly for it :D.
I think you guys are making assumptions on things you do not understand. It’s like you heard about VPLs in a different context and now they are automatically bad. Virtual point lights are simply freely placed point representations of bounced lighting. Freely placed bounce light representations can be better than ones with quantized positions (voxels) because you can be smarter about where and how you place them.
VPLs with Distance Field GI are placed by tracing rays from the light through the distance field respresentation of the scene. It takes ~.5ms in a full Fortnite level, without even culling the objects being ray traced against (unoptimized). Triangle count does not affect it. Contrast this with Reflective Shadowmaps used by Light Propagation Volumes to inject VPLs, which would be about 6ms in this scene (from experience).
Voxel based methods are only good if you can afford enough resolution to keep the voxels small, say 10cm. That’s not possible on anything but the $600 GPU’s. Even there, the massive GPU time is not well spent. The reason is that voxels are a terrible representation for any diagonal geometry, or thin walls. The result is leaking everywhere and self-occlusion artifacts, or if you allocate all your resolution up close, then you have a poor view range. Voxel methods require huge costs to handle dynamic scene updates, because revoxelizing requires multiple rasterization of the mesh’s triangles.
Distance field GI gets around these problems by 1) storing geometry representations in distance fields which reconstruct diagonal or thin surfaces accurately after interpolation 2) Not requiring any operations on the triangles of the mesh at all. Dynamic scene updates are just replace this matrix on the GPU, no revoxelization.
Anyway I probably won’t post any more early results here. Not sure what I expected.
Oh no need to feel offended. Sorry if that is how you did understand it! (;. It was by no means intention, and I understand how much effort is needed to even get something like this to work. So very much appreciated!.
It you explained it, and now it is much more clear what is it doing! Thanks you very much for it!
That is especially . Because I also encountered this issue, on a level, which was probabaly 4x times smaller than the one from Fortnite.
Nah, please dont stop sharing your progress !
I think everybody is just super excited about anything that provides dynamic gi, and since there are so many approaches (and also approaches that use techniques that are, as described by you, from another approach, but there it did not work well, like your old voxel cone tracing compared to newer techniques like from tomorrow children, you can not genreally say this or that is bad) people just go nuts over it (myself included as you know^^)
It is super interesting to read your stuff! Please continue and dont feel offended by us questioning every thing you do Its not that we dont believe…we just want to know and understand. And of course there is also a lot of confusion because everbody (this is at least a bit the impression I have) is hoping for some holy grail in the end^^ So basically a solution that works with everything and scales independently. Sounds like a dream^^ But who knows…maybe we can achieve something close to it this generation. But the next one for sure (although I have a slight feeling that the next gen will bring realtime path tracing )
Cheers!
Hey ! Please don’t let some of the posts here discourage you from showing your developments! Your distance field work already looks and I can only imagine what else you got cooking up with them.
You know better than anyone that people will never give up on SVOGI and it’ll continue to live on as some false holy grail for GI; and Tomorrows Children using it only added fuel to that fire (as as that game looks you can see its art style is what allows that to even be possible). I don’t think anyone will be completely satisfied unless they see it running at 15fps on their own pc or with ridiculous light leaking, but what can you do?
Quick question regarding distance fields - I was wondering if it would ever be possible to mix together both baked occlusion as well as the distance field occlusion? I was thinking it would be nice to bake the sky occlusion for static objects that you know will never move or distort, but then allow moveable objects to cast and gather the AO and soft shadowing from the sky / environment.