Announcement

Collapse
No announcement yet.

Global Illumination alternatives

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

    Originally posted by Bladerskb View Post
    This is the same location but slightly different Time of Day.
    Its truly amazing when you compare them.
    Keep up the amazing job Daniel.

    [ATTACH=CONFIG]20711[/ATTACH]


    Where did you get this map shown in many Epic twitch LiveStreams but never released in Marketplace?

    Comment


      This is a test map that is used for Fortnite.
      Tim Hobson | Learning Resources | Epic Games
      UE4 Documentation

      Comment


        That's from their upcoming Fortnite game

        Comment


          Originally posted by Chariots
          I'm going to be that guy today and post a commit I saw on github here



          Source

          Can't wait to get it running for testing
          Time to install GitHub client again, thanks for posting!
          SuperGrid: Marketplace Page | Feedback Thread | Demo | Website
          Level design and prototyping for newbies

          Comment


            The first version I made was placing Virtual Point Lights by ray tracing through the distance field scene. The result was unstable placement, no diffuse color, but a very small number of resulting VPLs to do lighting with so it was fast. It was ~6ms in a Fortnite level on an AMD 6870.

            This version is working toward something more general purpose. Surfels (oriented disks) are generated to represent meshes, including diffuse color. They are treated as VPLs in order to transfer their lighting to pixels on the screen. This version is much slower because the number of VPLs needed is based on the surface area of the scene, instead of the projected area of the light. However it sets the framework for diffuse GI from multiple light sources and even multi-bounce GI, whereas the previous version could only do single bounce. This one is ~17ms in a Fortnite level on AMD 6870. The main optimization missing is creating a hierarchy of Surfels, and only lighting from the top of the hierarchy if that Surfel is far away.

            There are still a lot of problems to solve - improving bounce distance, over-occlusion indoors, some leaking, point and spot lights, overall performance, etc.

            Comment


              Originally posted by DanielW View Post
              The first version I made was placing Virtual Point Lights by ray tracing through the distance field scene. The result was unstable placement, no diffuse color, but a very small number of resulting VPLs to do lighting with so it was fast. It was ~6ms in a Fortnite level on an AMD 6870.

              This version is working toward something more general purpose. Surfels (oriented disks) are generated to represent meshes, including diffuse color. They are treated as VPLs in order to transfer their lighting to pixels on the screen. This version is much slower because the number of VPLs needed is based on the surface area of the scene, instead of the projected area of the light. However it sets the framework for diffuse GI from multiple light sources and even multi-bounce GI, whereas the previous version could only do single bounce. This one is ~17ms in a Fortnite level on AMD 6870. The main optimization missing is creating a hierarchy of Surfels, and only lighting from the top of the hierarchy if that Surfel is far away.

              There are still a lot of problems to solve - improving bounce distance, over-occlusion indoors, some leaking, point and spot lights, overall performance, etc.
              17ms is pretty good considering its running on a 5 year old card(AMD 6870) and its not even optimized yet! Keep up the great work!

              Could someone post some result of this new implementation?
              Last edited by SonKim; 02-01-2015, 04:49 AM.
              TOUR of DUTY

              Comment


                Wow man, looking good so far!
                Check out UNREAL 4 Lighting Academy
                https://forums.unrealengine.com/show...ng-like-that-)

                Comment


                  I tried it on SunTemple demo. Idk about performance, since I don't know at which stat group to look for GI rendering time, but
                  what I really like, is that this technique also considers indirect shadowing from directional light. Which is not that obvious in most other attempts at GI.


                  Also. It doesn't seem to affect metallic surfaces right now. In anycase great work! It is already farrrrrr better than any volume technique (cough lpv, cough). I could literally light entire SunTemple demo with skylight intensity set at 0.
                  https://github.com/iniside/ActionRPGGame - Action RPG Starter kit. Work in Progress. You can use it in whatever way you wish.

                  Comment


                    Impressive results, I have to say! If that is only the start (as you said, Daniel) - it's amazing - the quality really improved.

                    I wish you good luck developing it and thank you for your efforts!

                    Kind Regards.

                    Comment


                      Originally posted by iniside View Post
                      I tried it on SunTemple demo. Idk about performance, since I don't know at which stat group to look for GI rendering time, but
                      what I really like, is that this technique also considers indirect shadowing from directional light. Which is not that obvious in most other attempts at GI.


                      Also. It doesn't seem to affect metallic surfaces right now. In anycase great work! It is already farrrrrr better than any volume technique (cough lpv, cough). I could literally light entire SunTemple demo with skylight intensity set at 0.
                      Before/After Pics or....

                      Comment


                        Nice update! Looking forward to seeing more!

                        Comment


                          Originally posted by Chariots
                          Surfel GI
                          LPV
                          No GI

                          Surfel GI 2
                          LPV 2
                          No GI 2

                          It does have a noise issue, especially apparent on bright surfaces with a moving camera. Also if you use white boxes, it kinda breaks the GI illusion as you can see where the lights are placed, but that isn't really an issue with a real scene. On meshes with lots of colors, there are color fighting issues, distance field res doesn't seem to have any affect on it. On moving meshes, it seems a bit jarring as the bounced light color changes instantly as the mesh moves.

                          I'd say its a terrific start. Compared to LPV it has higher visual impact on the scene as it transfers colors better, doesn't wash them down or cause crazy fresnel issues.

                          thanks for the screenshot! I agree they do look better than LPV.
                          TOUR of DUTY

                          Comment


                            Glad to see someone trying it out =) So far it has just been me in a test level so it's kindof surprising to see it work with arbitrary content. One warning though - there is a known crash that will happen if you move meshes around enough with this on.

                            One thing I'm wondering, if you change the color of a mesh via material instance, it doesn't update the GI color until you move it. Is that intentional?
                            Support for material changes is in the design, I just haven't gotten to it yet.

                            Also, a bit off topic, but I can't seem to get instanced meshes (normal and procedural foliage) to cast ray traced distance field shadows. It seems there's support for instanced meshes to affect distance field lighting, but no setting for casting shadows. Are there any plans for that?
                            Instanced meshes are fully supported by all distance field lighting methods (AO, GI, shadows) in latest. For foliage you have to go into the instance settings and enable bAffectDistanceFieldLighting. It's off by default because stuff like grass and bushes with high instance counts can really destroy performance.

                            Edit: Tried it a bit more. It doesn't work well on my project because of my heavy dependence on landscapes. While the GI does affect the landscape, it doesn't get affected by the landscape.
                            I am working on landscape GI at this very moment =) My goal is to combine surfel GI with heightfield GI to get a dynamic GI solution for outdoors. It has to be a separate implementation because surfels don't scale up to huge surface area that well, and terrains need to be represented by heightfields instead of distance fields, so a different ray tracing kernel is needed.

                            If the scene is built with distance fields in mind (only uniform scaling
                            One note - you can actually do non-uniform scaling (squishing) as long as you only squish by say a factor of 2 difference between dimensions. I was a bit over-strict when I wrote the doc, in practice the lighting looks fine with only limited non-uniform scaling.

                            Compared to LPV here's how I see Distance Field GI:
                            + Vastly higher quality indirect shadowing - leaking is actually solvable
                            + More detail in color bleeding - material is evaluated per surfel (disk) isntead of for a huge voxel
                            + Much higher view distance, not limited by volume texture scaling
                            - Only single bounce for now (can be improved)
                            - Have to be able to represent your scene with distance fields / heightfields

                            Also. It doesn't seem to affect metallic surfaces right now
                            Yeah I haven't done anything for indirect specular yet, and metal is fully specular. I will keep thinking about this. The problem is that one of the expensive steps (irradiance cache interpolation) is already heavy with just interpolating float3 Irradiance, if I try to store directionality which is needed for specular it will get a lot slower. Will probably have to bite the bullet on that anyway.

                            Comment


                              I haven't dabbled in distance fields / heightfields yet, so could someone enlighten me on what it means for a level be be representable with distance fields / heightfields?

                              Comment


                                Hi DamirH,

                                You can take a look at the Distance Field documentaiton here:

                                Ray Traced Soft Shadows: https://docs.unrealengine.com/latest...ing/index.html

                                Ambient Occlusion: https://docs.unrealengine.com/latest...ion/index.html

                                Once you've enabled this feature via the Project Settings > Rendering > Generate Distance Fields, and restarted the editor you can enable you Movable Skylight and Dynamic light to cast shadows independent of cascaded shadow maps.

                                If you take a look at this image you will see what distance fields are. These are visual representations of your mesh. If you see any quality issues or anything that does not look correct with the shadows you can adjust the Distance Field Resolution scale by opening the static mesh editor > Build settings > and adjusting the distance field resolution.

                                Click image for larger version

Name:	VisualizeMeshDistanceFields.jpg
Views:	1
Size:	103.8 KB
ID:	1065910

                                Distance fields are a great feature that's being added to continually and is a great solution for shadow quality and distances compared to what Cascaded Shadows can provide.

                                If you're confused or need help setting up or getting particular results, feel free to post in the Rendering section of the Forums or AnswerHub and I'll gladly help you set up anything you're having issues with.
                                Tim Hobson | Learning Resources | Epic Games
                                UE4 Documentation

                                Comment

                                Working...
                                X