Home General Discussion

VXGI 2.0 is out!!!!!! (dynamic ray tracing)

JordanN
interpolator
Offline / Send Message
JordanN interpolator


Remember all those dynamic ray tracers that were on display at GDC?
One of the lesser known plugins is now one of the first to come out!

VXGI 2.0 is now out with a bunch of upgrades.
  • VXAL, or Voxel Area Lighting
  • Improved overall performance
  • One-pass voxelization
  • Simpler controls for tracing and voxelization
  • Support for custom G-buffer layouts
  • Stereo view reprojection
  • Simultaneous VXGI and VXAO
Download:
https://developer.nvidia.com/gameworksdownload#?search=vxgi-2.0

Github link for UE4  (you'll need to connect your Epic account to Github or else you'll see 404)
https://github.com/NvPhysX/UnrealEngine/tree/VXGI2-4.19

You can also watch the presentation here (look for "Advances in Real-Time Voxel-Based GI ")
https://www.gdcvault.com/browse/gdc-18

Replies

  • JordanN
    Offline / Send Message
    JordanN interpolator
    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.


  • melviso
    Offline / Send Message
    melviso polycounter lvl 10
    Does it work well with interiors? Any light leaks?
  • JordanN
    Offline / Send Message
    JordanN interpolator
    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.
  • Joopson
    Offline / Send Message
    Joopson quad damage
    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.
  • Michael Knubben
    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...
  • JordanN
    Offline / Send Message
    JordanN interpolator
    'Dynamic cone tracing' doesn't sound as cool.  :s

    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
    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.

  • walter
    Offline / Send Message
    walter polycounter lvl 14
  • PixelMasher
    Offline / Send Message
    PixelMasher veteran polycounter
    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.

    https://www.youtube.com/watch?v=Ts76Y_828Hk

  • melviso
    Offline / Send Message
    melviso polycounter lvl 10
    Hmm..might just try this. That video looks tempting. Only wondering whether a GTX 760M  might not be okay for this
  • JordanN
    Offline / Send Message
    JordanN interpolator
    melviso said:
    Hmm..might just try this. That video looks tempting. Only wondering whether a GTX 760M  might not be okay for this
    VXGI was originally designed with Maxwell cards in minds, so I have a strong feeling your 760M might be a little out of reach. 
    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.
  • melviso
    Offline / Send Message
    melviso polycounter lvl 10
    Made a typo error. It's a GTX 780M.
  • Ged
    Offline / Send Message
    Ged interpolator
    wow this looks impressive, so is this an absolute nightmare to get installed or is it fairly simple?
  • JordanN
    Offline / Send Message
    JordanN interpolator
    Ged said:
    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.

    https://www.youtube.com/watch?v=i7cOZGcetK4
  • JordanN
    Offline / Send Message
    JordanN interpolator
    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  ;) ).













  • Derjyn
    Offline / Send Message
    Derjyn polycounter lvl 2
    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!).
  • Shrike
    Offline / Send Message
    Shrike interpolator


    That Ambient Occlusion gives me flashbacks to all the bad Unreal 3 AO settings seen in games over the years
  • JordanN
    Offline / Send Message
    JordanN interpolator
    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. 
  • PixelMasher
    Offline / Send Message
    PixelMasher veteran polycounter

    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.... ;)
  • JordanN
    Offline / Send Message
    JordanN interpolator
    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.
    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. 
  • frmdbl
    Offline / Send Message
    frmdbl polycounter
    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 :D
  • EarthQuake
    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.


Sign In or Register to comment.