It works!! I can't believe it actually runs on a GTX 960!!!
It's been a couple of years since I used Unreal Engine 4 but I'm quickly remembering all the features. I just created a test level and started tinkering with the settings to get an aim for the type of graphics I want. The following were just screenshots testing how it runs at 30 ~ 60fps, as well as just going crazy and ramping up the graphics to the absolute maximum.
Eventually, I'm going to start moving all my assets back into UE4 and try and make an open world environment using ray traced graphics.
I'm honestly amazed it runs at all. This honestly beats having to wait hours and hours for an image to be ray traced in programs like Vray & Mental Ray.
I haven't tried it out yet, but from what I've read in the documents, some leaking is unavoidable due to the nature of voxelization/cone tracing (at least until more hardware power drives it out completely) . My personal opinion, I don't think it's anywhere near as obnoxious or noticeable. Especially when compared to its predecessor, LPV.
It's currently recommended to just make your walls thicker, since light passing through it resembles the SSS effect.
So, that scene you took screenshots of might be the worst possible way to show it off; but it does seem like a really cool tool. I'll have to check it out. I hadn't heard much of it before.
What makes you think this is 'dynamic ray tracing'? it's voxel based, and the only tracing I think it has is voxel cone tracing. I could be wrong, as I don't know how 2 differs from 1, but with it coming from you I'm going to want some sources...
Abstract
A new approach to ray tracing is introduced.
The definition of a "ray" is extended into a
cone by including information on the spread angle
and the virtual origin. The advantages of this
approach, which tries to model light propagation
with more fidelity, include a better method of
anti-aliasing, a way of calculating fuzzy shadows
and dull reflections, a method of calculating the
correct level of detail in a procedural model and
texture map, and finally, a procedure for faster
intersection calculation.
found this video pretty cool, but trying to figure out how to install this seems like a nightmare. you have to download the ue4 source code and compile a new build or something through visual studio? yuck. what is this 2003?! Looks fun to play around with but seems like it would take a few hours to get working properly.
There's nothing stopping you from still trying, but keep in mind, I'm just barely meeting the minimum requirements to use it. I definitely read one instance on the Unreal forums of someone having issues with it with using a very older card.
wow this looks impressive, so is this an absolute nightmare to get installed or is it fairly simple?
Someone asked me how I set it up and I told them I just followed this tutorial (it's for version 1.0, but the same steps work for 2.0).
It's not too hard to get it installed. You do have to follow some of the steps carefully to keep advancing to the next. When Visual Studio starts to compile the source code together, it does take a while to complete depending on how powerful your PC is. For me it was roughly 3 ~ 4 hours when compiling finished. It also uses a lot of disk space, so have 40GB or more free when you begin to compile.
I did some more tests by throwing in some textures and changing the lighting. I'm still a bit rusty but next time I'll have more detailed props put inside (and maybe an environment ).
Definitely experiment more with your settings. If you're using any sort of ambient occlusion, including HBAO+, I found it's better to tone it down to get a more natural look. It has a tendency to interfere, in my opinion. Also, I noticed that screen space reflections stick on- so I had to check the box in the active PPV and have it disabled for sure. Keep that in mind if you plan to experiment with VXGI specular stuffs.
There are a lot of things to tweak, and any of the magic numbers you find, go out the window when you switch scene types. I'm still on the hunt for a "one size fits all" sort of solution, but I believe the best one can do, is to have settings for interior light or dark, and exterior light or dark (so possibly 4 settings for general use). When it comes to large landscape scenes? Well then things get real fun.
Also note that as soon as you start throwing more lights in the scene, with VXGI enabled on em, you'll start to see a performance hit. Same if you enable area lights and start using them. Again, experimentation is your friend here. I plan on whipping up and sharing a process/guide based on my findings. I've been tooling with VXGI for over a year now, I just hide in the shadows (pun intended!).
Yikes. And originally I thought my scene didn't have enough shadows.
Guess AO will be the first on the chopping block tomorrow. But I also wish the multi-bounce parameters had a bit more usefulness. I've been looking around the internet, but I only found one example of it actually doing what it's suppose to do, but with no further information.
Otherwise, I guess I'm going to have tweak every shadow by hand now.
Otherwise, I guess I'm going to have tweak every shadow by hand now.
what??
i played around with it for a couple hours. the results are ok, but nowhere near as nice as the baked scenes I have done with a proper lighting setup, not to mention the performance difference. Ran decently on my 1060 but its not really a practical workflow for actual gamedev at the moment. the fast iteration time is attractive for sure.
like anything, the actual content in terms of composition, asset quality and having developed the eye for what looks good and right is 10x more important than technical toys. I will take a crippled old engine with shitty outdated tools and having a well developed artistic eye over all the eye candy tools in the world but no developed skillset to actually produce quality art and trying to rely on techno whizzbangery any day. god damn kids and their skateboards on the sidewalk....
i played around with it for a couple hours. the results are ok, but nowhere near as nice as the baked scenes I have done with a proper lighting setup, not to mention the performance difference. Ran decently on my 1060 but its not really a practical workflow for actual gamedev at the moment. the fast iteration time is attractive for sure.
Well yes, but someone has to make the first push into this tech or else we're never going to see progress.
It's like VR. The current solutions still require a bit more sacrifice compared to normal AAA games made without it. But just trying to copy stuff that already exists is boring, as opposed to creating new experiences the tech actually allows for.
It's the same feelings I have with real time GI. I try not to think of what baking can do, since I want to make something that completely works without it.
I've been testing several builds of VXGI for the last year or so. I have to say I think it's not worth it. The quality even with highest settings seems off compared to baked lighting, especially in scenes that are more than a cornell box.
There's probably a lot of things that can be tweaked I imagine, but the indirect lighting doesn't look that great itself.
I imagine VXGI could be great in a Portal-esque game taking place in a smallish lab interiors setting with puzzles built around lasers/lights
If you guys want to play with VXGI without having to build your own exes, just download Toolbag. I'm not sure what nVidia's latest version has or how widely it differs from what we're doing, but it will give you a good idea of how the general concept works.
Generally speaking, VXGI can look pretty good in small scenes, as you can devote all of the voxel resolution to a relatively small area. This means that it's great for things like singular asset presentation, showing off a character, gun, vehicle, etc in a studio lighting type scene.
When it comes to rendering very large areas, this is where the drawbacks of the voxel-based approach are readily apparent. The problem is that the voxelize area has to be very large, which means the VXGI result is sparse and blurry. VRAM is a huge concern here, as voxel data is cubed rather than squared like texture data. Meaningful increases in voxel resolution for larger scenes involves data sizes that would blow the VRAM budget for most consumer GPUs, and that's not even considering all the other stuff you need to fit into VRAM for a game, like the world geometry, textures, etc.
Essentially, if your voxelized scene uses 1GB of VRAM, and you want to double the apparent resolution of the GI, you need to quadruple the amount of data which brings you up to 8GB of VRAM. 10^3 = 1000 while 20^3 = 8000.
Additional problems arise when you try to animate or move the camera through the world, moving objects through the voxel field results in popping/lighting inconsistencies as the "lego" version of the scene and/or animated objects shift around. Again, this is less apparent if you have a small scene and can devote your voxel GI to an isolated area, but it get's worse and worse the larger the scene gets.
At the end of the day for games with large environments, something like VXGI is probably just a stop gap on the way to some sort of real time ray/path tracing solution.
Replies
It's been a couple of years since I used Unreal Engine 4 but I'm quickly remembering all the features. I just created a test level and started tinkering with the settings to get an aim for the type of graphics I want. The following were just screenshots testing how it runs at 30 ~ 60fps, as well as just going crazy and ramping up the graphics to the absolute maximum.
Eventually, I'm going to start moving all my assets back into UE4 and try and make an open world environment using ray traced graphics.
I'm honestly amazed it runs at all. This honestly beats having to wait hours and hours for an image to be ray traced in programs like Vray & Mental Ray.
My personal opinion, I don't think it's anywhere near as obnoxious or noticeable. Especially when compared to its predecessor, LPV.
It's currently recommended to just make your walls thicker, since light passing through it resembles the SSS effect.
Incidentally, the first whitepaper using this technique is called "Ray tracing with Cones".
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.32.6170&rep=rep1&type=pdf
https://youtu.be/g3kLO-4fZRc
https://youtu.be/DYmf5uXFdJM
https://www.youtube.com/watch?v=Ts76Y_828Hk
https://www.geforce.com/hardware/technology/vxgi/supported-gpus
There's nothing stopping you from still trying, but keep in mind, I'm just barely meeting the minimum requirements to use it. I definitely read one instance on the Unreal forums of someone having issues with it with using a very older card.
It's not too hard to get it installed. You do have to follow some of the steps carefully to keep advancing to the next. When Visual Studio starts to compile the source code together, it does take a while to complete depending on how powerful your PC is. For me it was roughly 3 ~ 4 hours when compiling finished. It also uses a lot of disk space, so have 40GB or more free when you begin to compile.
https://www.youtube.com/watch?v=i7cOZGcetK4
There are a lot of things to tweak, and any of the magic numbers you find, go out the window when you switch scene types. I'm still on the hunt for a "one size fits all" sort of solution, but I believe the best one can do, is to have settings for interior light or dark, and exterior light or dark (so possibly 4 settings for general use). When it comes to large landscape scenes? Well then things get real fun.
Also note that as soon as you start throwing more lights in the scene, with VXGI enabled on em, you'll start to see a performance hit. Same if you enable area lights and start using them. Again, experimentation is your friend here. I plan on whipping up and sharing a process/guide based on my findings. I've been tooling with VXGI for over a year now, I just hide in the shadows (pun intended!).
That Ambient Occlusion gives me flashbacks to all the bad Unreal 3 AO settings seen in games over the years
Guess AO will be the first on the chopping block tomorrow. But I also wish the multi-bounce parameters had a bit more usefulness. I've been looking around the internet, but I only found one example of it actually doing what it's suppose to do, but with no further information.
Otherwise, I guess I'm going to have tweak every shadow by hand now.
what??
i played around with it for a couple hours. the results are ok, but nowhere near as nice as the baked scenes I have done with a proper lighting setup, not to mention the performance difference. Ran decently on my 1060 but its not really a practical workflow for actual gamedev at the moment. the fast iteration time is attractive for sure.
like anything, the actual content in terms of composition, asset quality and having developed the eye for what looks good and right is 10x more important than technical toys. I will take a crippled old engine with shitty outdated tools and having a well developed artistic eye over all the eye candy tools in the world but no developed skillset to actually produce quality art and trying to rely on techno whizzbangery any day. god damn kids and their skateboards on the sidewalk....
It's like VR. The current solutions still require a bit more sacrifice compared to normal AAA games made without it. But just trying to copy stuff that already exists is boring, as opposed to creating new experiences the tech actually allows for.
It's the same feelings I have with real time GI. I try not to think of what baking can do, since I want to make something that completely works without it.
The quality even with highest settings seems off compared to baked lighting, especially in scenes that are more than a cornell box.
There's probably a lot of things that can be tweaked I imagine, but the indirect lighting doesn't look that great itself.
I imagine VXGI could be great in a Portal-esque game taking place in a smallish lab interiors setting with puzzles built around lasers/lights
Generally speaking, VXGI can look pretty good in small scenes, as you can devote all of the voxel resolution to a relatively small area. This means that it's great for things like singular asset presentation, showing off a character, gun, vehicle, etc in a studio lighting type scene.
When it comes to rendering very large areas, this is where the drawbacks of the voxel-based approach are readily apparent. The problem is that the voxelize area has to be very large, which means the VXGI result is sparse and blurry. VRAM is a huge concern here, as voxel data is cubed rather than squared like texture data. Meaningful increases in voxel resolution for larger scenes involves data sizes that would blow the VRAM budget for most consumer GPUs, and that's not even considering all the other stuff you need to fit into VRAM for a game, like the world geometry, textures, etc.
Essentially, if your voxelized scene uses 1GB of VRAM, and you want to double the apparent resolution of the GI, you need to quadruple the amount of data which brings you up to 8GB of VRAM. 10^3 = 1000 while 20^3 = 8000.
Additional problems arise when you try to animate or move the camera through the world, moving objects through the voxel field results in popping/lighting inconsistencies as the "lego" version of the scene and/or animated objects shift around. Again, this is less apparent if you have a small scene and can devote your voxel GI to an isolated area, but it get's worse and worse the larger the scene gets.
At the end of the day for games with large environments, something like VXGI is probably just a stop gap on the way to some sort of real time ray/path tracing solution.