NVIDIA GameWorks Integration

I’m getting build errors after checking out your branch (I did run regenerate project files before build) :(.

I’ve just added NvFlow, will try to compile now and fix if there’s any i left behind while merging the conflicts. Will update later on.

Edit - just noticed a trivial merging:

In ShadowRendering.cpp Please look for :
void FProjectedShadowInfo::SetupProjectionStencilMask()

There’s a ‘{’ (don’t know the english word for that) missing at the opening of the declaration of function.

Should look something like that:


void FProjectedShadowInfo::SetupProjectionStencilMask(
	FRHICommandListImmediate& RHICmdList, 
	const FViewInfo* View, 
	const TArray<FVector4, TInlineAllocator<8>>& FrustumVertices,
	bool bMobileModulatedProjections, 
	bool bCameraInsideShadowFrustum
	// @third party code - BEGIN HairWorks
	, bool bHairPass
	// @third party code - END HairWorks
) const

**{**
	FDrawingPolicyRenderState DrawRenderState(*View); ...]

Also there’s some build warning with HairWorks and NV Volumetric light walking a bit on each other foot. You can prevent some warning by commenting some define in :

…/ThirdParty/Hairworks/Nv/Core/1.0/NvDefines.h



/*
#define NV_C_EXPORT NV_EXTERN_C
#define NV_NOALIAS NV_NO_ALIAS
#define NV_NOINLINE NV_NO_INLINE
#define NV_NOCOPY NV_NO_COPY
*/


I’ve just pushed it on the rep. in signature

**Edit - Edit: ** 2nd conflict merge fix is to remove “<<<<HEAD” line at the top of:
…/Engine/Source/Runtime/Renderer/Private/LightRendering.cpp

With those 2 fixes you should compile without and get all those GameWorks working on the last 4.16 build

Thank you very much for your help @. !

I’ve just pushed all the required fixes and it’s compiling without any on my side.

**Edit: **After downloading the build from github again and compiling it without, i can guarantee you build, which includes:

  • Unreal Engine 4.16.2 , last updated 5 days ago from Epic Game.
  • Nvidia GameWorks features: Flex, Flow, HairWorks, Volumetric Lightning

https://github/MaximeDup/UnrealEngine/tree/4.16-GameWorks

I might make a clean 4.16.2 with VXGI in coming days, but after couple hours dedicated to play with Unreal Engine and Nvidia code… i go back to developing my game :wink: !

is ! I’ve built and it’s running without any problem. Can’t wait for your VXGI build when you have time! I’ll try my luck merging it into build in the mean time. Cheers!

Hello
Early https://forums.unrealengine/showthread.php?53735-NVIDIA-GameWorks-Integration/page67 one interesting fellow “'s” I proposed the topic about the implementation of foam and spray in Flex. But unfortunately the theme was never disclosed and left to say into oblivion)) I’m tired of waiting and shoveled a plurality of reference text and to wrestle with the settings of the emiter in unreal engine , in the hope of somehow bit by bit to adjust something like that, but my little experience in the field of knowledge did not give result) the original versions of Flex ://docs.nvidia/gameworks/content/gameworkslibrary//flex/manual.html#diffuse-particles
How do I enable or configure yummy in UnrealEngine-FleX-4.16.0 ??
Thanks in advance and if something goes wrong with the text ,sorry for my translation from Russian into English ):slight_smile:

Hello,

I’ve been working with the 4.16 FleX integration and I was wondering if there is any way to set up an angle of rest. There is already a sand particle component (Sand Castle & Sand Container) and some properties about friction, but it only slows down the collapse of the particles. It will only stop when the sand will be flat, even if they are collapsing really slowly. I would like to make them stop falling at somepoint. Otherwise, it is not realistic.

I have played a lot around the FleX containers properties, but havent had the to figure out where and how I can accomplish that. To set up an angle of rest.

is a part of video showing the FleX particle system using friction, compared to when not using friction. Obviously, I want a behavior like the second sand castle. Just to show approximatively what I want.
[video]Unified Particle Physics for Real-Time Applications (Nvidia FLEX) - YouTube

I’m guessing it is not an easy request, but if someone got an idea or if someone has some experience with FleX, any help is welcomed! :slight_smile:

Thanks a lot!
-Reelie

Hi @., thanks for your help :D. I’m trying to merge VXGI into your latest 4.16 build by pulling Nvidia 4.15 VXGI branch into it, but I got tons of errors after merging conflicts. Can you give me some cue if is the proper route for it or I should use another branch, or I should pull your build into Nvidia 4.15 VXGI branch? Cheers.

There were someone using NvFlow with a sword a couple post earlier so it should work with skeletal mesh.

Challenge of the night: while i’m watching a Cyberpunk depressing movie i’m gonna make a clean VXGI 4.16 build and we’ll see if it can compile.
brb in 1h !

edit:

Unreal 4.16.2 - VXGI : https://github/MaximeDup/UnrealEngine/tree/4.16-VXGI

Right now, Packaging fails

@dvd.kh you could attach an emmiter to each of the bones, but it wouldnt look that good, for a static effect (player wouldnt move) you could also use the static mesh of your guy, make a higher-res distance field and make your flow emitter emit from the distance field shape

Appreciating all the hard work your doing , especially with VXGI!

Wanted to check up and see if anyone has figured out if you can render emmisive meshes (Area Lights) without having the mesh itself visible. Still trying to figure out how to best render my interiors without having large white emissive planes blocking the view of the exterior through windows.

I would very much like to know if is possible aswell, I like the look of ultra soft shadows that VXGI emmisive materials make.
@dvd.kh .Reidmeyer said “Did you enable 8-bit distance fields or compressed distance fields in the project settings? These are not fully supported yet by the Flow integration.” but I don’t see your reply on it, so did you try that?

I just made some adjustments to the flexSandContainer.uasset to make the properties match the ones in the Flex video. You can grab them in the following commit:

/commit/60572d8eba2b04aa72964a93c987d1bdba17fdd0

It makes the behavior much closer, and the piling is generally better. The resulting angle of repose will be a complex function of many of the parameters mentioned in that commit, you would need to make some empirical measurements to make the correspondence.

Flex demo looks even better with angle of repose adjustment!

is a small performance test of VXGI at 4K on 4.16.2 using an overclocked 980-ti, and a mix between performance and quality VXGI settings:

v=U31f4URkJds

The demo looks ! I will try to merge into the other branch. Lucky me I don’t care much for packaging at the moment. Thanks a lot @. :slight_smile:

Thanks @ and @sieumeo !

The previous video was actually done with a mix of performance and quality VXGI settings.

new one is straight performance setup.
There might be some room left to grab a couple more Framerate but i guess it’s close to be the most of what you can get from current implementation:
I’m around 40 frame per second at 4K. I assume a 1080-Ti should be close to 60 ?

There’s a lot of emissive materials, a moving directional light and moving point light all casting GI with Vxgi.

v=bBJjLH5EiDo

@. I’ve merged your VXGI into your other Gameworks build, the only thing left was the Substance plugin error which I’m trying to figure out. Thanks a lot for sharing these man.

You can also remove engine/plugins/runtime/Substance folder alltogether :stuck_out_tongue:

Edit: i have just pushed some missing Substance files (most of them actually were missing), but it still miss some lib in binaries folder. You’ll need to grab them from the launcher or substance github.

Pushed 8-bit and compressed distance field support to GitHub today. Have been testing using NvFlowPluginSamples/Content/SimpleFlame_ShapeSDF.umap. Have you verified test map functions on your system without crashing?

Have not seen error. It suggests not all of your files are up to date. Those inline functions are new with the latest GitHub update.