NVIDIA GameWorks Integration

Having HBAO+ in the build also lets you just offer more options. If VXGI is too performance heavy for someone, always good to have alternative ways of doing things, and VXGI’s AO solution might not catch the small details HBAO+ will. I wonder if the two would actually work well together?

was actually one of the scenarios which I thought about before posting, but I was more interested in the technical aspect, so I left that out.

Offering more options for the player is always a good thing (in my opinion).
But one thing to consider is that your level has to work with and without VXGI. Maybe offer LPV or 's AHR as alternative? You could just turn off VXGI, but that would heavily impact the appearance of maps (depending on how they are setup).
At least is what I imagine, would be nice to get the perspective of a level designer.

So agree. For example VXGI or AHR can be complemented with HFGI, as it’s quite more efficient than trying to voxelize the terrain and keep nice small detail. Speaking for AHR now as I’m not quite sure if you can do on VXGI, but don’t see a reason why not, falling back to static lighting or even complementing dynamic with static lighting it’s also possible, and might be useful on some scenarios.

Thats the plan for my game, VXGI will be a highend for interior scenes, HFGI will be for exterior scenes, and then I will have standard + fill lighting for the lower end. I will just mark lights as being GI or non GI and switch as required.

@ - Lookin forward to checking out your merged branch :smiley:

Okay we go, merged branch of VXGI + HairWorks + FleX + HBAO+ in v4.8 preview 3

Link: https://github//UnrealEngine/tree/4.8p3_VXGI_FleX_HW_HBAO

Note: I have done my best to merge all the different technologies into one branch and upgrade to the latest version of the engine. The engine itself is a preview release, so comes with its own issues, as well as potential issues with upgrading the NVIDIA code. branch is not endorsed by NVIDIA, and therefore any problems experienced using branch should not be reported to NVIDIA. If you want to help troubleshoot their technologies, please use the official NVIDIA branch. You can report problems with my branch to me, and I will try to fix when possible.

The technologies mostly work fine, but there are some things that don’t work together. ie. FleX fluid does not work with VXGI or HBAO. and there may still be some unexplained crashes, I personally didnt experience any myself, but does not mean there isn’t any. Also included in version is FleX particles respect the world gravity. I have also made the world gravity property in the World Settings blueprint writable. So you can script gravity changes to make some cool .

I will continue to create the sample content and upload later. I figured you guys would rather get your hands on the merge rather than wait for my samples. The NVIDIA samples should work with branch.

Wow @2015. Very good work. Looking forward for your sample content especially a world gravity Flex sample. I can wait for your samples and download your branch later. Thank you :smiley:

I’m following thread from the beginning, very cool and interesting work with all nvidia tools!
I’m wondering why there is no seperate section for all the nvidia tools on the forum ? Wouldn’t it be much more comfortable to have a nvidia section with seperate threads for hair works, vxgi etc… ?
Maybe even some tutorials…

Thanks Galaxy Man for your effort in creating merged branches with your own samples as well. Much appreciated.

Thank you for your work. I am getting an error from UnrealHeaderTool-Core.dll compilation, namely:
2>LINK : fatal error LNK1181: cannot open input file ‘GFSDK_VXGI_x64.lib’

I surely forgot to add it somewhere but I see no reference to gfsdk_vxgi in the project. Is that normal?

edit: ok, I just copied it from the NVidia git and it works, thanks!

I got error when at 99% of the 4.8 merged build setup, …

z3v299p.png

any ideas?

Move it to a more shallow directory. Seems its too deep. Other than that, I haven’t had that before, but I tend to store my files in directories like G:\UnrealEngine

Been having some trouble compiling it myself. It was complaining about missing a few files and there, so I grabbed them off the Nvidia branch (it was missing files from VXGI, HBAO+, and FleX). Even after adding them back in, I’m getting error when trying to compile:

Error 1 error LNK2019: unresolved external symbol NvAPI_D3D11_CreateRasterizerState referenced in function “protected: struct nvgiutil::FVXGIRendererInterfaceD3D11::StateSet const & __cdecl nvgiutil::FVXGIRendererInterfaceD3D11::getStateSet(struct VXGI::RenderState const &)” (?getStateSet@FVXGIRendererInterfaceD3D11@nvgiutil@@IEAAAEBUStateSet@12@AEBURenderState@VXGI@@@Z) E:\UE4 Builds\UnrealEngine-4.8p3_VXGI_FleX_HW_HBAO\Engine\Intermediate\ProjectFiles\Module.D3D11RHI.cpp.obj UE4
Error 2 error LNK1120: 1 unresolved externals E:\UE4 Builds\UnrealEngine-4.8p3_VXGI_FleX_HW_HBAO\Engine\Binaries\Win64\UE4Editor-D3D11RHI.dll UE4
Error 3 error : Failed to produce item: E:\UE4 Builds\UnrealEngine-4.8p3_VXGI_FleX_HW_HBAO\Engine\Binaries\Win64\UE4Editor-D3D11RHI.dll E:\UE4 Builds\UnrealEngine-4.8p3_VXGI_FleX_HW_HBAO\Engine\Intermediate\ProjectFiles\ERROR UE4
Error 4 error MSB3073: The command “…..\Build\BatchFiles\Build.bat UE4Editor Win64 Development” exited with code -1. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.MakeFile.Targets 38 5 UE4

Any ideas on a fix?

hmm… not sure on what files are missing, just took a quick glance, they all seem to be accounted for. As for the error, thats because the dependencies replace certain VXGI NVAPI files that are required. You need to replace the ThirdParty\NVIDIA\Nvapi directory with the one from the branch after downloading the dependencies.

EDIT: Im guessing anyone who is getting missing files, its probably the .gitignore missing them, since Binaries\ThirdParty were forced added to the repo. They are there, I can see them, but maybe cloning the branch is missing them.

EDIT: Ah dammit, fault is at my end. .gitignore strikes again. Will fix missing files soon.

Okay hopefully I caught all the missing files time. Please let me know if you still have troubles

Seems to compile and work fine for the most part, all the features of VXGI, HBAO+, and FleX are good. :smiley:

A minor bug I noticed is that tessellated materials seem to be broken. Tessellated materials that were working in stock 4.8 preview 3 and the VXGI build of 4.7.6 now return “warning X3206: implicit truncation of vector type”, and "error x3000: unrecognized identifier ‘FVertexFactoryInterpolantsVSToDS’ ". It happens whether or not there’s a texture attached to it in the material editor, both on the old materials and a test one I made. Is that happening to you as well? I haven’t gotten the to test if it affects the official VXGI .9 build or if it’s just one yet, haven’t compiled the Nvidia branch update yet.

Yeah it definately looks like tessellation is broken, I don’t test very often with it on, so didn’t notice until now. I dont think VXGI is to blame, Its going to take me a bit to figure out where the fault is.

EDIT: Okay fixed, as i had suspected, it was the FleX fluid vertex factory causing the, put in a clause to only cache if tessellation is not enabled. So I wouldn’t try creating a flex fluid shader with tessellation turned on, will probably crash. Not that tessellation is support on the flex fluid surface

is probably stupid question, but can we develope a game and sell it with modified version of engine?

In general? Yes
NVidia’s branch? Not sure, would need them to say so, might still need to obtain a license.
My branch? Same as above, but also I would highly suggest against it at time, just due to the fact its using a preview build of UE4 and early editions of NVIDIAs tech

Thanks,I will wait.
Maybe can give us some details.