Announcement

Collapse
No announcement yet.

NVIDIA GameWorks Integration

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

    What do you mean by that?

    Comment


      Guys, can I have some help? I've tried implementing waveworks but it just wont work. I have made a video of what I did, including errors at the end. Important timestamps are in the description:https://www.youtube.com/watch?v=ldEe518jGsg
      Thanks-
      MG

      Comment


        ETA on 4.16 releases besides flow?

        Thanks!

        Comment


          Originally posted by masongos View Post
          Guys, can I have some help? I've tried implementing waveworks but it just wont work. I have made a video of what I did, including errors at the end. Important timestamps are in the description:https://www.youtube.com/watch?v=ldEe518jGsg
          Thanks-
          MG
          Hi,

          The first error it´s vulkan libs compiled and linked to the vs 2015, and can´t find the linkage function exported because Vulkan for Windows it's VS 2015. The Second error the UHT refuses to compile because shader compiler project failed and it's an requisite first.
          My advices it's change to,
          get Visual Studio 2015 for UE4 and libraries compatibility, and project packaging. Install this.
          get Build Tools 2015 Update 3 The release is also available via a standalone Build Tools 2015 Update 3 installer. Install this.
          get Windows SDK 8.1 Windows SDK 8.1 if not full instaled in your system.
          get Windows SDK 10 for new upcomings changes, install this if you want.

          My advice it's You extract Waveworks zip file run setup.bat, and again extract Waveworks zip file and overwrite the last extracted folder, and not run the setup.bat after this.
          Last edited by KradMoonRa; 06-12-2017, 04:05 PM.

          Comment


            Seems Flex 4.16 is available now.

            Comment


              I have a problem with the substance plugin and vxgi (since 4.13)
              I have been able to compile it, when i launch UE4 i do get the plugin in the plugin menu and i'm able to use it and import substance material...but none of the parameters are working anymore.

              I feel like i'am the only one ever disapointed about this problem and i really wonder why...because Substance+VXGI both at the same time would be quite a dream to me!
              Last edited by Sunny94; 06-13-2017, 12:43 PM.

              Comment


                Question.

                Is NVflow just a plugin? do I need to still compile the engine source?

                Thanks

                Comment


                  Originally posted by catalejo View Post
                  Question.

                  Is NVflow just a plugin? do I need to still compile the engine source?

                  Thanks
                  Still need to compile engine source. Minimal engine modifications are made to expose interfaces the plugin needs.

                  Comment


                    Flex and Flow both work wonderfully on 4.16 and package without any issue.
                    LinkedIn | Link custom Shaders in 4.21 | Atmosphere Modelisation | Distance Matching Locomotion | Nvidia GameWorks builds - 4.19.2 : VXGI2.0, Blast, HairWorks, Flow - Plugins: VictoryBP

                    Comment


                      Thanks for also getting Flex for 4.16 out quickly. I see that Volumetric Lighting is also available for 4.16 now but I'm not sure I will use that now that UE4 has its own stuff for this in 4.16.

                      Comment


                        Wow this is great that we can now have both Nvidia Volumetric Lighting and actual UE stock Volumetric Lighting, Nvidia for actual shafts, UE for volumetric particle material.

                        Comment


                          Hello,

                          I just tried to use the FleX 4.16 build from their official repository (https://github.com/NvPhysX/UnrealEng...ee/FleX-4.16.0).
                          However, it seems I'm doing something wrong since I get those errors during my build on the UE4.sln:
                          Click image for larger version

Name:	Capture.PNG
Views:	1
Size:	14.1 KB
ID:	1129503

                          I've followed those steps so far:
                          1. Install GitHub for Windows then fork and clone our repository. To use Git from the command line, see the Setting up Git and Fork a Repo articles.
                          If you'd prefer not to use Git, you can get the source with the 'Download ZIP' button on the right. The built-in Windows zip utility will mark the contents of zip files downloaded from the Internet as unsafe to execute, so right-click the zip file and select 'Properties...' and 'Unblock' before decompressing it. Third-party zip utilities don't normally do this.

                          2. Install Visual Studio 2017. All desktop editions of Visual Studio 2017 can build UE4, including Visual Studio Community 2017, which is free for small teams and individual developers. To install the correct components for UE4 development, check the "Game Development with C++" workload, and the "Unreal Engine Installer" optional component.

                          3. Open your source folder in Explorer and run Setup.bat. This will download binary content for the engine, as well as installing prerequisites and setting up Unreal file associations. On Windows 8, a warning from SmartScreen may appear. Click "More info", then "Run anyway" to continue.
                          A clean download of the engine binaries is currently 3-4gb, which may take some time to complete. Subsequent checkouts only require incremental downloads and will be much quicker.

                          4. Run GenerateProjectFiles.bat to create project files for the engine. It should take less than a minute to complete.

                          5. Load the project into Visual Studio by double-clicking on the UE4.sln file. Set your solution configuration to Development Editor and your solution platform to Win64, then right click on the UE4 target and select Build. It may take anywhere between 10 and 40 minutes to finish compiling, depending on your system specs.

                          6. After compiling finishes, you can load the editor from Visual Studio by setting your startup project to UE4 and pressing F5 to debug.
                          Anyone got the same issue? Or am I missing something?

                          Many thanks in advance!
                          -Reelie
                          Last edited by Reelie; 06-14-2017, 05:52 PM.

                          Comment


                            that's a UE4 bug,

                            In D3D12StateCachePrivate.h Line 716

                            this: D3D12_STATE_CACHE_INLINE void FD3D12StateCacheBase::SetPipelineState(FD3D12PipelineState* PSO)
                            change to
                            this: D3D12_STATE_CACHE_INLINE void SetPipelineState(FD3D12PipelineState* PSO)

                            and I think you good to go.

                            Comment


                              Hey,

                              Engine\Source\Runtime\Renderer\Private\ShadowRendering.cpp in function: void FProjectedShadowInfo::SetupProjectionStencilMask

                              From line 797
                              to line 825

                              the

                              #if WITH_FLEX
                              #else
                              #endif //Flex

                              It produce error if not with flex, and the function gets broken because the terminate brackets gets removed from the for or if, really dono what You trying to achieve here.

                              Code:
                              		// if rendering modulated shadows mask out subject mesh elements to prevent self shadowing.
                              		if (bMobileModulatedProjections && !CVarEnableModulatedSelfShadow.GetValueOnRenderThread())
                              		{
                              			DrawRenderState.SetDepthStencilState(
                              				TStaticDepthStencilState<
                              				false, CF_DepthNearOrEqual,
                              				true, CF_Always, SO_Keep, SO_Keep, SO_Replace,
                              				true, CF_Always, SO_Keep, SO_Keep, SO_Replace,
                              				0xff, 0xff
                              				>::GetRHI());
                              			DrawRenderState.SetStencilRef(0);
                              
                              			FDepthDrawingPolicyFactory::ContextType Context(DDM_AllOccluders, false);
                              			for (int32 MeshBatchIndex = 0; MeshBatchIndex < DynamicSubjectMeshElements.Num(); MeshBatchIndex++)
                              			{
                              				const FMeshBatchAndRelevance& MeshBatchAndRelevance = DynamicSubjectMeshElements[MeshBatchIndex];
                              #if WITH_FLEX
                              		if (!MeshBatchAndRelevance.PrimitiveSceneProxy->IsFlexFluidSurface())
                              		{
                              				const FMeshBatch& MeshBatch = *MeshBatchAndRelevance.Mesh;
                              				FDepthDrawingPolicyFactory::DrawDynamicMesh(RHICmdList, *View, Context, MeshBatch, true, DrawRenderState, MeshBatchAndRelevance.PrimitiveSceneProxy, MeshBatch.BatchHitProxyId);
                              			}
                              
                              			for (int32 ElementIndex = 0; ElementIndex < StaticSubjectMeshElements.Num(); ++ElementIndex)
                              			{
                              				const FStaticMesh& StaticMesh = *StaticSubjectMeshElements[ElementIndex].Mesh;
                              				FDepthDrawingPolicyFactory::DrawStaticMesh(
                              					RHICmdList,
                              					*View,
                              					FDepthDrawingPolicyFactory::ContextType(DDM_AllOccluders, false),
                              					StaticMesh,
                              					StaticMesh.bRequiresPerElementVisibility ? View->StaticMeshBatchVisibility[StaticMesh.Id] : ((1ull << StaticMesh.Elements.Num()) - 1),
                              					true,
                              					DrawRenderState,
                              					StaticMesh.PrimitiveSceneInfo->Proxy,
                              					StaticMesh.BatchHitProxyId,
                              					false
                              				);
                              			}
                              		}
                              #else
                              		const FMeshBatch& MeshBatch = *MeshBatchAndRelevance.Mesh;
                              		FShadowDepthDrawingPolicyFactory::DrawDynamicMesh(RHICmdList, *FoundView, Context, MeshBatch, false, true, MeshBatchAndRelevance.PrimitiveSceneProxy, MeshBatch.BatchHitProxyId);
                              #endif
                              	}
                              	}
                              Can be changed to this, and can this achieve what You mean in the code?

                              Code:
                              		// if rendering modulated shadows mask out subject mesh elements to prevent self shadowing.
                              		if (bMobileModulatedProjections && !CVarEnableModulatedSelfShadow.GetValueOnRenderThread())
                              		{
                              			DrawRenderState.SetDepthStencilState(
                              				TStaticDepthStencilState<
                              				false, CF_DepthNearOrEqual,
                              				true, CF_Always, SO_Keep, SO_Keep, SO_Replace,
                              				true, CF_Always, SO_Keep, SO_Keep, SO_Replace,
                              				0xff, 0xff
                              				>::GetRHI());
                              			DrawRenderState.SetStencilRef(0);
                              
                              			FDepthDrawingPolicyFactory::ContextType Context(DDM_AllOccluders, false);
                              
                              			for (int32 MeshBatchIndex = 0; MeshBatchIndex < DynamicSubjectMeshElements.Num(); MeshBatchIndex++)
                              			{
                              
                              				const FMeshBatchAndRelevance& MeshBatchAndRelevance = DynamicSubjectMeshElements[MeshBatchIndex];
                              
                              				const FMeshBatch& MeshBatch = *MeshBatchAndRelevance.Mesh;
                              
                              				// // // // // // // // // // // // // //
                              				// 		NVCHANGE_BEGIN: Add  Flex
                              				// // // // // // // // // // // // // //
                              #if WITH_FLEX
                              				if (!MeshBatchAndRelevance.PrimitiveSceneProxy->IsFlexFluidSurface())
                              				{
                              					FDepthDrawingPolicyFactory::DrawDynamicMesh(RHICmdList, *View, Context, MeshBatch, true, DrawRenderState, MeshBatchAndRelevance.PrimitiveSceneProxy, MeshBatch.BatchHitProxyId);
                              				}
                              #else
                              				FDepthDrawingPolicyFactory::DrawDynamicMesh(RHICmdList, *View, Context, MeshBatch, true, DrawRenderState, MeshBatchAndRelevance.PrimitiveSceneProxy, MeshBatch.BatchHitProxyId);
                              #endif
                              				// // // // // // // // // // // // // //
                              				// 		NVCHANGE_END: Add Flex
                              				// // // // // // // // // // // // // //
                              
                              			}
                              
                              			for (int32 ElementIndex = 0; ElementIndex < StaticSubjectMeshElements.Num(); ++ElementIndex)
                              			{
                              				const FStaticMesh& StaticMesh = *StaticSubjectMeshElements[ElementIndex].Mesh;
                              				FDepthDrawingPolicyFactory::DrawStaticMesh(
                              					RHICmdList,
                              					*View,
                              					FDepthDrawingPolicyFactory::ContextType(DDM_AllOccluders, false),
                              					StaticMesh,
                              					StaticMesh.bRequiresPerElementVisibility ? View->StaticMeshBatchVisibility[StaticMesh.Id] : ((1ull << StaticMesh.Elements.Num()) - 1),
                              					true,
                              					DrawRenderState,
                              					StaticMesh.PrimitiveSceneInfo->Proxy,
                              					StaticMesh.BatchHitProxyId,
                              					false
                              				);
                              			}
                              		}

                              Comment


                                Originally posted by VItorEAFeliciano View Post
                                that's a UE4 bug,

                                In D3D12StateCachePrivate.h Line 716

                                this: D3D12_STATE_CACHE_INLINE void FD3D12StateCacheBase::SetPipelineState(FD3D12PipelineState* PSO)
                                change to
                                this: D3D12_STATE_CACHE_INLINE void SetPipelineState(FD3D12PipelineState* PSO)

                                and I think you good to go.
                                Great! It was the solution. Many thanks!
                                -Reelie
                                Last edited by Reelie; 06-19-2017, 12:04 PM.

                                Comment

                                Working...
                                X