Caustics

Hi. I have a question why caustics still not impelmented in UE4?

I saw some demo of 3d realtime caustics

http://jonathan-olson.com/tesserace/tests/3d.html?size=512

http://madebyevan.com/webgl-water/

Because they are expensive, very situational, often have quality issues, but can also very easily be faked.

“they are expensive” - from where such conclustion? I read that ostensibly they “expensive” , but in those demo’s not was freeze or something other,+30fps. And I not say about Dynamic Caustic at all scenarios, only baked as well as static shadows…

They’re not practical in a video game, those examples are extremely specific. Which is why in games when they do need caustics in a situation they will make a solution to fake it some way.
The vast majority of time you just don’t need it.

Ryan Brucks has addressed this topic in depth in this video: Content-Driven Multipass Rendering in UE4 | GDC 2017 | Unreal Engine - YouTube

There are many more performant ways you could adress this, but as the others have mentioned, the results will be fake (not physically based)

Off of the top of my head

  1. Create a post-process that uses sphere masks in conjunction with some animated world position noise that has been modified to resemble caustics. This will be an expensive but could be an effective solution, it is not particularly scale-able. It might be suited to contained examples like swimming pools, or a cave with a pool in it.
  2. Create a material function that lets you vertex paint animated caustics (possibly a flipbook), and plug that into any materials which will be present near water. Then paint the noise by hand… Or use a combination of angular/height based masking to automatically causticise large areas.
  1. https://www.youtube.com/watch?v=LlkclF6b0Tc
    But in this demo fake caustic? I just far from coding maybe something not understand. But i think this way- if in 3d demo this implemented, why in UE4 can’t?

If I can do something like in this demo will be excelent http://jonathan-olson.com/tesserace/…html?size=512