No announcement yet.

Realtime Dynamic GI + Reflections + AO + Emissive plugin - AHR

  • Filter
  • Time
  • Show
Clear All
new posts

    Realtime Dynamic GI + Reflections + AO + Emissive plugin - AHR

    UPDATE 2 : I got hired to finish developing this exclusively for a client, so I won't be updating the repo on github. It's still there, but if you want to do something with it, please contact me first. Thank you all

    Clarifications: Due to limitations both on time and the plugin interface of UE, this is NOT a plugin, but a modification of the engine source
    Public release here, but first watch this video.
    Also, jump straight to page 10, that's where the fun starts
    You'll need to be loged in github to download, with your account that's linked to your unreal engine account
    Test Scene here :!58Qw3T7R!xGApDeqSp1FWP7Wfh2aLPQ
    Old stuff follows

    Hy everyone.
    I have been developing a technique, called Approximate Hybrid Raytracing (AHR), to render global illumination, reflections, and AO for fully dynamic scenes, approximating the scene with a voxel grid and then raytracing.
    I aim mid-range hardware, for example, my FX-6300 and GTX 750 Ti runs the sample demo at 60 FPS for the lowest quality preset and around 27 FPS for a reasonably high quality preset.
    I decided to write a plugin for UE4 that integrates AHR into the editor, considering Epic dropped support for dynamic GI, and LPVs doesn’t produce high quality results.

    For now, I just have an old video (I say it again. OLD video. It runs about 60% - 70% faster now) and a few screenshots of AHR inside UE4.

    AHR features include:
    • Scalable quality
    • Fully dynamic scenes
    • 1 bounce indirect illumination
    • 1 bounce reflections
    • Flexible material model
    • “Free” (no performance hit over standard GI, just reuses samples) AO
    • Unlimited emissive materials with soft shadows

    I’ll be updating this with screenshots and demos over this week, and then two weeks later (starting October 6) I’ll start to update this thread every day.
    Attached Files
    Last edited by RyanTorant; 07-07-2017, 09:39 AM.

    Sweet! Good to see someone working on a dynamic GI solution instead of asking for it for a change.
    Can you post comparison screenshots for lowest and highest quality presets please?
    FREE Lightshow
    FREE VR Drum Kit Project

    FREE Color LUT Collection
    FREE Physics Driven Spacecraft Project
    FREE GTA Style Vehicle Interaction
    Dynamic DoF(Depth of Field)
    Camera Crossfade


      I'm most impressed by the "free" AO, since AO is something that usually comes at a high performance cost. This scene is lit by a single dynamic light, right? Do you have plans to make future updates using an HDR for lighting? I'm definitely watching this thread! Good job, man.


        This looks pretty amazing - does it run on all platforms?



          What about more diffuse bounces ? 1 bounce doesn't really cut, but two bounes would be awesome, and three bounces would just amazing.

          Anyway, I say, there is job waiting for you in Epic.
          Last edited by iniside; 09-24-2014, 04:12 AM.
 - Action RPG Starter kit. Work in Progress. You can use it in whatever way you wish.


            I was the test case for running his AHR demo on the NVidia Titan and AMD Radeon A9 290X, and all I can say is very good job, and its going to be awesome in UE4.
            FluidSurface Plugin:
            TextureMovie Plugin:


              Honestly just sounds like voxel cone tracing without the cones:

              That's the original paper. Lot of advancements since then, will finally be coming out in a games soon, The Tomorrow Children, though that's only an approximate, and I highly suspect Deep Down as well. Both PS4 exclusives, as unfortunately the XBO's bandwidth to ram is quite low except for its fast 32mbs of Esram. Still, it might be possible to do it there too. Regardless, take a look, as this produces much more temporally stable results and with the automatic filtering lets you do rough specular for cheaper rather than progressively more expensive.


                this looks awesome, keep up the good work.

                only one question,
                what are your plans for the plugin? to be released at all? free or commercial? beta releases or only to be released on a 'final' state?
                Follow me on Twitter!
                Developer of Elium - Prison Escape
                Local Image-Based Lighting for UE4


                  Very nice. I always wanted Dynamic GI in UE4 and this is great news for me.

                  Originally posted by Chosker View Post
                  what are your plans for the plugin? to be released at all? free or commercial? beta releases or only to be released on a 'final' state?
                  I'd also like to know about this.

                  One doubt. IIRC, Epic once said that making plugins for the rendering system is not possible. So how did you manage to pull this off? Is this really a plugin or an enhancement made directly in Engine?
                  Support my RTS Game (Agora) on Patreon!
                  Unreal Nexus - Create Share and Experience!
                  Unreal Engine 4 World-Wide User Map

                  [PLUGIN] Aws Gamelift Client Plugin
                  [TOOL] Create your own binary release of UE4 from GitHub source
                  My UE4 Tutorials and Misc Tools

                  Lead Programmer at YetiTech Studios
                  Your Friendly Neighborhood
                  Satheesh PV (a.k.a RyanJon2040) | Twitter, Instagram, Facebook, LinkedIn, YouTube, Google+


                    That looks really great! Epic, it's time to hire this guy before anyone else steals him.


                      Reflections are a big deal! I'd say they're more important than GI ! Can't wait to see how this develops! How does it perform when scaling to larger scenes?


                        Originally posted by Spade View Post
                        Reflections are a big deal! I'd say they're more important than GI ! Can't wait to see how this develops! How does it perform when scaling to larger scenes?
                        Nah, we have good deal of solutions for reflections, but none for multibounce diffuse lighting.
                        In anycase it's part of the same solution, only difference is accuracy of reflections.
               - Action RPG Starter kit. Work in Progress. You can use it in whatever way you wish.


                          Well, that escalated quickly!
                          To answer the questions:
                          • The plugin will be FREE when I release it
                          • I'm still unsure about beta releases. Will see as I go
                          • Still haven't started to code the plugin. That screen was taken modifing the source directly
                          • Multiple bounces are easly supported ( is quite like a raytracer ), the problem is performance. I'm still unsure how will it scale
                          • Raytracing complexity is independet from scene complexity, but voxelization is not. The voxel resolution suffers on large scenes. I have a few ideas to solve that though
                          • AO is free cause I reuse the samples that I took to compute the diffuse bounce
                          • I code in DirectX 11, have never tried OpenGL. PS4 and XBOX One should be able to run it, but don't have them to try . My system is similar in specs though (GTX 750 Ti + FX-6300), and it runs quite nicely
                          • In my demo I use just one direct light, but you can use a relatively small number of them
                          • Raytracing is done using HDR (sadly I never had the time to implement correct tone-mapping on my demo, so it get's out to the screen), but the voxel data is not, as it is limited to a total of 24 bits for the color

                          About there quality presets, there are a lot of parameters to tweak, such as ray lenght, number of rays, voxel resolution, samples displacement, etc. Here I put some presets

                          4 rays, 16 samples per ray

                          4 rays, 32 samples per ray

                          8 rays, 32 samples per ray

                          16 rays, 32 samples per ray

                          32 rays, 45 samples per ray

                          Well, that's it for today I think, but ask any other question you might have, if I don't answer it today, tomorrow will update the thread
                          Last edited by RyanTorant; 09-24-2014, 08:21 PM.


                            This is looking fantastic great work here
                            Twitter | | View Caffeine On IndieDB


                              So if you are coding in DX11 chances are no Mac/Mobiles etc? (various OpenGL's)?