Announcement

Collapse
No announcement yet.

Enable IBL from Reflection Capture Sphere/Box (Multiple local IBL).

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

    [FEATURE REQUEST] Enable IBL from Reflection Capture Sphere/Box (Multiple local IBL).


    It's just like Marmoset Skyshop plugin for Unity3D. This techique is also employed by many other next-gen engines like CryEngine, Fox Engine, Snowdrop... etc. It can fake one-bounce GI at a relatively low cost, and can easily update at runtime to implement a "dynamic GI".
    UE4 has already got Reflection Capture Sphere/Box for implementing light probes, there's just only one small step needed to achieve this feature, enabling IBL from all Reflection Capture Sphere/Box(Users can determine whether to enable or not). It may also produce a high quality AO shadow when working with current DFAO, which is missing in other engines, in UE4. So this will be an advantage of UE4's IBL. Although the Lightmass can produce high quality static GI for most games which don't need dynamic GI, but the quality of Multiple Local IBL+AO solution is decent for some open-world games which need dynamic environment lighting, it can be compromise solution for now while VXGI or other real dynamic GI solutions are yet extremly expensive.
    PS: I'd tried Marmoset Skyshop plugin for Unity3D, it's also including sourcecode in it. UE4 team maybe want to go take a look at that.
    Last edited by Awesome_Junior_Miss; 05-23-2015, 01:25 AM.

    #2
    Another quiet weekend.

    Comment


      #3
      No one's interested in this?
      It would be the cheapest full dynamic lighting solution with decent quality, though.
      Look, UE4 already got a skylight IBL, but the problem is it's not able to handle the interior lighting. So the usability of moveable skylight in UE4 is currently somehow limited, only usable for exterior scene majored games. If multiple local IBL would be added in UE4, then we don't have to bake lightmap for most games. Just like CryEngine did in "Crysis3","RYSE".

      Click image for larger version

Name:	probes.jpg
Views:	1
Size:	775.6 KB
ID:	1078898

      The Environment Probe in CryEnigne works the same way as Moveable Skylight in UE4, the only difference is that more than one probe is allowed in a same scene in CryEngine. It's more like a Reflection Capture which could emit IBL in UE4. The level artists can place the probes everywhere when neccessary in order to get correct lighting results in different areas of the scene. So it would work properly with any kind of scenes.
      Last edited by Awesome_Junior_Miss; 05-26-2015, 12:01 PM.

      Comment


        #4
        To answer: Image based diffuse GI isn't very good, there's a lot of errors that creep up because you're just projecting what amounts to a box of 6 flat planes onto a large area, and there's a lot of light leak and incorrect lighting going on as a result. I.E. a column or other object "in the middle" of the box isn't going to contribute to GI in any way because it's in the middle rather than "along the walls" of the box. In fact anything but a solid wall along the flat planes of the "box" are going to look pretty bad when contributing to GI.

        It's also really expensive and limiting to do any image based GI in realtime, only Assassin's Creed Unity and whatever that new one is really even try, and they spend a lot of time on it, and it still ends up with a lot of errors. Considering UE4 has both a prebaked lightmap/cubemap solution already in place, and an actually dynamic GI system under development, there doesn't really seem to be any need for this.

        Comment


          #5
          Originally posted by Frenetic Pony View Post
          To answer: Image based diffuse GI isn't very good, there's a lot of errors that creep up because you're just projecting what amounts to a box of 6 flat planes onto a large area, and there's a lot of light leak and incorrect lighting going on as a result. I.E. a column or other object "in the middle" of the box isn't going to contribute to GI in any way because it's in the middle rather than "along the walls" of the box. In fact anything but a solid wall along the flat planes of the "box" are going to look pretty bad when contributing to GI.

          It's also really expensive and limiting to do any image based GI in realtime, only Assassin's Creed Unity and whatever that new one is really even try, and they spend a lot of time on it, and it still ends up with a lot of errors. Considering UE4 has both a prebaked lightmap/cubemap solution already in place, and an actually dynamic GI system under development, there doesn't really seem to be any need for this.
          Not really, did you really see any light leak in that Marmoset Skyshop tech demo? It's just not a physically correct lighting solution, some corners out of probes bounds would look not so correct, but a good probes placement tactic would somehow fix it, additionaly, combining a good AO solution(UE4's DFAO is really good at working with IBL). Actually you won't get any physically correct lighting solution in game devlopment until the day realtime path tracing comes. Even baking lightmap will get light leak when you have to use very low lightmap resolution for large scenes. For most "real" dynamic GI solutions nowadays, you will suffer even much more light leak results, and other problems such as performance hit, view distance issues, over-time artifact... etc. You know, even CryEngine had abandoned their LPV GI solution which they used to be proud of and went for local IBL to simulating GI I mentioned previously (They entirly used it combining SSDO with color bleeding for GI lighting in "RYSE"). They also recommended users for turning off LPV in new projects.

          PS: This solution is really cheap comparing to other dynamic GI solutions. I'd tried Marmoset Skyshop in Unity3D, I didn't see any performance hit at all running on a very old, low-end graphic card such as AMD HD6700. But for VXGI in UE4, just ony a cornell box scene would drop the framerate down to under 20.
          Last edited by Awesome_Junior_Miss; 05-27-2015, 07:19 AM.

          Comment


            #6
            According to http://blog.selfshadow.com/publicati...c_notes_v2.pdf UE4 already does IBL with reflection captures by pre-filtering them according to their light function.
            Working at the University of Groningen
            UE4 on a huge display
            UE4 VRPN plugin

            Comment


              #7
              Originally posted by Awesome_Junior_Miss View Post
              Not really, did you really see any light leak in that Marmoset Skyshop tech demo? It's just not a physically correct lighting solution, some corners out of probes bounds would look not so correct, but a good probes placement tactic would somehow fix it, additionaly, combining a good AO solution(UE4's DFAO is really good at working with IBL). Actually you won't get any physically correct lighting solution in game devlopment until the day realtime path tracing comes. Even baking lightmap will get light leak when you have to use very low lightmap resolution for large scenes. For most "real" dynamic GI solutions nowadays, you will suffer even much more light leak results, and other problems such as performance hit, view distance issues, over-time artifact... etc. You know, even CryEngine had abandoned their LPV GI solution which they used to be proud of and went for local IBL to simulating GI I mentioned previously (They entirly used it combining SSDO with color bleeding for GI lighting in "RYSE"). They also recommended users for turning off LPV in new projects.

              PS: This solution is really cheap comparing to other dynamic GI solutions. I'd tried Marmoset Skyshop in Unity3D, I didn't see any performance hit at all running on a very old, low-end graphic card such as AMD HD6700. But for VXGI in UE4, just ony a cornell box scene would drop the framerate down to under 20.
              "Light leak" as in light going through objects. So, when those columns, like I mentioned, don't show up in the reflection, that's light leak.

              Comment


                #8
                Originally posted by Frenetic Pony View Post
                "Light leak" as in light going through objects. So, when those columns, like I mentioned, don't show up in the reflection, that's light leak.
                Indeed, but if it looks overall decent, that will be enough. However, for static lighting solution, all dynamic objects are also "light-leaked", they don't cast indirect soft shadows and they don't even bounce GI to the scene, . But in most cases, it looks good, we don't(can't) need physically correct lighting in games at the moment.

                Comment


                  #9
                  Originally posted by Pjotr View Post
                  According to http://blog.selfshadow.com/publicati...c_notes_v2.pdf UE4 already does IBL with reflection captures by pre-filtering them according to their light function.
                  Yes, UE4 already got IBL. But what I meant was that UE4 doesn't allow more than one IBL source in the same scene, that's a pity.

                  Comment


                    #10
                    Yes you can have more than one reflection capture probe in your scene, you can even set up the area of effect. For each pixel UE4 will then look for which reflection capture probe it's inside, if there are more than one it will take the closest one.
                    Working at the University of Groningen
                    UE4 on a huge display
                    UE4 VRPN plugin

                    Comment


                      #11
                      Originally posted by Awesome_Junior_Miss View Post
                      Not really, did you really see any light leak in that Marmoset Skyshop tech demo? It's just not a physically correct lighting solution, some corners out of probes bounds would look not so correct, but a good probes placement tactic would somehow fix it, additionaly, combining a good AO solution(UE4's DFAO is really good at working with IBL). Actually you won't get any physically correct lighting solution in game devlopment until the day realtime path tracing comes. Even baking lightmap will get light leak when you have to use very low lightmap resolution for large scenes. For most "real" dynamic GI solutions nowadays, you will suffer even much more light leak results, and other problems such as performance hit, view distance issues, over-time artifact... etc. You know, even CryEngine had abandoned their LPV GI solution which they used to be proud of and went for local IBL to simulating GI I mentioned previously (They entirly used it combining SSDO with color bleeding for GI lighting in "RYSE"). They also recommended users for turning off LPV in new projects.

                      PS: This solution is really cheap comparing to other dynamic GI solutions. I'd tried Marmoset Skyshop in Unity3D, I didn't see any performance hit at all running on a very old, low-end graphic card such as AMD HD6700. But for VXGI in UE4, just ony a cornell box scene would drop the framerate down to under 20.
                      Well if you go in the video to the 1:44 you will see that awesome reflection in the ground of a non exist windows. (Windows in the other side of the wall)
                      Hevedy - Instance Tools: https://hevedy.itch.io/hevedyinstances
                      Hevedy - Image Tools: https://hevedy.itch.io/imagetools

                      Comment


                        #12
                        Originally posted by Hevedy View Post
                        Well if you go in the video to the 1:44 you will see that awesome reflection in the ground of a non exist windows. (Windows in the other side of the wall)
                        It's a normal problem for any cubemap based reflection when cubemap is not well aligned. However, don't forget we have Screen Space Reflection in UE4.
                        Last edited by Awesome_Junior_Miss; 05-27-2015, 08:36 AM.

                        Comment


                          #13
                          Originally posted by Pjotr View Post
                          Yes you can have more than one reflection capture probe in your scene, you can even set up the area of effect. For each pixel UE4 will then look for which reflection capture probe it's inside, if there are more than one it will take the closest one.
                          But the only problem is the Reflection Capture doesn't emit diffuse IBL in UE4. I believe UE4 dev team can easily implement this, or maybe they'd already implemented it at tech prototype stage, then they cut it before integrating the engine, thinking diffuse IBL emited from Reflection Capture is not necessary when working with lightmass solution. If they could provide an option to turn on/off this feature, that would be appreciated. That's why I posted this topic.
                          Last edited by Awesome_Junior_Miss; 05-27-2015, 01:21 PM.

                          Comment


                            #14
                            Originally posted by Awesome_Junior_Miss View Post
                            But the only problem is the Reflection Capture doesn't emit diffuse IBL in UE4. I believe UE4 dev team can easily implement this, or maybe they'd already implemented it at tech prototype stage, then they cut it before integrating the engine, thinking diffuse IBL emited from Reflection Capture is not necessary when working with lightmass solution. If they could provide an option to turn on/off this feature, that would be appreciated. That's why I posted this topic.
                            Again, there's already a separate diffuse pre-baked lighting solution that works, and IBL diffuse does not look good. It's not a good solution for large open world games with dynamic night/day cycles as it costs too much to recalculate the lighting all the time. So there's no particular reason for it to exist. What, precisely, does IBL diffuse do that UE4 does not/does not plan to that you want so much?
                            Last edited by Frenetic Pony; 05-27-2015, 09:57 PM.

                            Comment


                              #15
                              Originally posted by Frenetic Pony View Post
                              Again, there's already a separate diffuse pre-baked lighting solution that works, and IBL diffuse does not look good, and is expensive to recalculate in realtime. So there's no particular reason for it to exist. What, precisely, does IBL diffuse do that UE4 does not/does not plan to that you want so much?
                              Actually, we don't have to update probes at every frame in most cases. And I never think it look as good as baked GI, but it looks DECENT overall.

                              PS: It's NOT ME want it so much, I just think it's a popular feature which many mainstream next-gen engines have. Also, it's relatively easy to implement than other GI techniques. It would add more flexiability to UE4, users would have more options when deciding to choose final lighting solution. It also works perfectly with moveable skylight workflow in UE4, otherwise I can't see a reason to use moveable skylight for non-exterior-only scenes in UE4. And, it brings more efficient iteration to devlopment cycle, since no baking time is required. If the result doesn't look good enough(In fact, many next-gen AAA titles already used it as final lighting), users can switch to static GI lighting solution whenever necessary.
                              Last edited by Awesome_Junior_Miss; 05-27-2015, 10:34 PM.

                              Comment

                              Working...
                              X