NVIDIA GameWorks Integration

I’m adding Turbulence by myself.
My big deal it’s with CUDA libs version of WaveWorks release, I do not know if I can link WaveWorks it with the new CUDA version libs (8.0) without breaking the WaveWorks functionality.

Hi, NVIDIA GameWorks TEAM

In image it is marked that WaveWorks is supported on PS4 & XB1.
If the UE4 Integrated version also will work on that platforms

I submitted a fix for which was introduced last August.

Hi,

I’m a new dev with Unreal and Gameworks and I’m a bit unsure of how Gameworks-UE4 integration is supposed to work… Digging through the NvPhysx/UnrealEngine Github repo - it appears to me that Nvidia has integrated each Gameworks component (FLeX, Hairworks, Flow, HBAO+, etc.) completely individually into separate Unreal builds in separate branches.

I don’t understand why there would not be (somewhere in the same repo) a single branch with all of the Gameworks components integrated into it so we can start dev’ing with all of these wonderful tools in UE4. Am I missing something or, if is correct, what is the recommended method to pull all of the Gameworks products (FLeX, Hairworks, Flow, HBAO+, VRWorks) into a single UE4 build?

Much appreciated,
Confused guy

Hey guys I have encountered a bug with 4.15 VXGI, when I use particles with a transparent material applied to it, if VXGI is enabled the particles wont draw, any other domain like opaque or masked work. My friend tried same setup and got same results.

Unlit: https://gyazo/fd11a97a8dd755d2febbe4021621affd

Lit (VXGI on): https://gyazo/2e493489c1a76940ddde362dd9a57140

Lit (VXGI off): https://gyazo/5278a0e2167881ee77987b758c7f5389

Does anyone know a fix for it?

There’s an with sprites in 4.15. You should use 4.14.3 for now to solve your :confused:
I’ve spent days trying to figure out , literally, even reviewing the VXGI builds evolution since june 2016, only to fix one.
That’s how i figured a tessellation got broken last june.

But for specific, i’m afraid it requires a deeper understanding of VXGI integration in Unreal engine that i can’t afford to get into right now, it’s all in @ hands ^^.

I would assume there’s a shader for vertices to fly all over the place like that. You can use the Matine test sample or even the ShooterGame sample to highlight the.

Ah, too bad :frowning: Hopefully the will be fixed when VXGI 4.16 is released.

Hi!

Someone can explain me why we need compiling source nvidia unreal engine branch if one person can compiling sourse and share it via cloud with others?

Because it’s very user unfriendly way and it guarantees not too many people ever using it.

It’s really straightforward to download the zip, double click setup, double click generate, launch Visual studio and compile.
That’s the exact same process than anyone using officials repository of Epic Games.
You don’t even need any C++ knowledge to do that, it’s user friendly really.
For something as complicated as a game engine, and Unreal Engine evolving so fast, i find it extremely convenient.

Having access to all the engine code like that is what makes Unreal Engine so amazing, and was a big part in my decision to use it, instead of building on top of my limited self-made ‘engine’.

I read thread and many people just want get VXGI version of Unreal Engine without customization because they just artist and don’t have knowledge about rendering technology and how it used in Unreal Engine.

Binary version of Unreal is simpler and faster - just download and run without compiling and waiting. That is my point.

If your standards of user friendliness include having to install Visual Studio to even have a remote shot at getting things to work, you just failed to get the point of Dudeses by a continent.

thanks for fixing that!

I have to agree to what . said.

It is indeed really straightforward (and you do NOT need any C++ knowledge at all) to get each of the repos of NVidia to compile and thus
generate exactly what you want: a ready to use binary version.

Of course you will have to install Visual Studio. But setting up VS is almost exactly like setting up a binary version of UE or any other program for that matter.
From that point on it’s just a few mouseclicks (and some compile time) and you are ready to go.

On the other hand there is the everlasting problem that people want to have more than one NVidia techs in their engine version.

is not as easy to solve. After asking around , and reading the web (finding only a few useful info bits and there) I started merging UE4.15.1 with Volumetric Lighting and VXGI myself. As I couldn’t find out how to merge branches from different repositories I had to do it manually by downloading zips for each version and using Meld to compare and merge anything together. I had to do it twice, one time for Volumetric Lighting and the second time for the VXGI. After a 16 hour marathon I finally had it compile and start. included several hours of code debugging because I missed some parts while merging or had to add extra source files to the project.

is definitely something you need a progammer for.

On point I have to say that I, too, wish there was a repo with all nv tech combined.

Since the engine is indeed evolving pretty fast it won’t be long to 4.16 and then another merging would be needed if I wanted to keep using both Volumetric Lighting and VXGI.

And I’m not looking forward to that …

For those experimenting with VXGI, I have some questions regarding optimization vs. quality.

For a complex scene, what settings would you probably use if you wanted decent performance but not have it look bad on an average card?

I’m on a GTX 970 with a 6-core processor and when I turned on VXGI with a single directional light and skylight as VXGI sources on the Marketplace map “Old Train Factory”. I removed all the fill lights beforehand as I’m interested in the indirect lighting from VXGI.
Anyway, put the engine on medium settings and was getting 120 fps, turned on VXGI, reduced my FPS to 25. That’s a tad too demanding, so any tips would be appreciated.

Also, does VXGI computing depend at all on CPU speed? I’m considering overclocking since it was recommended to have 4+ cores.

Well I don’t. Sure, for people like us it’s all good and peachy. Dozens of people approaching me through my blog or via pm over , on how to get VXGI working however, seem to struggle.
Most manage in the end but to say a install process is user friendly when in fact it requires you to go through quite an extensive signup/download/setup/compile process? I don’t think so.
Just imagine what it would help for the lesser-geek-gifted among us to have direct access to a pre-compiled version. Or a direct install through the Epic Launcher. Not going to happen for various reasons but I’m sure you’ll agree
that would make things quite a lot more user friendly for everyone. Not just those who never have any issues with things like to begin with :wink:

I am new to Git but managed to figure out the process ( another post in one of the early pages helped a lot ).For anyone interested in merging the Gamework builds, knowledge required is basic knowledge of Git commands.
As Nvidia has released all of their Gameworks tech in 4.15, so integration is easier than it would have been when a tech might have required to be ported to a newer version of engine.
For starters

  1. Download and install Git
  2. Create a folder for the engine in a drive with plenty of space
  3. Right click and run Git Bash while in that folder
  4. Type and run “git clone .git”

Now you need to set-up tracking for all the branches you want ( a branch in case is a different gameworks tech for a version of unreal ) eg VXGI-4.15 is one branch and VXGI-4.14 is another branch. Type “git branch -a” anytime to get a list of all the remote and local branches.
Create tracking for all the branches you require in your Unreal build.
5) For local tracking of a remote branch “git branch -t VXGI-4.15 origin/VXGI-4.15” ( VXGI-4.15 is a name you set for your own tracking purposes whereas origin/VXGI-4.15 is the branch present on Github that contains the VXGI integration , you can always get the name of the remote branches through “git branch -a”)

Repeat the above step for all the branches you want to merge.

Now switch to any branch you have created tracking for:
6) “git checkout VXGI-4.15” where “VXGI-4.15” is the same name as you set for tracking purposes above.
(Some people might prefer switching to the “release” branch, but worked for me)

Next step is to create a new branch from any of the above tracking branches. branch will be used to merge all the gameworks tech. You can name it eg AllGameworks.
7) “git branch AllGameworks” will create a new branch named AllGameworks from the last branch you did checkout on. In case VXGI-4.15.

Before we start the merging process, we need to switch to the AllGameworks branch ( which in case already contains VXGI as its a copy of it )
8) “git checkout AllGameworks” sets the AllGameworks as the current branch we will start the merging process upon

Now starts the tricky part. When a branch is merged into another various conflicts occur. But fortunately for us, all the gameworks tech are on 4.15 so resolving the conflicts is relatively easier.

Next merge a branch ( eg Hairworks ) into AllGameworks branch
9)“git merge HWorks4.15” where HWorks4.15 is the name of the local tracking set up for origin/HairWorks

On the screen will be shown many conflicts. Each line starting with “CONFLICT” means that a conflict has occurred in the merging process in a specific file. The path and name of the file will be mentioned in the same line. Now the conflict will have to be resolved. At point donot close Git.

How to resolve a conflict : Open the file mentioned in CONFLICT in Visual Studio. Search for “<<<<<<< HEAD” in the file. where the conflict starts. Some conflicts might require some code addition or removal but in most cases just delete or comment out “<<<<<<< HEAD” and then search/look “=======” and delete/comment it and then search/look for “>>>>>>> (Gameworks tech name)” and delete/comment it. In one of the “.cs” file conflict file look for a extra “}” in the end, you might need to remove it. Make sure there arent other conflicts present in the same at other locations through a thorough search for “<<<<<<< HEAD”. Save the file when its done.
Do the above for all the conflicts.

  1. Now add the changes with “git add .” command.

  2. Finally commit the changes “git commit -m “random comment””

Now you have merged two branches. Want to add more branches to AllGameworks then goto Step9 and merge another branch.

When its all done, run setup.bat , run generateprojectfiles.bat , open the .sln file in Visual Studio and right click on “UE4” and click “Build”. If all the conflicts been resolved then it will compile successfully after some time.

I am no expert but hope there arent any errors in the steps mentioned above.

Personally whenever I merged a tech then a created a new branch from it and switched to it. way can always go back to a branch that did compile successfully eg VXHW ( VXGI + Hairworks ) , a branch from VXHW called VXHWF ( VXGI + Hairworks + Flow ) , a branch from VXHWFVL ( VXGI + Hairworks + Flow + Volumetric Lighting ).

Well,

after reading your response I think may be more of a matter of perspective and not a matter of who is right or wrong.
For me as a C++ programmer, knowing what’s behind the scenes and how much of work it would be to setup a project like that myself, it really looks like an easy task to signup to something, download it, run two batchfiles and compile the presented project into the binary version.

But I get that for someone being e.g. an artist who just wants to test out or work with a new tech like VXGI, whole process can be hard to follow.
So if NVidia would chose to deliver ready-to-use binaries, I guess it could really help a lot of people to get their hands on stuff.

But as it is right now, they may have to just learn how to do it. As you said, they eventually manage to get it to work.

Thanks for that little git /merge tutorial.
I will try that when I need to merge something again in the future.

One question (for me) remains though: As 4.15 had quite a few bugs, which they fixed in 4.15.1, is it possible to start the merging process from Unreal’s original repository of Unreal4.15.1 and then merge into it the Nvidia branches?

I tried to do that with the github desktop app, but couldn’t get it to work. I could just merge different branches of the same repo.

As described a few posts above I then chose to do it without github, but it was a real pain ^^

You can “git remote add” the NvPhysx repo of nvidia in the Epic Unreal Engine repo via git command and then use the 15.1 release as the checkout branch and merge all the NvPhysx branches into it.
://stackoverflow/questions/21353656/merge-git-repo-into-branch-of-another-repo