NVIDIA GameWorks Integration

@GeneralD

Thank you very much for the build guide! It is super helpful :slight_smile:

I followed the steps you outlined and was able generate a custom build including Flow and VRWorks in around 90 minutes (I got lucky on the merge - only one conflict).
So far everything seems to be working just fine.

I used to understand how to use git to do the special steps necessary for the FleX branch to stop files being overwritten when running setup.bat.

However I can no longer make the instructions work as written. The instructions now acknowledge that the default branch is the NVIDIA-README branch, but they dont tell me to change branches before running setup.bat and the readme branch doesnt have the setup.bat or any other files apart from the readme! So I fall down at the first hurdle.

So, what branch am I supposed to checkout before running setup.bat and then going onto checkout a flex branch? Or have I made some other error in my thinking on one?

Same sort of question to @sieumeo, if I am interested in one of your branches that has FleX and other stuff merged, how am I supposed to get the party started without overwriting anything that FleX needs?

Thanks!

Hey,

Yu can normally checkout branch, readme branch, no problemo, just switch git branch to Flex git branch version with git
Set up Git - GitHub Docs,
https://git-scm/book/en/v2/Git-Branching-Basic-Branching-and-Merging,
I’m using tortoise git for part of job, easy to switch.

Hello everyone. Newbie . Have been following thread recently and also kind of new to unreal engine. But having started playing with it, I must say am impressed and trying to get up to speed like the rest of you. Things have been quiet on thread for some days now, but I would like to ask VItorEAFeliciano how he is doing with the gameworks all in one merge for 4.15. Am sure a lot of people are holding their breadth waiting for it including me. You are well appreciated for the effort.

Cheers.

Put all that stuff in blueprints that spawn a grid right before it needs it at the actor’s location. Seems to work pretty well in my testing. And, of course, it’ll work even better once Flow is updated to support moving grids that you can just have following the player around for something like a flamethrower.

Thanks for trying to help. The problem is that nvidia put specific instructions in the readme for the flex branches, and I think when they updated the readme to reflect the change to default branch they didnt update it properly (or I have gone crazy lol).

is the relevant part of the instructions in the Flex 4.15 branch readme:

I think that step 2 is wrong, and also step 4 has a mistake.

For step 2 to work, I have to checkout some branch before I try to run setup.bat. I didnt know which branch should be, but I am presently trying a build by trying ‘git checkout FleX’ before running setup.bat.

For step 4 I think the command should actually be git checkout FleX-4.15.0

Please someone tell me if I am right or not to suggest these alterations to the instruction. I am in the middle of building code obtained using my modified instructions so I’m not fully sure if I got it right yet! I know is simple stuff compared to people merging different branches together etc but I was thrown off because I tried to follow the readme instructions to the letter instead of figuring it out for myself.

I just followed the normal track + pull instruction and got Flex working. You can check out my merged build and see if anything helps?

Wow, thanks for the tip, i’ll check out immediately!

I think these instructions are indeed out of date and incorrect. It should be simply enough to check out the FleX-4.15.0 branch (or whatever version you are interested in) and build as normal. I’ve removed these steps from the read me, apologies for the confusion.

Answering my own question. Although it looks like the problem is with VXGI, it’s actually about NvVolumetricLighting.Build.cs not at the right location. I’ve followed @VItorEAFeliciano comment and it’s compiling now.
“Move ‘\Engine\Source\ThirdParty\GameWorks\NvVolumetricLighting.Build.cs’ to ‘\Engine\Source\ThirdParty\GameWorks\NvVolumetricLighting\NvVolumetricLighting.Build.cs’, regenerate projects.”

Thanks very much. I will try your branch later today, I’m rather excited about it :slight_smile:

Thanks for acknowledging the problem and removing the confusing instructions. No worries, it was a good opportunity for me to learn more about git!

@sieumeo
Hi and thank you for giving the link to your VXGI+Hairworks+flex+Flow build.
Unfortunatly for me it gives errors at compiling (when building UE4) and i’m not qualified to resolve it…

I’m gonna wait and pray for other future releases to work for me.

Have a nice day !

Im having an with WaveWorks. Managed to merge VXGI-4.15 and WaveWorks, and while the WaveWorks project opens, when I create a new project and copy the files to the new project, I’m getting the following error:

Assertion failed: (*WaveWorksRT)->GetRengerTargetItem().TargetableTexture->GetClearColor()==FLinearColor::Black;

line of code is in the D:\Unreal_Gameworks\UnrealEngine\Engine\Source\Runtime\Renderer\Private\PostProcess folder in the file SceneRenderTargets.cpp at line 1368.

Has anyone come across problem? Perhaps I’m doing something very wrong. New to attempting working w/ Nvidia’s github and it’s possible I’m not creating the projects correctly.

is a more detailed description of the error:

Fatal error: [File:D:\Unreal_Gameworks\UnrealEngine\Engine\Source\Runtime\RenderCore\Private\RenderingThread.cpp] [Line: 796]
Rendering thread exception:
Assertion failed: (*WaveWorksRT)->GetRenderTargetItem().TargetableTexture->GetClearColor() == FLinearColor::Black [File:D:\Unreal_Gameworks\UnrealEngine\Engine\Source\Runtime\Renderer\Private\PostProcess\SceneRenderTargets.cpp] [Line: 1368]

KERNELBASE.dll!0x0000000007B53C58
UE4Editor-Core.dll!FOutputDeviceWindowsError::Serialize() [d:\unreal_gameworks\unrealengine\engine\source\runtime\core\private\windows\windowsplatformoutputdevices.cpp:120]
UE4Editor-Core.dll!FOutputDevice::Logf__VA() [d:\unreal_gameworks\unrealengine\engine\source\runtime\core\private\misc\outputdevice.cpp:70]
UE4Editor-Core.dll!FDebug::AssertFailed() [d:\unreal_gameworks\unrealengine\engine\source\runtime\core\private\misc\assertionmacros.cpp:349]
UE4Editor-Renderer.dll!FSceneRenderTargets::BeginRenderingWaveWorks() [d:\unreal_gameworks\unrealengine\engine\source\runtime\renderer\private\postprocess\scenerendertargets.cpp:1369]
UE4Editor-Renderer.dll!FDeferredShadingSceneRenderer::RenderWaveWorks() [d:\unreal_gameworks\unrealengine\engine\source\runtime\renderer\private ranslucentrendering.cpp:1758]
UE4Editor-Renderer.dll!FDeferredShadingSceneRenderer::RenderTranslucency() [d:\unreal_gameworks\unrealengine\engine\source\runtime\renderer\private ranslucentrendering.cpp:1630]
UE4Editor-Renderer.dll!FDeferredShadingSceneRenderer::Render() [d:\unreal_gameworks\unrealengine\engine\source\runtime\renderer\private\deferredshadingrenderer.cpp:1339]
UE4Editor-Renderer.dll!RenderViewFamily_RenderThread() [d:\unreal_gameworks\unrealengine\engine\source\runtime\renderer\private\scenerendering.cpp:1731]
UE4Editor-Renderer.dll!TGraphTask<FRendererModule::BeginRenderingViewFamily'::21’::EURCMacro_FDrawSceneCommand>::ExecuteTask() [d:\unreal_gameworks\unrealengine\engine\source\runtime\core\public\async askgraphinterfaces.h:883]
UE4Editor-Core.dll!FNamedTaskThread::ProcessTasksNamedThread() [d:\unreal_gameworks\unrealengine\engine\source\runtime\core\private\async askgraph.cpp:954]
UE4Editor-Core.dll!FNamedTaskThread::ProcessTasksUntilQuit() [d:\unreal_gameworks\unrealengine\engine\source\runtime\core\private\async askgraph.cpp:701]
UE4Editor-RenderCore.dll!RenderingThreadMain() [d:\unreal_gameworks\unrealengine\engine\source\runtime\rendercore\private\renderingthread.cpp:325]
UE4Editor-RenderCore.dll!FRenderingThread::Run() [d:\unreal_gameworks\unrealengine\engine\source\runtime\rendercore\private\renderingthread.cpp:459]
UE4Editor-Core.dll!FRunnableThreadWin::Run() [d:\unreal_gameworks\unrealengine\engine\source\runtime\core\private\windows\windowsrunnablethread.cpp:76]
UE4Editor-Core.dll!FRunnableThreadWin::GuardedRun() [d:\unreal_gameworks\unrealengine\engine\source\runtime\core\private\windows\windowsrunnablethread.cpp:33]
.DLL!0x000000000AFC8364
ntdll.dll!0x000000000B3970D1
ntdll.dll!0x000000000B3970D1

Has anyone ever run into problem before? It’s very likely that I’m not properly creating a new project.

I’m being stuck at merging Volumetric Lighting into my current VXGI+Hairworks+Flex+Flow branch, most of the syntax error come from “\Engine\Source\Runtime\Renderer\Private\VxgiRendering.cpp” which is weird because there’s no changes there. If anybody has the same problem I’d love to get some tip :(.

Should be possible to resolve the NvFlow/sea conflict by setting ‘Translucency Sort Priority’ so that the fire always renders on top of the sea.

Casting shadows onto the smoke will likely be added with a later release. The current self-shadowing is very self-contained, will require deeper engine interaction to receive and cast shadows with everything else.

Just updated GitHub branch with moving grid support. Also includes refactored emitter substepping.

Excellent :slight_smile:

I dont mind admitting that Flex and Flow, and the work to integrate them with UE4 strongly influenced my decision to buy a 1080ti, mostly for VR and non-game stuff running on rigs that I can control the spec of and thus go overboard with these great simulations :slight_smile:

Problems with VRWorks and Flow Integration

Hi folks

After following the excellent build guide from @GeneralD, I was able to integrate the Flow and VRWorks branches with relatively trouble and get a clean build with no compilation errors.
So I thought that all was well, unfortunately is not the case…

When I enable any of the VRWorks options all of the Flow emitters that I place within a level appear to be very glitchy and unpredictable.

Also when I turn on either LMS or MRR options the Flow emitter is displaced within the level.

For example:

vr.MultiResRendering = 0

Everything is good:

vr.MultiResRendering = 3

The Flow emitter is displaced:

Has anyone else experienced similar problems or have any suggestions for a fix?

Many thanks in advance,