NVIDIA GameWorks Integration

I am frustrated at the moment. I did everything to create the UEGame.exe for packaging my projects. But I get always compile errors in Visual Studio. I dont know where the mistake is. First, I selected “Development Editor Win64” in the dropdown menu in Visual Studio. I selected the UE4 icon in the Solution Explorer, right click “build”. When everything is finished I selected “debugGame win64” in the pulldown menu. Then right click on the UE4 symbol (Solution Explorer) and start building. So far, so good. But then happens:

What is going on there? What am I doing wrong?!

Unreal Engine 4.9 VXGI commands (press ~ ):

r.VXGI.AmbientOcclusionScale
Scale factor for the voxel AO result.
1.0 = default

r.VXGI.CombineSpecularWithSSR
Defines if VXGI specular tracing fills is combined with SSR or replaces it
0 = replace (default);
1 = combine;

r.VXGI.CompositingMode
0 = add the VXGI diffuse result over the UE lighting using additive blending (default);
1 = visualize the VXGI indirect lighting only, with no albedo and no AO;
2 = visualize the direct lighting only;

r.VXGI.DebugBlendOutput
Alpha blend debug output
0 = disable (default);
1 = enable;

r.VXGI.DebugClipmapLevel
Current clipmap level visualized (for opacity and emittance debug modes)
15 = visualize all levels at once (default);

r.VXGI.DebugVoxelsToSkip
Number of initial voxels to skip in the ray casting if r.VXGI.DebugMode !=0 ;
0 = default;

r.VXGI.DiffuseMaterialsEnable
Whether to include diffuse lighting in the VXGI voxelized emittance
0 = disable;
1 = enable (default);

r.VXGI.DiffuseTracingEnable
Whether to enable VXGI indirect lighting
0 = disable;
1 = enable (default);

r.VXGI.EmissiveMaterialsEnable
Whethet to include emissive materials in the VXGI voxelized emittance.
0 = disable;
1 = enable (default);

r.VXGI.Emittance6D
Whether to use 6 emittance projections per voxel
0 = 3 projections;
1 = 6 projections (default);

r.VXGI.EmittanceInterpolationEnable
Whether to interpolate between downsampled and directly voxelized emittance in coarse levels of detail. Sometimes

interpolation makes illumination smoother when the camera moves
0 = disable (default);
1 = enable;

r.VXGI.EmittanceShadingMode
0 = use diffuse color = base color - base color + metallic (default);
1 = use diffuse color = base color;

r.VXGI.EmittanceShadowCascade
Restrict the emittance shadowing to a single cascade
<0 use all cascades, otherwise the index of the cascade to use;
1 = default;

r.VXGI.EmittanceShadowEnable
Whether to enable the emittance shadow term
0 = disable;
1 = enable (default);

r.VXGI.EmittanceShadowQuality
0 = no flickering;
1 = 2x2 samples (default);

r.VXGI.EmittanceStorageScale
Multiplier for the values stored in VXGI emittance textures (any value greater than zero).
1 = default

r.VXGI.ForceDisableTonemapper
Disable tonemapping
0 = false (enables tonemapping, default);

r.VXGI.ForceFrontCounterClockwise
0 = default;

r.VXGI.ForceTwoSided
0 = default;

r.VXGI.GSPassThroughEnable
Enables the use of geometry shader pass - through for voxelization, only effective when value

r.VXGI.NvidiaExtensionsEnable=1
0 = disable;
1 = enable (default);

r.VXGI.HighQualityEmittanceDownsamplingEnable
Whether to use a larger triangular filter for emittance downsampling
0 = disable (default);
1 = enable;

r.VXGI.MapSize
Size of every VXGI clipmap level in voxels. Valid values are 16,32,64,128,256.
128 = default;

r.VXGI.MultiBounceEnable
Whether to enable multi-bounce diffuse VXGI
0 = disable (default);
1 = enable;

r.VXGI.MultiBounceNormalizationEnable
Whether to try preventing the indirect irradiance from blowing up exponentially due to high feedback.
0 = disable;
1 = enable (default);

r.VXGI.NvidiaExtensionsEnable
Controls of use of NVIDIA specific D3D extensions by VXGI
0 = disable;
1 = enable (default);

r.VXGI.Opacity6D
Whether to use 6 opacity projections per voxel
0 = 3 projections;
1 - 6 projections (default);

r.VXGI.Range
Size of finest clipmap level in world units
60 = default;

r.VXGI.RoughnessOverride
Override the GBuffer roughness
0 = default;

r.VXGI.SpecularTracingEnable
Whether to enable VXGI reflections
0 = disable;
1 = enable (default);

r.VXGI.StackLevels
Number of clip stack levels in VXGI clipmap (values 1-5)
5 = default;

r.VXGI.StoreEmittanceInHDRFormat
Format of VXGI emittance voxel textures
0 = UNORM8;
1 = FP16 () or FP32 (other supported GPU’s);

r.VXGI.TemporalReprojectionEnable
0 = disable;
1 = enable (default);

r.VXGI.ViewOffsetScale
Scale factor for the distance between the camera and VXGI clipmap anchor point
1.0 = default

r.VXGI.AmbientOcclusionMode
Set voxel AO mode
= default;

I would like to download all integrated NVIDIA Gameworks functions in one package. Recently I tried VXGI branch and it works fine, but for Turbulence, Waveworks, Hairworks etc. I have to download every branch separately :frowning: … I hope that someone will upload full UE4 with all Gameworks options or maybe another solution exists.
Also I have question for NVIDIA : when will be release NVIDIA FLEX for Fermi-based video cards ? I have good old GTX570 and I have CUDA 2.0, so FLEX doesn’t work for me, but I heard about coming FLEX for all DirectX 11 graphics cards.

Ah finally an error I recognize, they are the same errors I was getting and then fixed with a commit, I’ll submit my commit tomorrow to my branch and you can apply those changes to your code.

you go: https://forums.unrealengine/showthread.php?53735-NVIDIA-GameWorks-Integration&p=391404&viewfull=1#post391404

Contains everything but Turbulence. I recently recieved some DLL’s from that will hopefully be compatible with the version of used in 4.9. So hopefully Turbulence will come soon.

Any One Give Me The Tutorial Link Of Flex And WaveWorks…

@: Thank you for your help. :slight_smile: I appreciate very much.

Good news for people who were waiting for Turbulence integration, it has arrived. Thanks to for getting a version of the APEX DLLs that work with 4.9. Please try it out and let me know if there are any issues, as I haven’t had a to thoroughly test it, the NVIDIA sample project works fine with it.

Also contains some packaging fixes. will allow you to package for Development 64-bit. I am working on some fixes to be able to package for Shipping 64-bit. I dont think there will be any support for 32-bit any time soon.

@: commit: https://github//UnrealEngine/commit/a2dd8dcc1552c8cc81db9130da795442691922dc is the VXGI packaging fix, you should be able to take that commit and force apply it to the NVIDIA branch.

Link: https://github//UnrealEngine/tree/4.9.1_NVIDIA_Techs

Don’t forget, if you are happy with the work I am doing and wish to, you can :

@: Hey buddy…Can you please put up your Nvidia Github link as your signature? It would help a lot of future users trying to find it. :slight_smile:

Somehow that never even occurred to me. And its done.

Also updated my branch, packaging for Shipping 64-bit now works and integrated HairWorks 1.1.1

@: Can I compile the “UE4Game.exe” with the new branch without the problems I described?

My branch, yes. I have compiled UE4Game.exe in development and shipping and successfully packaged my GameJam game in both Development and Shipping using my version of the branch.

Perfect. :slight_smile:

Is Turbulence the forerunner to Flameworks ? It’s just that Nvidia don’t seem to mention it much on the Gameworks site.

As far as I am aware, and Im pretty sure it was mentioned earlier, FlameWorks became a part of Turbulence

@
Unfortunately I have still problems to package my projects. I have compiled the „Development Editor win64“ and „Debug Game Win64“ with your updated branch. time everything was fine. I get also the UE4Game.exe. After I renamed the “UE4Game-Win64-DebugGame.target.xml” in Engine/Build/Receipts to “UE4Game-Win64-Development.target.xml”.

The final step was to package my project for Windows 64 in the Development mode. I get all the files I want. But my joy was short-lived. As I tried to start the “.exe” nothing happens. What could be the problem?

Don’t do the rename of the Target files, I have never needed to do that, I suspect that is breaking it, as that was a workaround for another. Just build Development Editor Win64 and Development Win64 targets, then try packaging.

Ah, ok. Thank you for information. :slight_smile:

What do you mean with “Win64 targets” ?

The “Development Editor” and “Development” Configurations for Win64. The “Development” configuration builds the UE4Game.exe required.

I will start a new try now. :slight_smile: As I understood I need to compile in Visual Studio first the “Development Editor” Win64 and after the “Configurations” Win64, right? Sorry for the many questions. The whole topic is a bit confusing for me.