Announcement

Collapse
No announcement yet.

NVIDIA GameWorks Integration

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

    Originally posted by GeneralD View Post
    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 https://github.com/NvPhysX/UnrealEngine.git"

    Now you need to set-up tracking for all the branches you want ( a branch in this 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" ( Here 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 this worked for me)

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

    Before we start the merging process, we need to switch to the AllGameworks branch ( which in this 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 this point donot close Git.

    How to resolve a conflict : Open the file mentioned in CONFLICT in Visual Studio. Search for "<<<<<<< HEAD" in the file. This 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.

    10) Now add the changes with "git add ." command.

    11) 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. This 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 ).
    let's make this a sticky post shall we? ^^
    LinkedIn | Link custom Shaders in 4.21/4.22/4.23 | Atmosphere Modelisation | Distance Matching Locomotion | Nvidia GameWorks builds - 4.19.2 : VXGI2.0, Blast, HairWorks, Flow - Plugins: VictoryBP

    Comment


      Originally posted by VItorEAFeliciano View Post
      You right,

      Tessellation can't be done with VXGI Voxel's in the same material,

      Code:
      // NVCHANGE_BEGIN: Add VXGI
      	if (RHIIsVoxelizing() && !MaterialRenderProxy->GetVxgiMaterialProperties().bVxgiAllowTesselationDuringVoxelization)
      		{
      			return false; // not allowed
      		}
      // NVCHANGE_END: Add VXGI
      Maxime.Dupart said he issued a fix for this problem to Epic if I recall correctly. So I think it's not related to VXGI?
      It happens even when VXGI is turned off. Also, it does work when using Flat Tesselation without the flickering, which still is Tesselation?

      There's one other thing I wanted to ask you:

      Since you are going to share only the compiled version of your super-unreal-engine, could you bump it to 4.15.1?
      The changes are quite minor and also only about 15-20 changes total, yet there is a rather gamebreaking one amongst them
      which prevented something (I don't recall right now what it was, related to materials) from working in the final baked game.

      I really appreciate the work you put into this, and that you are going to share with the community what you achieved.

      Comment


        Originally posted by KenshiHH View Post
        can someone help me getting a flow emitter to work?

        the sample project works fine, but i cant get a new emitter to work.

        i add a grid asset, i create a blueprint actor with a sphere and add an emitter component. whats next?
        Same here.

        Comment


          Originally posted by buzzdx View Post
          Maxime.Dupart said he issued a fix for this problem to Epic if I recall correctly. So I think it's not related to VXGI?
          It happens even when VXGI is turned off. Also, it does work when using Flat Tesselation without the flickering, which still is Tesselation?

          There's one other thing I wanted to ask you:

          Since you are going to share only the compiled version of your super-unreal-engine, could you bump it to 4.15.1?
          The changes are quite minor and also only about 15-20 changes total, yet there is a rather gamebreaking one amongst them
          which prevented something (I don't recall right now what it was, related to materials) from working in the final baked game.

          I really appreciate the work you put into this, and that you are going to share with the community what you achieved.
          I updating to the last version of UE4.15 git repo based and Epic's UE4.15 binary release, always.

          About VXGI and tessellation, in the code the VXGI do not voxel's light, or apply the light in the material, wen tessellation it's applied in the same material.

          Having trouble at compile time, related to runtimes, striping some things of, for testing and fixing, getting crazy with UHT, hard to find related problems.

          I will post everything.

          Comment


            Originally posted by KenshiHH View Post
            can someone help me getting a flow emitter to work?

            the sample project works fine, but i cant get a new emitter to work.

            i add a grid asset, i create a blueprint actor with a sphere and add an emitter component. whats next?
            If this is a new project, first add a Flow collision channel:
            Click image for larger version

Name:	FlowProjectCollisionSettings.png
Views:	1
Size:	83.4 KB
ID:	1126390

            On the emitter blueprint actor, set the collision to overlap on the Flow channel:
            Click image for larger version

Name:	FlowEmitterCollisionFlags.png
Views:	1
Size:	54.3 KB
ID:	1126391

            Comment


              hello Andrew.Reidmeyer ,

              is it possible to some how generate a grid which has smaller cells in the center and to the outside bigger cells? so we have a greater resolution from the outside of the grid to the Center. thx

              Comment


                [MENTION=247937]GeneralD[/MENTION] thank you for the tutorial on how to merge the branches, however I came accross an error at the very last step (I think atleast). I merged VXGI, Volumetric Lighting, Flow and Flex and when I did the setup.bat part it went fine but when I open generateprojectfiles.bat I get this message https://i.gyazo.com/e098a38dfe7f045b...17e02421ff.png

                I checked if VXGI.Build.cs is in "\UnrealEngine\Engine\Source\ThirdParty\GameWorks\VXGI" and it is there, as you said I should check if there are extra "}" but there are none. Would appriciate if anyone could help.

                Comment


                  [MENTION=247937]GeneralD[/MENTION]

                  Move
                  \Engine\Source\ThirdParty\GameWorks\NvVolumetricLighting.Build.cs to \Engine\Source\ThirdParty\GameWorks\NvVolumetricLighting\NvVolumetricLighting.Build.cs regenerate projects.

                  Recommend, if You run setup.bat after merge's
                  NVAPI and AMD_AGS are overwritten, merge that two again. and overwrite with the libs from NVIDIA branches.
                  Last edited by KradMoonRa; 04-13-2017, 11:50 AM.

                  Comment


                    [MENTION=124709]VItorEAFeliciano[/MENTION] thanks, I did that and I could generate projects, compiled the engine and got 72 errors XD

                    Will try it all over again with just VXGI and VolumetricLighting.

                    EDIT: Succesfully merged VXGI and VolumetricLighting. Since CPU transparent particles won't render with VXGI enabled, is there a way to get same results with GPU particles? https://gyazo.com/4baed2267fd0705b9863e9ff3a798897 You can see that the texture seems to be scaled down or something else is happening.
                    Last edited by overfuze; 04-13-2017, 02:56 PM.

                    Comment


                      the link doesn't work.

                      Comment


                        I pushed my VXGI+VolumetricLighting 4.15 branch on GitHub ( https://github.com/overfuze/UnrealEn...e/VXGI+VL-4.15 ), I am not 100% sure if it will compile for you guys, but you are free to try it

                        There is also a build with Flow but when I tried to compile it it gave like 29 errors, so don't download that I guess.

                        My friend also made a 4.14.3 VXGI+VolumetricLighting branch ( https://github.com/1suky1/UnrealEngi...gi+volumetrics ), you can try that aswell, I am also not 100% sure if that one will compile.

                        If you download any of these and compile them, please let me know

                        Comment


                          Originally posted by overfuze View Post
                          I pushed my VXGI+VolumetricLighting 4.15 branch on GitHub ( https://github.com/overfuze/UnrealEn...e/VXGI+VL-4.15 ), I am not 100% sure if it will compile for you guys, but you are free to try it

                          There is also a build with Flow but when I tried to compile it it gave like 29 errors, so don't download that I guess.

                          My friend also made a 4.14.3 VXGI+VolumetricLighting branch ( https://github.com/1suky1/UnrealEngi...gi+volumetrics ), you can try that aswell, I am also not 100% sure if that one will compile.

                          If you download any of these and compile them, please let me know
                          I will try your custom build
                          Nvidia GameWorks builds | 4.18.3 : Flex, Flow, VXGI, Blast, HairWorks, Volumetric Light, WaveWorks - Here

                          Comment


                            Originally posted by VItorEAFeliciano View Post
                            Think I will finish UE4.15 Gameworks integration with all or Turbulence off, and with AMD LiquidVR, and some fixes and improves. This weekend.
                            I will post and share compiled one, because I don't have Graphics for VR, but one OSVR hacker dev kit in standby till I can afford new PC for VR.
                            I will make it version compatible with Epics Binary release as well, to support UE market plugins and assets.

                            Added:
                            ------------------------------------------
                            Gameworks:
                            -
                            CataclysmDemo Yes
                            FleX Yes
                            Flow Yes
                            HairWorks Yes
                            HBAO+ updated to the last version Yes
                            Turbulence Yes or No ?
                            Volumetric Lighting Yes
                            VRWorks Yes
                            VXGI Yes
                            WaveWorks Yes
                            --------------------------------------
                            AMD LiquidVR and updated Yes
                            --------------------------------------
                            With Simplygon ready Yes
                            ------
                            LIBS:
                            NVIDIA AnselSDK updated Yes
                            Steamworks 139 updated Yes
                            NVIDIA API R378 updated Yes
                            AMD AGS_SDK updated Yes
                            Intel TBB 2017 version updated Yes
                            PhysX-3.4 updated Yes or No ? (dependency for Turbulence)
                            Vulkan updated Yes
                            FBX 2017.1 Yes
                            Windows 10 SDK 10.0.14393.0 working in this, i have failed before but already know why! Importing some knows from Microsoft.
                            .
                            .
                            Cleaning VXGI macro predefs, that in packaged builds has conflits.
                            So always with VXGI in compile time.
                            And NO: Win32, HTML5, Mac, Android, IOS, TVOS, Linux, PS4, XboxOne, Switch, builds.
                            Only for Win64 builds. This for all the UE4.15 compile time and builds.

                            I cant afford killing my time trying to debug like crazy UHT for others platforms.

                            shout some names for 'Community Edition' for in editor an release build, like 'GPU Fanatic's Community Edition' or ? shout here...
                            Hello, thanks for your work! When will we see it? Would you publish on this thread?

                            Comment


                              Does anyone know if Flex particles colliding against skeletal meshes with convex colliders is something planned for the future ? I can see FleX particles colliding against static meshes using complex collision and it looks great but for skeletal meshes it seems that only the basic colliders are allowed (box, sphere, sphyl), not convex, thus breaking the immersion of the game. Cheers

                              Comment


                                Does vxgi work with Flow? i.e. I've been waiting for some way to get color bleeding onto smoke - eg. having smoke particles reflect indirect lighting from a red wall.

                                Comment

                                Working...
                                X