Announcement

Collapse
No announcement yet.

Performance Optimization for Dynamic Lighting (+ 30 to 60% FPS!)

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

    [RELEASED] Performance Optimization for Dynamic Lighting (+ 30 to 60% FPS!)

    Hello Everyone,

    We have just released our first plugin on the Marketplace, a dynamic lighting performance optimizer tool.

    When working on our game, we noticed that Unreal Engine was doing a good job at culling meshes, but for lights, not so much.

    So we created our own solution, based on a portal system. It allows you to get + 30 to 60% FPS in your indoor levels using dynamic lighting, without any loss in terms of visual quality!

    You can have a look here:

    https://www.unrealengine.com/marketp...rmance-booster

    edit :
    V1.1 of the plugin has been released. The new update include all the advanced features you have been asking for!

    1) Added a way to exclude light components from system with "ExcludeFromPortalSystem" tag

    2) Added a way to rebuild system at runtime to support procedural levels

    3) Added a way to notify the system a light has moved (support for movable lights)

    4) Added a way to add new lights to the system during runtime

    5) Added the possibility to extend portal system from blueprints

    6) Support for UE 4.17

    We will release more performance optimization tools for Unreal Engine will follow if you like it
    Last edited by Dream Powered; 02-14-2018, 02:27 PM.

    #2
    Sounds promising, but the link goes to a 404

    Comment


      #3
      You can find it searching the MP thou.
      Nilson Lima
      Technical Director @ Rigel Studios Ltda - twitter: @RigelStudios
      Art is a state of Spirit

      Join us at Discord:
      https://discord.gg/uFFSEXY
      UE4 Marketplace:
      Cloudscape Seasons

      Comment


        #4
        Looking very cool. Is it possible to use the HZB visibility check portal for also other purposes than lights? So that the volume have connectable events when player sees the volume and when not. Would use it to launch custom events to e.g. spawn AI life or enable tick in wanted blueprints (windmill only spin when player sees it).

        Comment


          #5
          Originally posted by SaOk View Post
          Looking very cool. Is it possible to use the HZB visibility check portal for also other purposes than lights? So that the volume have connectable events when player sees the volume and when not. Would use it to launch custom events to e.g. spawn AI life or enable tick in wanted blueprints (windmill only spin when player sees it).
          It can be extended from c++ easily. We achieve exactly what you ask ( we disable the tick on some elements based on this ) in our own game ( you need to override 1 method when system is gathering/building data and store it in the zones, and 1 when zone visibility change )

          Comment


            #6
            how would this work for multiplayer? Does it cull the lights for you or turn them off for every player?

            Comment


              #7
              Does it work only with dynamic light sources or with stationary too?

              Comment


                #8
                Originally posted by kurylo3d View Post
                how would this work for multiplayer? Does it cull the lights for you or turn them off for every player?
                officially we dont support multiplayer, but the tool is clearly client side, if the light isn't replicated it will keep the changes only on clients, and it's based on the renderer which is also on the client side. I would say " it should work or with minimal changes" but i can try to give a check next week

                Originally posted by RGDS View Post
                Does it work only with dynamic light sources or with stationary too?
                The performance gain with stationary lights if you use static lighting, and your stationary light only affect dynamic objects at runtime will be much much lower as it cast less complex shadows at runtime. And real time shadowing is the biggest performance problem.

                If you don't use static lighting however (like us), the performance gain will be the same as for dynamic lights.
                Last edited by Dream Powered; 02-10-2018, 09:03 AM.

                Comment


                  #9
                  Originally posted by Dream Powered View Post

                  It can be extended from c++ easily. We achieve exactly what you ask ( we disable the tick on some elements based on this ) in our own game ( you need to override 1 method when system is gathering/building data and store it in the zones, and 1 when zone visibility change )
                  Sounds great. But would need to edit c++ code? Having blueprint Project only. If you add blueprint support (having HZB check with events when volume is seen and no longer seen), I would be very interested to buy it.

                  Comment


                    #10
                    Originally posted by SaOk View Post

                    Sounds great. But would need to edit c++ code? Having blueprint Project only. If you add blueprint support (having HZB check with events when volume is seen and no longer seen), I would be very interested to buy it.
                    For now, yes, you would need to edit the C++ code. I will have a look as soon as possible (probably during the week) to see if it's possible to add blueprint modding support!

                    Comment


                      #11
                      Good news!

                      The V1.1 of the plugin has been submitted to Epic Games. The new update includes all the advanced features you have been asking for!
                      1. Added a way to exclude light components from system with "ExcludeFromPortalSystem" tag
                      2. Added a way to rebuild system at runtime to support procedural levels
                      3. Added a way to notify the system a light has moved
                      4. Added a way to add new lights to the system during runtime
                      5. Added the possibility to extend portal system from blueprints
                      Anything else you would need?

                      Comment


                        #12
                        Thank you for adding the blueprint support. Will be in heavy use.

                        Comment


                          #13
                          Btw, mobile has no HZB, so this project won't work on mobile. You'd have to use precomputed visibility data for culling. Do you think you can add this functionality to your project to support mobile and mobile VR ?

                          Comment


                            #14
                            Originally posted by SaOk View Post
                            Thank you for adding the blueprint support. Will be in heavy use.
                            You're welcome. If you have any questions when you will implement it in your project, feel free to ask here!

                            Originally posted by motorsep View Post
                            Btw, mobile has no HZB, so this project won't work on mobile. You'd have to use precomputed visibility data for culling. Do you think you can add this functionality to your project to support mobile and mobile VR ?
                            If you have precomputed visibility volume already setup, the plugin should work fine ! ( but we havn't tested it on mobile yet )

                            Comment


                              #15
                              Originally posted by Dream Powered View Post
                              If you have precomputed visibility volume already setup, the plugin should work fine ! ( but we havn't tested it on mobile yet )
                              Just to make sure we are on the same page, I am talking about this: http://timhobsonue4.snappages.com/cu...bility-volumes (they are generated on build, not manually placed)

                              Comment

                              Working...
                              X