Announcement

Collapse
No announcement yet.

NVIDIA GameWorks Integration

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

    Originally posted by Maxime.Dupart View Post
    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 this 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.

    Comment


      Originally posted by Maxime.Dupart View Post
      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'.
      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.
      https://www.artstation.com/chesire

      Comment


        Originally posted by Maxime.Dupart View Post
        I submitted a fix for this issue which was introduced last August.
        thanks for fixing that!

        Comment


          Originally posted by Chesire View Post
          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.
          I have to agree to what Maxime.Dupart 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.

          This is not as easy to solve. After asking around here, and reading the web (finding only a few useful info bits here 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. This included several hours of code debugging because I missed some parts while merging or had to add extra source files to the project.

          THIS is definitely something you need a progammer for.

          On this 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 ..

          Comment


            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.
            Last edited by RenderingFiend; 04-04-2017, 11:29 AM.

            Comment


              Originally posted by buzzdx View Post
              I have to agree to what Maxime.Dupart 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.
              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 here, 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 this to begin with ;-)
              https://www.artstation.com/chesire

              Comment


                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 ).

                Comment


                  Originally posted by Chesire View Post
                  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 here, 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 this to begin with ;-)
                  Well,

                  after reading your response I think this 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, this 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 this 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.

                  Comment


                    Originally posted by GeneralD View Post
                    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.
                    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 ^^

                    Comment


                      Originally posted by buzzdx View Post
                      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.
                      http://stackoverflow.com/questions/2...f-another-repo

                      Comment


                        Originally posted by GeneralD View Post
                        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.
                        http://stackoverflow.com/questions/2...f-another-repo
                        Thank you very much. As I said, i will try this method the next time I need something merged.

                        Comment


                          it seems that nvidia gameworks is irritating my computer when i try to use it either in unreal, or when i try to lpay a game that used gameworks. i tried playing "hunter call of the wild". and my PC had a epileptic seizure.

                          does gameworks work with AMD radeon graphic cards? or is my PC getting old? after all i had it since 2012. i got like, 8gb ram, 3.4ghz chip, and some radeon integrated graphics card. i've been keeping up with most games on the market for the last 5 years without any problems. i cant play on ultra settings. but on low-medium or high it usually works fine. with thhis new gameoworks frmo nvidia though... my PC starts sweatin.

                          Comment


                            it seems that nvidia gameworks is irritating my computer when i try to use it either in unreal, or when i try to lpay a game that used gameworks. i tried playing "hunter call of the wild". and my PC had a epileptic seizure.

                            does gameworks work with AMD radeon graphic cards? or is my PC getting old? after all i had it since 2012. i got like, 8gb ram, 3.4ghz chip, and some radeon integrated graphics card. i've been keeping up with most games on the market for the last 5 years without any problems. i cant play on ultra settings. but on low-medium or high it usually works fine. with thhis new gameoworks frmo nvidia though... my PC starts sweatin even when i turn everything off, and on low settings. its un-playable. all that gameworks foliage is blinking like a lamp turning on and off.

                            Comment


                              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...
                              Last edited by KradMoonRa; 04-05-2017, 06:01 PM.

                              Comment


                                [MENTION=124709]VItorEAFeliciano[/MENTION] holy **** that sounds too good to be true, if it indeed is true, you are a saint.

                                Comment

                                Working...
                                X