NVIDIA GameWorks Integration

I’d also like to clarify something about the new multi-bounce support. It is not computing a fixed number of bounces, like 2 or 3. Instead, it computes an irradiance voxel texture after voxelizing scene geometry for a frame. That texture is used in the voxelization pass on the next frame: the voxelization shader calls VXGI::GetIrradiance to obtain it, and multiplies the irradiance by r.VXGI.MultiBounceIrradianceScale. You can see the irradiance texture by setting r.VXGI.DebugMode to 4.

What means:

  1. VXGI computes one more bounce on every frame, with old information slowly fading away.
  2. Additional bounces are updated slightly later than the original lighting, but that is not visible in most cases.
  3. When r.VXGI.MultiBounceIrradianceScale is too high (and in some cases 1.0 is too high and something like 0.8 is just right), the feedback from the previous frame is too strong and irradiance just blows up exponentially. We’re working on a solution that tries to prevent from ever happening, but it’s not ready yet.

Also, multi-bounce support means that you will now see the whole scene in specular reflections, not just the lit objects.

Wow ! You guys are ! As the rendering quality gets refined and the glitches dissapear, VXGI will truly become a real alternativ to offline renderers for me! At least for some things!

How do I update to the new version of VXGI? Do I have to rebuild it etc in VS or is it more simple than that?

Thank you .

You have to get the latest tree from Github and build UE4. And place the missing DLL file that I posted above into Engine/Binaries/ThirdParty/GameWorks/VXGI/Win64/VS2013 (until submits it to Github later today).

I’m certifiably Git-tarded, but syncing (just with windows client) should do the trick.
After that you’ll need to grab the dll provided and paste it in “Engine/Binaries/ThirdParty/GameWorks/VXGI/Win64/VS2013/” <—

Build engine and you should be good to go.

Sorry about the missing DLL, I pushed it up to Github just now. I was bitten by .gitignore, I really should fix that. There might still be some other missing binaries, I’ll double check.

I did a successful run after obtaining the missing DLL, so I don’t think there is anything else missing, but can’t hurt to double check.

Hi and thank you for the explanation. Could you please upload the application with that dragon at devsupport.nvidia/ so we can see how refractions work with two bounces since refractive materials aren’t ready for ue4? I was really amazed by sych screens and it would be very kind of you and to let us try it. Thanks.

So now that he has added the missing .dll files. Sync with the windows client and only build UE4 in VS? Sorry for stupid questions but Github is seriously confusing for me :slight_smile:

That should work. Github is a bit confusing, there is no shame in admitting it. Every time I think I’ve figured out Git, something new comes up to make me scratch my head. Personally I prefer to synch with the git shell, not the windows client, but others have a different opinion. Also, some prefer the Tortoise integration into the Windows explorer.

Sorry for misleading you, I didn’t recall that the dragon was not part of our standard VXGI sample application that will be available on Devzone later week. We’ll try to add it to the sample application ASAP, but we don’t have a firm date for that yet. Too much going on to drop everything right now, but it’s in the queue.

I posted an update to the HairWorks branch, with a couple of fixes to the shader and a new build of the HairWorks DLL.

@ thank you for the upcoming dragon sample and for the HairWorks update. I hope VXGI is now not missing any dll so I can download it and compile it. :slight_smile:

@ Are you working with Epic so VXGI won’t get conflicts with their Distant Field dynamic GI for 4.8, will it they be compatible or complementary or do we have to disbale DFGI to make place for VXGI? I hope you provide a detailed documentation for how to enable multiple bounces in engine. Thank you for your work you and all of your team. :slight_smile:

Sorry, I don’t have any information about the compatibility of upcoming DFGI with VXGI. We haven’t started porting VXGI to UE4.8 yet.

Enabling multiple bounces in UE4 is really easy now, you just have to set r.VXGI.MultiBounceEnable to 1 and make sure that your BaseEngine.ini contains a “bVxgiMultiBounceSupport=true” line.

I have 107 uncommitted changes for VXGI. I try to sync but get “Sync Conflict. Please resolve all conflicted files, commit, then try syncing again.”

What am I doing wrong?

Are you using the git command shell? If so, do a ‘git status’ to see what these changes are. You probably ran the setup.bat after switching to the VXGI fork. You could stash the changes (and then delete the stash later, or just forget about it) by doing ‘git stash save’, then do your ‘git pull origin VXGI’.

Hey I’ve been playing with the latest VXGI for an hour or so and so far it’s fantastic! Shader compile times are much faster, having VXGI Voxelation enabled by default saves tons of time with converting projects, and the multi-bounce is working great. I do have one new concern however. Performance seems to have dropped since the previous release. Simple scenes that used to run with 30ms in fullscreen on my gtx 770 are now running with 35-36ms, with or without multi-bounce. When I say simple, I mean like the sample for the FPS template.

Edit: I just tried out the reflection subway scene, I’m getting 110ms in fullscreen on epic.

Edit2: VXGI doesn’t play well with stationary lights. Shadows are completely ignored for voxelation.

Edit3: Disabling static lighting and changing all lights to movable increases performance greatly.

Hair works is pretty amazing, i hope it causes a shift away from alphas with fur and hair, they are such a pain in the *** to deal with.

Anyway i have a question about the curves that hair works uses as guides.
The tutorial for hairworks shows using Shave and a Haircut to groom and make a curve which is rooted at each vertice of the model.
My question is, is it possible to use another plugin or program to create those curves?
I personally dislike Shave and a Haircut, its grooming tools are pretty clunky and outdated.
I’ve tried XGEN and zbrush in maya to create curves and they seem to make the necessary low cv point curves coming from the surface of the model ok.
But i can see the problem with is the curves aren’t mapped to the surface, and they aren’t rooted at each vertice of the model.
My question is, how can i get hair works to accept the curves which are not mapped or rooted at verts, or how do i ‘map’ the curves to the surface? how do i get the same effect that shave and a haircut creates.
is the error i get trying to export a set of curves generated from something other than shave and a haircut.
I have noticed if i go into cv point mode and move the root point of each curve to a vertice it will export the set of guide curves without error, but it wont let me open the file in hairworks viewer.
Anyway i think being able to use any grooming tool to create the curves is important, grooming always seems underestimated with hair plugins and are often clunky as hell for an artist to use, being able to find a best fit grooming tool to create guide curves for hair works would be really really fantastic

://i.gyazo/0d8bc5501d987703c34598b12f514b28.png

://i.gyazo/fbc36afbc3ec6536e6873f7a7a549255.jpg

://i.gyazo/a1904fe28cc258ba5a526076856662b0.png

ok you and me are in the same boat. Placing curves on their verts is kind of a pain. I tried to comb “shave and haircut” using Hairguides from zbrush it didn’t worked or im doing something wrong. All hairs shrunk and disappeared. Even if i followed the tutorial i’m getting your error.
and about that hairviewer error try placing skin on your mesh. Just one bone and skinning even if your model is not animated. I saw a comment about hairviewer import problem :stuck_out_tongue:


my gawd these pictures are too big…