Announcement

Collapse
No announcement yet.

NVIDIA GameWorks Integration

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

    What version of Visual Studio do I need to build Waveworks? All the steps are done correctly, but when I try to build the project I get a bunch of errors and the build fails. I've tried running everything as admin, I've tried using version 2017 instead of 2015, but I get the same result every time.

    Any help would be hugely appreciated!

    Comment


      Originally posted by Koniferus View Post
      Awesome and thank you! I didn't expect such a simple answer. I downloaded the .zip from github like a week ago so I bet I'm missing it!

      So when it comes to grids, are multiple grids bad? Meaning if I have two dragons walking around breathing fire, should each have a grid? Or should I make something that logically creates the grid between the two.

      For my FPS character, I want his spells to be flow, so I know he'll need a grid. Anyone that comes into range would automatically be in it, but what about multiple NPCs firing Flow effects at each other? Or two dragons that are far apart - each would need a grid, but as they came closer together, they would share one? I feel like I'm getting a grip on this lol. Please let me know if I'm totally off here.

      EDIT: I got movable grids working after downloading the latest version! Thank you!!!
      At the moment, grids are fully independent, and sort the same way as other transparent objects in UE4. Support for either much larger grids or cross interaction between grids is a target for the future, but not ready today.

      Comment


        This may be a stupid question, but I am trying to integrate mainly FleX into my UE4. I have gotten to the point where I build UE4 in VS (I am using 2017) but the build fails (3 successful, 1 failed) and it gives me a list of errors that all have something to do with HairWorks. There is also an error code MSB3703. It is a bit beyond me to figure out how to get around this. I built the normal source code from UE4 with no issues and was able to start the editor, but when I build the FleX branch (https://github.com/NvPhysX/UnrealEngine) it fails. A step by step solution would be very much appreciated.

        Comment


          VRWorks + Flow in action.

          https://youtu.be/MmH1GANodo4

          Here's a short video of Flow + VRWorks in action.

          This is the "Level Clear" splash screen of a game that I'm working on, I still need to add in some fireworks, buildings in the background, and audio FX but so far everything is running great.

          I'm getting a really solid 90 FPS in VR, running 10 flow emitters plus a few tricky materials.
          I'm using the following console commands to get that frame rate on a Titan X Pascal (I haven't finished optimizing this level but my goal is to match this frame rate on a 1070):
          vr.LensMatchedShading = 3
          r.ScreenPercentage = 120

          After I've got this splash screen out of the way, I'm going to take a run at converting our main gameplay levels to use VRWorks Audio and see how that goes.

          Cheers,

          Andrew
          Last edited by andrewl0; 05-10-2017, 08:03 PM.

          Comment


            Originally posted by Andrew.Reidmeyer View Post
            At the moment, grids are fully independent, and sort the same way as other transparent objects in UE4. Support for either much larger grids or cross interaction between grids is a target for the future, but not ready today.
            What do you mean when you say independent? I've got a grid tied to my fps character that moves with him, and it works great for say a flaming weapon. I am noticing though that if two grids intersect, FPS drops in half. Definitely need to find a way to dynamically prevent grids from overlapping, which should be doable in blueprints.

            http://i.imgur.com/V6a7qZP.gifv

            In this image, I've got a grid on my dude to make his wand burn, and then another one on the sphere so that it doesn't go out after I walk away from it. FPS are great when I stand far enough back to not intersect the grids, but when they intersect it really freaks out.

            Generally, this is looking awesome. I can tell I've got some learning to do to make it work and perform well, but it should be doable!

            Also, this does work on AMD cards right? Nothing I've read really says anything about nvidia hardware dependence

            Comment


              Originally posted by Koniferus View Post
              What do you mean when you say independent?
              Probably means that if you want interaction between, for example, the output of multiple emitters, they have to be in the same grid.

              Also, this does work on AMD cards right? Nothing I've read really says anything about nvidia hardware dependence
              Dependencies for Flow stated on the GameWorks page on the nvidia site are only 'DX11 or DX12'.

              Comment


                Anyone know how can I create endless ocean like that in waveworks_gdc_map (project WaveWorksTester from WV branch)? I created actor blueprint, material and WaveWorks object (by right clicking on content browser and selecting Physics -> WaveWorks). In blueprint I added WaveWorks component and selected WV physics object in "Wave Works Asset" field. But now when I add blueprint to map and try to set material, UE4 editor crashes with "Fatal error" dialog.
                Click image for larger version

Name:	waveworks_crash.png
Views:	1
Size:	797.0 KB
ID:	1127934
                Log:
                Code:
                [2017.05.11-12.25.14:324][468]LogWindows:Error: === Critical error: ===
                [2017.05.11-12.25.14:324][468]LogWindows:Error: 
                [2017.05.11-12.25.14:324][468]LogWindows:Error: Fatal error: [File:D:\Git\UnrealEngine\Engine\Source\Runtime\RenderCore\Private\RenderingThread.cpp] [Line: 796] 
                [2017.05.11-12.25.14:324][468]LogWindows:Error: Rendering thread exception:
                [2017.05.11-12.25.14:324][468]LogWindows:Error: Fatal error!
                [2017.05.11-12.25.14:324][468]LogWindows:Error: 
                [2017.05.11-12.25.14:324][468]LogWindows:Error: Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x00000000
                [2017.05.11-12.25.14:324][468]LogWindows:Error: 
                [2017.05.11-12.25.14:324][468]LogWindows:Error: UE4Editor-Engine.dll!FWaveWorksSceneProxy::CreateGerstnerWaveUniformBuffer() [d:\git\unrealengine\engine\source\runtime\engine\private\waveworksrender.cpp:177]
                [2017.05.11-12.25.14:324][468]LogWindows:Error: UE4Editor-Engine.dll!FWaveWorksSceneProxy::GetDynamicMeshElements() [d:\git\unrealengine\engine\source\runtime\engine\private\waveworksrender.cpp:260]
                [2017.05.11-12.25.14:324][468]LogWindows:Error: UE4Editor-Renderer.dll!FSceneRenderer::GatherDynamicMeshElements() [d:\git\unrealengine\engine\source\runtime\renderer\private\scenevisibility.cpp:2017]
                [2017.05.11-12.25.14:324][468]LogWindows:Error: UE4Editor-Renderer.dll!FSceneRenderer::ComputeViewVisibility() [d:\git\unrealengine\engine\source\runtime\renderer\private\scenevisibility.cpp:2705]
                [2017.05.11-12.25.14:324][468]LogWindows:Error: UE4Editor-Renderer.dll!FDeferredShadingSceneRenderer::InitViews() [d:\git\unrealengine\engine\source\runtime\renderer\private\scenevisibility.cpp:2955]
                [2017.05.11-12.25.14:324][468]LogWindows:Error: UE4Editor-Renderer.dll!FDeferredShadingSceneRenderer::Render() [d:\git\unrealengine\engine\source\runtime\renderer\private\deferredshadingrenderer.cpp:621]
                [2017.05.11-12.25.14:324][468]LogWindows:Error: UE4Editor-Renderer.dll!RenderViewFamily_RenderThread() [d:\git\unrealengine\engine\source\runtime\renderer\private\scenerendering.cpp:1745]
                [2017.05.11-12.25.14:324][468]LogWindows:Error: UE4Editor-Renderer.dll!TGraphTask<`FRendererModule::BeginRenderingViewFamily'::`21'::EURCMacro_FDrawSceneCommand>::ExecuteTask() [d:\git\unrealengine\engine\source\runtime\core\public\async\taskgraphinterfaces.h:883]
                [2017.05.11-12.25.14:324][468]LogWindows:Error: UE4Editor-Core.dll!FNamedTaskThread::ProcessTasksNamedThread() [d:\git\unrealengine\engine\source\runtime\core\private\async\taskgraph.cpp:954]
                [2017.05.11-12.25.14:324][468]LogWindows:Error: UE4Editor-Core.dll!FNamedTaskThread::ProcessTasksUntilQuit() [d:\git\unrealengine\engine\source\runtime\core\private\async\taskgraph.cpp:701]
                [2017.05.11-12.25.14:324][468]LogWindows:Error: UE4Editor-RenderCore.dll!RenderingThreadMain() [d:\git\unrealengine\engine\source\runtime\rendercore\private\renderingthread.cpp:325]
                [2017.05.11-12.25.14:324][468]LogWindows:Error: UE4Editor-RenderCore.dll!FRenderingThread::Run() [d:\git\unrealengine\engine\source\runtime\rendercore\private\renderingthread.cpp:459]
                [2017.05.11-12.25.14:324][468]LogWindows:Error: UE4Editor-Core.dll!FRunnableThreadWin::Run() [d:\git\unrealengine\engine\source\runtime\core\private\windows\windowsrunnablethread.cpp:76]
                [2017.05.11-12.25.14:324][468]LogWindows:Error: UE4Editor-Core.dll!FRunnableThreadWin::GuardedRun() [d:\git\unrealengine\engine\source\runtime\core\private\windows\windowsrunnablethread.cpp:33]
                [2017.05.11-12.25.14:324][468]LogWindows:Error: KERNEL32.DLL!0x0000000027108364
                [2017.05.11-12.25.14:324][468]LogWindows:Error: ntdll.dll!0x00000000279370D1
                [2017.05.11-12.25.14:324][468]LogWindows:Error: ntdll.dll!0x00000000279370D1
                [2017.05.11-12.25.14:324][468]LogWindows:Error: 
                [2017.05.11-12.25.14:324][468]LogWindows:Error: 
                [2017.05.11-12.25.14:325][468]LogWindows:Error: 
                [2017.05.11-12.25.14:325][468]LogWindows:Error: 
                [2017.05.11-12.25.14:325][468]LogWindows:Error: Crash in runnable thread RenderThread 2
                [2017.05.11-12.25.14:346][468]LogWindows: Windows GetLastError: Operacja ukończona pomyślnie. (0)
                [2017.05.11-12.25.14:346][468]LogWindows:Error: HandleError re-entered.
                [2017.05.11-12.25.14:346][468]LogWindows: FPlatformMisc::RequestExit(1)
                [2017.05.11-12.25.14:346][468]Log file closed, 05/11/17 14:25:14
                Is there any documentation for WaveWorks branch, like for FleX?

                Edit: I use UE 4.15.1 with HairWorks, WaveWorks, FleX, Flow, VXGI and Volumetric Lighting merged together.
                Last edited by LukaszPJWSTK; 05-12-2017, 02:08 PM.

                Comment


                  Originally posted by Koniferus View Post
                  What do you mean when you say independent? I've got a grid tied to my fps character that moves with him, and it works great for say a flaming weapon. I am noticing though that if two grids intersect, FPS drops in half. Definitely need to find a way to dynamically prevent grids from overlapping, which should be doable in blueprints.

                  http://i.imgur.com/V6a7qZP.gifv

                  In this image, I've got a grid on my dude to make his wand burn, and then another one on the sphere so that it doesn't go out after I walk away from it. FPS are great when I stand far enough back to not intersect the grids, but when they intersect it really freaks out.

                  Generally, this is looking awesome. I can tell I've got some learning to do to make it work and perform well, but it should be doable!

                  Also, this does work on AMD cards right? Nothing I've read really says anything about nvidia hardware dependence
                  With two overlapping grids, performance would drop assuming both grids are using the Flow collision channel, since the emitter would be applied to both grids. You can avoid this by either not allowing the grids to overlap, or you can add a 'Flow2' collision channel to your project to allow the second grid to have its own unique collision channel.

                  Comment


                    Originally posted by Andrew.Reidmeyer View Post
                    With two overlapping grids, performance would drop assuming both grids are using the Flow collision channel, since the emitter would be applied to both grids. You can avoid this by either not allowing the grids to overlap, or you can add a 'Flow2' collision channel to your project to allow the second grid to have its own unique collision channel.
                    Interesting stuff, I didnt know thats how it works, apologies for my incorrect answer.

                    Comment


                      Originally posted by SteveElbows View Post
                      Interesting stuff, I didnt know thats how it works, apologies for my incorrect answer.
                      Your answer was not incorrect. For multiple emitters to fully interact at the simulation and rendering levels, they do currently need to be in the same grid. Using the collision channels I mentioned just prevents the UE4 side emitter from being broadcast to both grids. This is most useful for effects authored at different grid resolutions, that do not require full interaction.

                      Comment


                        Originally posted by Andrew.Reidmeyer View Post
                        Your answer was not incorrect. For multiple emitters to fully interact at the simulation and rendering levels, they do currently need to be in the same grid. Using the collision channels I mentioned just prevents the UE4 side emitter from being broadcast to both grids. This is most useful for effects authored at different grid resolutions, that do not require full interaction.
                        Ah, thanks for the additional clarification.

                        I had a naive, early stab at seeing how hard it will be to update flow to 4.16. There were a few differences such as the distance field volume being compressed that I fudged my way around but I reached my rather feeble limit when I managed to crash the shader compiler with some gpu particle code. So I shall just have to be patient and focus on something else until a reasonable time after 4.16 final is actually out (was looking to test whether flow-driven gpu particles work as nicely as I imagine they could with the volume material stuff that can influence the volumetric fog/light stuff that is in 4.16)

                        Comment


                          Originally posted by SteveElbows View Post
                          Ah, thanks for the additional clarification.

                          I had a naive, early stab at seeing how hard it will be to update flow to 4.16. There were a few differences such as the distance field volume being compressed that I fudged my way around but I reached my rather feeble limit when I managed to crash the shader compiler with some gpu particle code. So I shall just have to be patient and focus on something else until a reasonable time after 4.16 final is actually out (was looking to test whether flow-driven gpu particles work as nicely as I imagine they could with the volume material stuff that can influence the volumetric fog/light stuff that is in 4.16)
                          I made a 4.16 build with VXGI, Flow, Flex, Volumetric lightning working a couple weeks back, but it couldn't package.
                          The small space ship viewer i linked a video to, earlier in the thread, was originally made in 4.16 using those tech and i had to remake it in 4.15 as i wasn't able to package it.

                          The following video was a 'work in progress' recorded on 4.16, featuring the packaging failing ...

                          This project is showing a couple Star-Ships from the Star Citizen website and was highlighted as player contribution by Cloud Imperium Games last week, got featured front page next to Mark Hamill lol.
                          So happy about it !



                          The models originally come from an embed 3D player and look like this, unified mesh, no UVs etc... :
                          Click image for larger version

Name:	3UmJFZfl.jpg
Views:	1
Size:	25.0 KB
ID:	1127984
                          Last edited by MaximeDupart; 05-12-2017, 03:20 AM.
                          LinkedIn | Link custom Shaders | Atmosphere Modelisation & Procedural Planets | Distance Matching Locomotion | Nvidia GameWorks builds - 4.19.2 : VXGI2.0, Blast, HairWorks, Flow - Plugins: VictoryBP

                          Comment


                            Originally posted by SteveElbows View Post
                            Probably means that if you want interaction between, for example, the output of multiple emitters, they have to be in the same grid.
                            Aha! Yes indeed, this explains a few things on my end, so thank you! Further reason to stick in some logic to spawn the grids where needed instead of tying them to the emitters directly.

                            Thanks!

                            Comment


                              OK I revisited my attempt to get flow working with 4.16 preview and discovered it was a trivial fat finger error of mine in a shader file. Let the fun commence

                              Notes for anyone attempting it:

                              Trivial change required to plugin build cs files (unreal build tools will error and tell you what).
                              FinishRenderingSceneColor doesnt exist anymore, so I just comment the call to it out.
                              DistanceFieldVolume now CompressedDistanceFieldVolume and comprises of uint8's rather than ffloat16's.
                              Stuff that used to be in DistanceFieldSurfaceCacheLighting now seems to be in DistanceFieldAmbientOcclusion.

                              edit - It seems I dont have everything working (SDF issues in places) but it's enough for my needs for now
                              Last edited by SteveElbows; 05-12-2017, 08:56 AM.

                              Comment


                                Finally got WaveWorks working, though I can't find buoyancy anywhere. Was this feature removed since WaveWorks was updated, or am I missing something?

                                Comment

                                Working...
                                X