What happened to physically accurate lighting in Unreal?

So we’ve all seen them; those tech demos showcasing mind-blowing caustics being demonstrated in real time in 4.25 or 4.26. I’d never tried to reproduce it until today, where we’ve discovered that it really doesn’t work out the box in 5.6.1. Below is a list of what I’ve already tried.

I realise those demos were part of a seperate package available for UE at the time, and I also find it interesting that there’s almost nothing online about this since 4.26. This vacuum of information makes me conclude that it is a feature which never actually shipped in Unreal and was just a tech demo thing for 4.25/26.

  • Turning Lumen off in GI and reflections, either for none or screen space
  • Path-tracing (obviously)
  • Software RT, Hardware RT, Support Shadows etc etc in all combinations in both Proj Settings and Post Process
  • I’m using a fully barned off rect light (as per the tech demos) at moderate intensity, pointing towards a prism materialled in a basic glass.
  • I’ve tried various indexes and MF’s on the glass, though it’s doubtful this is how they originally achieved it in the tech demos.

Please somebody tell me I’m wrong and that this is a case of it being super simple :sweat_smile: and if so, I’d really appreciate if you can point me towards a solution I must’ve missed.

Edit: I just found this video series online, which essentially nails the coffin shut on this. Posting here in case it helps anyone else. TLDR: This feature never shipped with UE. TBH it’d be awesome if those tech demos made it clearer that it was never a baked-in UE function. It’s a pity, but I understand why as for most use cases it’d be overkill 99% of the time. https://www.youtube.com/watch?v=02SamfBFJCo

you mean this article?

well… photon mapping is still kinda very expensive and i don’t think it meshes well with current game ready implementations. megalights is still a work in progress when it comes to translucent surfaces. using raytraced shadows and raytraced translucency you can get a fake “caustic” effect from the shadows. refraction of light/shadow vectors and dispersion is a whole ‘nother level. you can’t do this backwards.

1 Like

So, NVIDIA did implement this feature in their custom branch, which I tested and documented a few years ago. They’re still working on and updating it, although I don’t know if the caustics branch is a seperate thing anymore.

I tested and tried it out a lot, and I 100% support Epic’s decision to not implement it into the main engine. it was an enormous pain to use, even with some of the tech artist blueprints I was pointed to.

Real-time photon mapping is an awesome and very capable technique, and I look forward to seeing some indie game do amazing things with it But for a general implementation, it required so much manual tuning to achieve results that performed, that it was just too much work. You had to tag lights to cast caustics, tag meshes to receive them, and do a ton of manual tuning to make it run.

When doing the physically accurate thing is more dev work than the hack, then people will use the hack.

And as @glitchered pointed out, Megalights is currently Epic’s halo lighting solution and it’s not even trying to tackle caustics. Sampling caustics is a deep and hard computer graphics problem, and the sort of general solution you’d need to make it practical in real-time, isn’t even on Epic’s to-do list.

exactly. glass rendering is pretty good these days. it does proper refraction now and decent “proxy caustic” shadows if required. gotta use raytraced lamps for that, but it works. color transmission is a wishlist item, still, overall it works for games tho. shiny bling is nice but in a dirty game a good simple glass shadow is good enough.

i don’t do this stuff, but i do understand the fancy archvis render needs tho.

1 Like