Announcement

Collapse
No announcement yet.

NVIDIA GameWorks Integration

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

  • replied
    Thanks again Derjyn and Olento you guys are of great help and thankyou for pointing out the obviuos, i just thought it would be more in the lines of copy and pasting a few things, im just not looking to get into a big project as im trying to finish one im in, and time just isnt on my side. As for hair pulling, too late for that i have none so none to pull. i originally wanted a launcher like plug because of all the updates that are being pushed and ease of use but hey, it's not like i cant do without, it would have been helpful though. Hey you mentioned Blast could be used as a plugin right? I mean i can just compile that in the launcher build as if i were to rebuild the plugin right. because that plugin im really interested in as its way better than Apex standard plug. As for hair and the others not a Priority in my opinion. Oh And yes i have a little know how with c++. Not my first time. Anyway thank you very much Mate. Now i am really interested in the Blast plugin.

    Leave a comment:


  • replied
    You aren't going to be able to use Flow, Hair or Flex with the launcher version. Blast can be used as a plugin, but I think (someone correct me if I'm wrong) even that needs some source code modifications. These things require modified versions of the engine. This means either rolling your own and incorporating Nvidia's changes, directly using their specific branches, or using the versions from the likes of 0lento above, where someone else has taken the time to merge the various bits of GameWorks together.

    How to do this has been covered in this topic, but it really is down to programming knowledge in general. Diff'ing files and merging in those changes, linking to external libraries and including headers and such... If you've never even whipped up a C++ "hello world" and set up a stable development environment, this is quite the task to take on when just starting out. Not saying don't do it- just saying be prepared to pull your hair out.

    0lento's fork/branch has the most up-to-date versions of anything I've come across, and compiles without issue (at least, last I tried!). If you've ever compile the engine from source, it's pretty much the same process. More thorough instructions are actually over at the Github repos. So again, your options are to either use one of these lovely pre-made versions and not use what you don't want, or roll your own and not incorporate the things you don't need. Flex isn't available for 4.19 yet (as of writing), but as 0lento pointed out, he has a 4.18.3 version with that included.

    Documentation is your friend. If you were searching for how to compile Unreal Engine, surely you would have seen this near or the top of your search results: https://docs.unrealengine.com/en-us/...ngUnrealEngine

    Also, this beastly thread (as of writing, 308 pages) is full of knowledge related to various aspects of GameWorks! It might take some time, but it's totally worth it to dedicate some time pouring over it with a magnifying glass. It's how I've solved many of my own issues, matter-of-factly. With that said, you'll see several questions from me in this thread as well, haha. As far as making custom builds of the engine that ditches some of the stuff you might not want, I've found it to be more of a headache than it's worth. For plugins, I just disable what I don't use. For other features of the engine, I just don't use them. Performance has never suffered, and I have no problem packaging and shipping projects that weigh in at 50mb all said and done.

    I'm using a modified version of one of 0lento's builds, with the addition of other changes to the engine source, and dozens of external plugins. I'm not having any issues, but that comes with time and getting to know what works and what doesn't. You just have to experiment, piece by piece, until you land on something that is stable. Then slowly build from there. It's no fun sitting on the other side of the fence, seeing the big kids get to play with the big toys, but if you a project you are working on is having too many issues with custom builds of the engine, you might have to look the other way, heh. Tinker with this madness on the side as an experiment, and stick to stability for serious projects- it's the safe route!

    Leave a comment:


  • replied
    So can someone point me as to where i can learn on how to merge my own. I just dont want added plugins that arent going to be used, where all i really need is Blast, Flow, Hair and possibly Flex. My main issue with wanting it for launxher builds is because ive had problems with building projects in custom build where as for launcher builds all works great. Other than that i would like to get my own build done if you can point me to the right direction because google sends me to random threads that tells me nothing. Any help would be greatly appreciated, and thank you guys for the quick responce.

    Leave a comment:


  • replied
    wargamearmathethird if it helps anything, I have few merged GameWork tech UE 4.18.3 repos here that has flex too, they should build fine as is (as long as you have your dev environment setup correctly).
    https://github.com/0lento/UnrealEngi...last-Flex-Flow for 4.18.3, Blast, Flex and Flow
    https://github.com/0lento/UnrealEngi...4.18-GameWorks for Blast, Flex, Flow, HBAO+ 3, Volumetric Lighting and VXGI 1

    Leave a comment:


  • replied
    Hello, just recently needed to work with flex inside ue4, and as such do not have much knowledge of the program itself. Whenever I attempt to build the most recent built 4.17.1, I get these errors, and after googling around I cannot find another case of these errors occurring for anyone else. If it helps diagnose, I just finished fixing the combaseapi.h error that required me to state IUnknown. Thank you for any help!

     
    Spoiler

    Leave a comment:


  • replied
    Originally posted by porckchop View Post
    Is it possible to get b;ast, Flex, Flow and hair build. i have no need for Waveworks, HBOA ect. or can someone tell me how i can make my own port. Sctually i wish i could just use these plugins with the launcher binary of UE4 unless its really possible a heads up would be great too. would really appreciate it thanks, BTW you guys are great,
    It's not really possible with the launcher version. You need to compile it, no way around that. Making your own build is quite the undertaking, especially if you haven't compiled the engine from source before. Being able to find the subject of compiling these custom builds and merging in the different features, would be a great first step in the skills required for this sort of stuff (hint: it's been covered, tips are scattered around this and other threads, and Google exists).

    There are builds already that have all the GameWorks offerings except Flex (and why Flex isn't merged in yet has been covered several times now), so you can easily get one of those builds and just not use the other features. It'd be akin to getting a launcher version of the engine. There are over 100 plugins and features by default. I rarely open a project from another person/team where they take the time to disable what they don't use (which baffles my mind, hehe).

    It's a lot of work doing these merged builds, and maintaining them. Rolling out custom builds based on requests every time a random person asks (enabling this or disabling that) is asking a bit much if you ask me. Learn to do it yourself, or be content with the understanding that you might have to wait, or take what the good peeps make available! Or, I'm sure someone would be happy to do it for a programmers hourly wages or donations

    Leave a comment:


  • replied
    Is it possible to get b;ast, Flex, Flow and hair build. i have no need for Waveworks, HBOA ect. or can someone tell me how i can make my own port. Sctually i wish i could just use these plugins with the launcher binary of UE4 unless its really possible a heads up would be great too. would really appreciate it thanks, BTW you guys are great,

    Leave a comment:


  • replied
    Vxgi 2.0 on min maxwel ?? Kepler doesnt work ? Maybe gtx 650 ti

    Leave a comment:


  • replied
    Originally posted by samrat333 View Post

    hi why you not merge flex??
    WindyStrife isn't maintaining that branch, LukaszPJWSTK is. And Flex isn't merged because Nvidia hasn't released a 4.19 version yet, as has been stated previously when others asked the same question. Should be soon, hopefully!

    Leave a comment:


  • replied
    Originally posted by WindyStrife View Post

    nice i will try wavework package..hope it work..
    hi why you not merge flex??

    Leave a comment:


  • replied
    Originally posted by Alexey.Panteleev View Post


    Well, VXGI does not support Vulkan, at least not yet.

    The specific error suggests that it tries to compile the GBufferAccessShader (VXGI / UE interop on G-buffer data) but fails due to some HLSL-isms that are used there, like explicit binding point assignment. If anyone cares, I can try to disable compiling those shaders, along with any other VXGI activity, on unsupported platforms.
    Hello, I tried to get the 360 degree high-resolution screenshots from VXGI with Ansel plug-ins, but I found that the combination of VXGI and Ansel1 is problematic.

    The problem appears in the GI part of VXGI. When I use a 360 degree interception of the default 4K resolution, GI is completely normal, but when I use 8K or even higher resolution to intercept a Ansel 360 degree screenshot, GI becomes almost invisible, and it can be observed that GI can affect only a small block.

    This is not a problem of voxel size. No matter how large the voxel range is, they are always unable to present normal in the 360 degree screenshot above the 4K, and even the high resolution screenshots of the Ansel do not work properly.

    He is like Figure 1 and Figure 2 below, 1 is the 360 screenshot of 4K, and its GI is normal. 2 is the 360 screenshot of 8K, and its GI completely disappeared. But their voxels are very remote, and I find that there is no problem with voxel LPV.

    Leave a comment:


  • replied
    Originally posted by MASSIVE Can View Post
    Alexey.Panteleev Hi again, today I wanted to try Vulkan on the VXGI branch and I followed the Intel's guide to activate it. (https://software.intel.com/en-us/art...n-apis-for-ue4) So I Installed latest Vulkan SDK and Nvidia Driver. I added "-vulkan" to end of editor shortcut. When I start the engine Firstly it crashes and asks me to enable r.ShaderDevelopmentMode in ConsoleVariables.ini. I enabled it and tried again but in this time it shows another warning. I attached the ss of warning. If I click yes I have the same warning again and again and Initializing percent doesn't make any progress. What can be the problem? Have you tried Vulkan on the branch? I saw some people who are using the editor with Vulkan

    Well, VXGI does not support Vulkan, at least not yet.

    The specific error suggests that it tries to compile the GBufferAccessShader (VXGI / UE interop on G-buffer data) but fails due to some HLSL-isms that are used there, like explicit binding point assignment. If anyone cares, I can try to disable compiling those shaders, along with any other VXGI activity, on unsupported platforms.

    Leave a comment:


  • replied
    Alexey.Panteleev Hi again, today I wanted to try Vulkan on the VXGI branch and I followed the Intel's guide to activate it. (https://software.intel.com/en-us/art...n-apis-for-ue4) So I Installed latest Vulkan SDK and Nvidia Driver. I added "-vulkan" to end of editor shortcut. When I start the engine Firstly it crashes and asks me to enable r.ShaderDevelopmentMode in ConsoleVariables.ini. I enabled it and tried again but in this time it shows another warning. I attached the ss of warning. If I click yes I have the same warning again and again and Initializing percent doesn't make any progress. What can be the problem? Have you tried Vulkan on the branch? I saw some people who are using the editor with Vulkan

    Leave a comment:


  • replied
    Whoa- it's super annoying when people quote giant posts (much appreciated when forums frown on and enforce this in rules). Also, throw the code stuff you posted in code formatting. It's good to do this with error log stuff, or really anything code related. Makes it much easier for us all to read and help out, without getting a headache

    Leave a comment:


  • replied
    Originally posted by 황용수 View Post
    Hi! everyone..

    I have a trouble..

    Now i am testing nvidia waveworks.

    When i tested in Editor, it was successful.
    but i packaged program, it was crash.

    I think it was relative with shader, because i met this error message.

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------
    LoginId:aab2f45649d338800007d6ae6e72db2a
    EpicAccountId:2d7fa9ae0b134dc98fea1542a7cbf458

    Assertion failed: (Index >= 0) & (Index < ArrayNum) [File:F:\UnrealEngine-4.18.3-release\Engine\Source\Runtime\Core\Public\Containers/Array.h] [Line: 610] Array index out of bounds: 0 from an array of size 0

    Wave_Win64_DebugGame!FDebug::AssertFailed() [f:\unrealengine-4.18.3-release\engine\source\runtime\core\private\misc\assertionmacros.cpp:414]
    Wave_Win64_DebugGame!TBasePassWaveWorksDrawingPolicy<FUniformLightMapPolicy>::ConfigureQuardTreeInputMapping() [f:\unrealengine-4.18.3-release\engine\source\runtime\renderer\private\basepassrendering.h:1420]
    Wave_Win64_DebugGame!TBasePassWaveWorksDrawingPolicy<FUniformLightMapPolicy>::TBasePassWaveWorksDrawingPolicy<FUniformLightMapPolicy>() [f:\unrealengine-4.18.3-release\engine\source\runtime\renderer\private\basepassrendering.h:1515]
    Wave_Win64_DebugGame!FDrawTranslucentMeshAction::Process<FUniformLightMapPolicy>() [f:\unrealengine-4.18.3-release\engine\source\runtime\renderer\private\translucentrendering.cpp:491]
    Wave_Win64_DebugGame!ProcessBasePassMesh<FDrawTranslucentMeshAction>() [f:\unrealengine-4.18.3-release\engine\source\runtime\renderer\private\basepassrendering.h:2080]
    Wave_Win64_DebugGame!FTranslucencyDrawingPolicyFactory:rawWaveWorksMesh() [f:\unrealengine-4.18.3-release\engine\source\runtime\renderer\private\translucentrendering.cpp:718]
    Wave_Win64_DebugGame!FTranslucencyDrawingPolicyFactory:rawDynamicWaveWorksMesh() [f:\unrealengine-4.18.3-release\engine\source\runtime\renderer\private\translucentrendering.cpp:795]
    Wave_Win64_DebugGame!FTranslucentPrimSet::RenderWaveWorksPrimitive() [f:\unrealengine-4.18.3-release\engine\source\runtime\renderer\private\translucentrendering.cpp:1106]
    Wave_Win64_DebugGame!FTranslucentPrimSet:rawWaveWorksPrimitives() [f:\unrealengine-4.18.3-release\engine\source\runtime\renderer\private\translucentrendering.cpp:1003]
    Wave_Win64_DebugGame!FDeferredShadingSceneRenderer::RenderWaveWorks() [f:\unrealengine-4.18.3-release\engine\source\runtime\renderer\private\translucentrendering.cpp:1771]
    Wave_Win64_DebugGame!FDeferredShadingSceneRenderer::Render() [f:\unrealengine-4.18.3-release\engine\source\runtime\renderer\private\deferredshadingrenderer.cpp:1260]
    Wave_Win64_DebugGame!UpdateSceneCaptureContentDeferred_RenderThread() [f:\unrealengine-4.18.3-release\engine\source\runtime\renderer\private\scenecapturerendering.cpp:267]
    Wave_Win64_DebugGame!UpdateSceneCaptureContent_RenderThread() [f:\unrealengine-4.18.3-release\engine\source\runtime\renderer\private\scenecapturerendering.cpp:309]
    Wave_Win64_DebugGame!TGraphTask<TEnqueueUniqueRenderCommandType<`FScene::UpdateSceneCaptureContents'::`12'::CaptureCommandName,<lambda_2f5b22162577ad8db4efab9192d8d401> > >::ExecuteTask() [f:\unrealengine-4.18.3-release\engine\source\runtime\core\public\async\taskgraphinterfaces.h:787]
    Wave_Win64_DebugGame!FNamedTaskThread::ProcessTasksNamedThread() [f:\unrealengine-4.18.3-release\engine\source\runtime\core\private\async\taskgraph.cpp:651]
    Wave_Win64_DebugGame!FNamedTaskThread::ProcessTasksUntilQuit() [f:\unrealengine-4.18.3-release\engine\source\runtime\core\private\async\taskgraph.cpp:560]
    Wave_Win64_DebugGame!RenderingThreadMain() [f:\unrealengine-4.18.3-release\engine\source\runtime\rendercore\private\renderingthread.cpp:327]
    Wave_Win64_DebugGame!FRenderingThread::Run() [f:\unrealengine-4.18.3-release\engine\source\runtime\rendercore\private\renderingthread.cpp:461]
    Wave_Win64_DebugGame!FRunnableThreadWin::Run() [f:\unrealengine-4.18.3-release\engine\source\runtime\core\private\windows\windowsrunnablethread.cpp:76]
    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    I don't know solution. Pleas help me.
    I have do something for it.
    I find the problem.The reason it crashed is that Array index out of bounds.
    At this file \Engine\Source\Runtime\Renderer\Private\BasePassRendering.h”
    The function ConfigureWaveWorksInputMapping()and ConfigureWaveWorksInputMapping ();
    Actually these function has the same problem.It is that WaveWorksShaderParams-> ShaderInputMappings is empty.

    And then I try to find where it init at. After a period of time debugging, at last I find the reason of ShaderInputMappings being empty is
    It can not get WaveworksResource in this file:
    \Engine\Source\Runtime\Engine\Private\Components\WaveWorksComponent.cpp”
    The fouction UWaveWorksComponent::CalcBounds();
    And The function UWaveWorks::GetWaveWorksResource() in this file:
    \Engine\Source\Runtime\Engine\Private\WaveWorks.cpp”

    // GetWaveWorksResource()
    class FWaveWorksResource* UWaveWorks::GetWaveWorksResource()
    {
    FWaveWorksResource* Result = NULL;
    if( WaveWorksResource && WaveWorksResource->IsInitialized() )
    {
    Result = (FWaveWorksResource*)WaveWorksResource;
    }
    return Result;
    }
    I try to set breakpoints at this function,there was something interesting.
    It is amazing that the return of this function(WaveWorksResource->IsInitialized()) is different when it run with editor and no-editor.

    So I try to find the reason of it. Then I find it init at this file :
    \Engine\Source\Runtime\Engine\Private\WaveWorks.cpp”
    In this function : UWaveWorks::UpdateResource()

    // UWaveWorks::UpdateResource()
    void UWaveWorks::UpdateResource()
    {
    // Release the existing texture resource.
    ReleaseResource();

    //Dedicated servers have no texture internals
    if (FApp::CanEverRender() && !HasAnyFlags(RF_ClassDefaultObject))
    {
    // Create a new texture resource.
    WaveWorksResource = new FWaveWorksResource(this);
    BeginInitResource(WaveWorksResource);
    }
    }
    At last I know why the return of WaveWorksResource->IsInitialized() is false.
    When it run with editor,after this function BeginInitResource(WaveWorksResource) beginning, render theard will run before UWaveWorksComponent::CalcBounds() beginning.
    But when it run without editor, after this function BeginInitResource(WaveWorksResource) beginning, render theard will run after UWaveWorksComponent::CalcBounds() beginning.
    So without editor,when UWaveWorksComponent::CalcBounds() beginning, WaveWorksResource’s render theard have not started.So the return of WaveWorksResource->IsInitialized() is false.

    Yesterday,I find that it also crashed with editor when you use a new WaveworksAsset.
    I think the problem of it is Serialization.You can do this test: Create a new waveworksasset and use it in a waveworkscomponent.Your editor will crashed and the erro log is the same.

    Leave a comment:

Working...
X