Announcement

Collapse
No announcement yet.

NVIDIA GameWorks Integration

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

    Originally posted by Alexey.Panteleev View Post

    I just went ahead and ported the TXAA integration to 4.19 and fixed the crash on viewport resize. It's not perfect (e.g. I expect the dynamic resolution feature will not work properly yet), but it's better than before.

    To make sure that you're using TXAA and not built-in TAA, do something to break it, for example set r.TXAA.EnableColorClipping to 0 and observe trailing artifacts when moving the camera.
    Why when allow static light is disconnected, in case of switching on of vxgi 2.0, the engine crash? Почему когда отключен allow static light, при включении vxgi 2.0, движок крашется?

    Comment


      Originally posted by Alexey.Panteleev View Post

      I just went ahead and ported the TXAA integration to 4.19 and fixed the crash on viewport resize. It's not perfect (e.g. I expect the dynamic resolution feature will not work properly yet), but it's better than before.

      To make sure that you're using TXAA and not built-in TAA, do something to break it, for example set r.TXAA.EnableColorClipping to 0 and observe trailing artifacts when moving the camera.
      Thank you, I'll check the new branch
      https://github.com/0lento/UnrealEngine (GameWorks tech merges & upgrades, UE4 physics modifications)

      Comment


        Originally posted by sudey View Post

        Why when allow static light is disconnected, in case of switching on of vxgi 2.0, the engine crash?
        I noticed this as well. If you disable static lighting from project settings and enable VXGI, engine will crash immediately on VxgiRendering.cpp while trying to read nonexisting SceneContext.GBufferE.
        Last edited by 0lento; 04-26-2018, 10:51 AM.
        https://github.com/0lento/UnrealEngine (GameWorks tech merges & upgrades, UE4 physics modifications)

        Comment


          Originally posted by sudey View Post

          Why when allow static light is disconnected, in case of switching on of vxgi 2.0, the engine crash? Почему когда отключен allow static light, при включении vxgi 2.0, движок крашется?
          Fixed. Исправлено.

          Comment


            Originally posted by iniside View Post
            Alexey.Panteleev

            Hey while you are here I have question.

            Did you considered optimizing Voxelization pass to not happen every frame ? Ie. do not revoxelize static objects, voxelize further cascades less often (every N frames). Etc ?

            On complex scenes consistently even on 1080ti Voxelization pass is most time consuming. It would do wonders to make VXGI more scalable to lower end hardware.
            Considered - yes, implemented - not yet.

            There are two feasible options. One is to only update dynamic objects (not just UE-dynamic, but also moving static meshes) and regions that were not covered on the previous frame. This is somewhat problematic because it relies on the engine being able to compute accurate bounding boxes for dynamic objects, and also update parts of the static objects that happen to intersect with dynamic. Adding direct lights makes this even more fun because shadows potentially depend on objects far away, and objects that receive the shadows then also need to be updated.

            The second option is to freeze the voxel representation for some number of frames while the game/project knows that things are static. This is relatively easy, but it will lead to stutter when something does change, and voxelization needs to happen. A more advanced version of this would perform voxelization of a complex scene over multiple frames, while VXGI lighting will be either turned off or based on the previous voxel data (with the latter requiring changes to VXGI itself to handle two sets of voxel data).

            Comment


              Originally posted by Alexey.Panteleev View Post

              Fixed. Исправлено.
              Thank you. Спасибо. Если можно последний вопрос- Почему собранный движок иногда подвисает? не используя даже vxgi. В то время как движок от лаунчера допустим идет гладко. причина в сборке или так должно быть? Спасибо оперативность.

              Comment


                Alexey.Panteleev I tried TXAA3-4.19 and now it does give slightly different visuals on my testing. It doesn't really perform that well in comparison to unreals built-in TAA on my trivial ghosting test but one can tell it's not same ghosting anymore. For comparison shots:

                Here's Nvidias TXAA 3: https://www.dropbox.com/s/5rxj6lhgqf...TXAA.gif?raw=1
                and here UE4's TAA: https://www.dropbox.com/s/m0llmelg5j..._TAA.gif?raw=1

                Ghosting isn't that bad on normal use cases, I just use that test as it brings the worst out of temporal AAs and can show what might happen on noisy materials.

                As as side note, TXAA crashes UE4 instantly on postrprocessing pass if unreals forward shading is enabled. Is Nvidias TXAA supposed to work in forward at all?
                https://github.com/0lento/UnrealEngine (GameWorks tech merges & upgrades, UE4 physics modifications)

                Comment


                  Originally posted by 0lento View Post
                  Alexey.Panteleev I tried TXAA3-4.19 and now it does give slightly different visuals on my testing. It doesn't really perform that well in comparison to unreals built-in TAA on my trivial ghosting test but one can tell it's not same ghosting anymore. For comparison shots:

                  Here's Nvidias TXAA 3: https://www.dropbox.com/s/5rxj6lhgqf...TXAA.gif?raw=1
                  and here UE4's TAA: https://www.dropbox.com/s/m0llmelg5j..._TAA.gif?raw=1

                  Ghosting isn't that bad on normal use cases, I just use that test as it brings the worst out of temporal AAs and can show what might happen on noisy materials.

                  As as side note, TXAA crashes UE4 instantly on postrprocessing pass if unreals forward shading is enabled. Is Nvidias TXAA supposed to work in forward at all?
                  Oh that scene is definitely a difficult case for the T(X)AA neighborhood filter. Try setting r.TXAA.UseRGB = 1, but I don't expect it'll become much better. Basically, the filter sees that the road has a range of colors from black to white, and the car falls roughly into the same range, so it's considered to be road as well. It should be better if there is some chromatic difference between the car and the road.

                  I'll need to look into the forward shading issue.

                  Comment


                    Originally posted by sudey View Post

                    Thank you. Спасибо. Если можно последний вопрос- Почему собранный движок иногда подвисает? не используя даже vxgi. В то время как движок от лаунчера допустим идет гладко. причина в сборке или так должно быть? Спасибо оперативность.
                    Let's stick to English here...
                    I'm not sure why the non-VXGI engine that you build yourself sometimes lags, compared to the binaries from Epic. Are you building the Development Editor configuration? Are you running it from Visual Studio - if so, will it still lag if you use Debug / Start Without Debugging command? In any case, you should probably discuss this with Epic support.

                    Comment


                      Hi Alexey, thanks for the the VXGI 2.0 update. Started diving into the new post process format.

                      Do you have suggestions for an extreme performance setup that would be similar to former:
                      VXGI diffuse only - 4 Cones - 3 Tracing Sparsity - Cone Rotation On - Refine Space tracing On - Multi-bounce On - MapSize 64.

                      After trying Tracing-resolution Quarter-Res, MapsizeX/Y/Z 64 and Quality/sample Rate to .5 i feel like i lost a couple frame per second compared to my former performance setup.

                      I'm merely trying to define an extreme performance setup that should run on a maximum amount of users.


                      Edit: The VXGI pdf at the root of the engine build has actually been updated with the new vxgi format and lots of information.
                      Last edited by MaximeDupart; 04-26-2018, 02:36 PM.
                      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


                        EDIT: nvm, instructions seems to be included.

                        Comment


                          Originally posted by Alexey.Panteleev View Post

                          Considered - yes, implemented - not yet.

                          There are two feasible options. One is to only update dynamic objects (not just UE-dynamic, but also moving static meshes) and regions that were not covered on the previous frame. This is somewhat problematic because it relies on the engine being able to compute accurate bounding boxes for dynamic objects, and also update parts of the static objects that happen to intersect with dynamic. Adding direct lights makes this even more fun because shadows potentially depend on objects far away, and objects that receive the shadows then also need to be updated.

                          The second option is to freeze the voxel representation for some number of frames while the game/project knows that things are static. This is relatively easy, but it will lead to stutter when something does change, and voxelization needs to happen. A more advanced version of this would perform voxelization of a complex scene over multiple frames, while VXGI lighting will be either turned off or based on the previous voxel data (with the latter requiring changes to VXGI itself to handle two sets of voxel data).
                          Hey thanks for answer. IT would be really nice to get it working.
                          Ie. On elemental demo scene, default settings voxelization takes about 8.88ms on GeForce 1080 TI (enabled Diffuse and AO pass). And that scene is mostly static. I gues trade off for much faster voxelization (but with less quality due to less often updates), would be acceptable especially for diffuse and AO.

                          But it is so nice that this tech is still being worked on.
                          https://github.com/iniside/ActionRPGGame - Action RPG Starter kit. Work in Progress. You can use it in whatever way you wish.

                          Comment


                            Originally posted by Maxime.Dupart View Post
                            Do you have suggestions for an extreme performance setup that would be similar to former:
                            VXGI diffuse only - 4 Cones - 3 Tracing Sparsity - Cone Rotation On - Refine Space tracing On - Multi-bounce On - MapSize 64.

                            After trying Tracing-resolution Quarter-Res, MapsizeX/Y/Z 64 and Quality/sample Rate to .5 i feel like i lost a couple frame per second compared to my former performance setup.
                            Those settings are most closely matched with Quality = 0 (which doesn't mean off).

                            Just for reference, here's the code that translates the new-style parameters (Quality and Sampling Rate) to the old-style number of cones and angle.

                            Code:
                                   
                                    float quality = saturate(params.quality);
                                    const float minAngle = 15.f;
                                    const float maxAngle = 60.f;
                                    float coneAngle = (minAngle - maxAngle) * quality + maxAngle;
                            
                                    int numCones = int(clamp(directionalSamplingRate / (1.f - cosf(deg2rad(coneAngle * 0.5f))), 4, 128));

                            Comment


                              Originally posted by iniside View Post

                              Hey thanks for answer. IT would be really nice to get it working.
                              Ie. On elemental demo scene, default settings voxelization takes about 8.88ms on GeForce 1080 TI (enabled Diffuse and AO pass). And that scene is mostly static. I gues trade off for much faster voxelization (but with less quality due to less often updates), would be acceptable especially for diffuse and AO.

                              But it is so nice that this tech is still being worked on.
                              The Elemental scene perf appears to be CPU limited just because of its mesh count and the thickness of UE rendering code. I would try to carefully filter the meshes and only voxelize those which matter.

                              Comment


                                I've asked one of our technical artists to try VXAL, and here's what he came up with. Only two area lights with shadows.

                                Click image for larger version

Name:	VxalStatue.jpg
Views:	30
Size:	61.3 KB
ID:	1467271

                                Comment

                                Working...
                                X