Author Topic: Actual lights through caustic glass cannot fill room but environment lights can  (Read 2223 times)

2017-02-10, 12:50:13

somedoggy

  • Active Users
  • **
  • Posts: 10
    • View Profile
Hello! While working on a series of pieces attempting to push realism as far as possible, I have come to realize that caustic materials behave strangely. I've set up a test scenario for this problem.

The setup here is a barebones room/glass setup with the glass intersecting into the room box on all sides, allowing no leaking as far as I understand. The light sources are the Corona Sun and Sky combo, though I have also tried a Corona light which produces the same issue but renders faster. In the leftmost image you can see a typical rendering with caustics disabled on the glass material. As expected the bounce off the ground has provided the majority of illumination to the room.



The right two are the same render but show a clear oddity in how Corona is rendering: no light from the sun has managed to illuminate the room after contacting the floor. Confusingly, the light from the sky environment manages to start illuminating the room immediately. Even rendering with the sky as the only light source produces (slightly) different results when toggling caustics, which makes me believe that the sky also interacts with them. This "lagging" behind of actual light sources vs the sky environment is perplexing.

What can be done about this? I'm currently cheesing the render in my actual scene to get my desired effect, but in the future I have more caustic heavy work planned that would require correct rendering. I greatly appreciate any insights that could be offered into why this happens and what can be done.

This was done in a new scene with 1.5 hotfix 2, in Max 2017. All renderer settings other than MSI and max ray depth are at their defaults.

Thanks for reading!

2017-02-10, 17:18:16
Reply #1

agentdark45

  • Active Users
  • **
  • Posts: 451
    • View Profile
Caustics and corona do not play nicely, at least not without some compositing/separate passes. I would avoid trying to chasing realism to the nth degree and go with a more artistic "it looks right" approach. I'm sure others will be able to chime in on how to setup the caustic passes correctly.
Vray who?

2017-02-11, 08:24:04
Reply #2

Christa Noel

  • Active Users
  • **
  • Posts: 906
  • God bless us everyone
    • View Profile
    • dionch.studio
as far as I remember, light translation through a flat refractive object with caustic enabled is a known problem since long time ago.
but I failed to point which bug report, you can search it again on older bug report threads

2017-02-11, 10:01:31
Reply #3

somedoggy

  • Active Users
  • **
  • Posts: 10
    • View Profile
Caustics and corona do not play nicely, at least not without some compositing/separate passes. I would avoid trying to chasing realism to the nth degree and go with a more artistic "it looks right" approach. I'm sure others will be able to chime in on how to setup the caustic passes correctly.
Thanks for the reply! While it is generally good advice to strive for good art over pure physical accuracy, with these works the intention is to push accuracy.

Before posting I looked some into compositing Bidir/VCM techniques other shave shared as well as general caustic setup techniques. There's nothing really wrong with my setup (hence being a bug report thread). Bidir/VCM is unsuitable for my projects considering its limitations.

I have done more tests and found that the sky only illuminates the room "faster" because of contributing a lot of light over the entire area of the glass. The sky is properly interacting with caustics. In my last test I compared a sun light with a HDR map that has a single bright dot of almost exactly the same size/intensity. I found no difference here.

This reveals the issue is that relatively small lights sources of any kind will not clean up reasonably using caustics (even using only a sun light). Even when allowing it to run for a long enough time that the light pools on the floor, that illumination is not then bounced off the spot despite it clearly being the most important source of indirect illumination.

as far as I remember, light translation through a flat refractive object with caustic enabled is a known problem since long time ago.
but I failed to point which bug report, you can search it again on older bug report threads
It would be great to see this get some much needed attention as it's a hard limit for producing plenty of effects. When writing the OP I looked through pages and pages of search results for "caustic"/"caustics" and you're right that it's a long standing problem. Nearly 300 posts across the forum if you tally it naively. I do appreciate the complexity of the issue though. I hope to see some strides in the future! This is my most wanted improvement.
« Last Edit: 2017-02-11, 10:06:44 by somedoggy »

2017-02-14, 20:40:32
Reply #4

SharpEars

  • Active Users
  • **
  • Posts: 64
    • View Profile
Caustics and corona do not play nicely, at least not without some compositing/separate passes. I would avoid trying to chasing realism to the nth degree and go with a more artistic "it looks right" approach. I'm sure others will be able to chime in on how to setup the caustic passes correctly.
Thanks for the reply! While it is generally good advice to strive for good art over pure physical accuracy, with these works the intention is to push accuracy.

Before posting I looked some into compositing Bidir/VCM techniques other shave shared as well as general caustic setup techniques. There's nothing really wrong with my setup (hence being a bug report thread). Bidir/VCM is unsuitable for my projects considering its limitations.

I have done more tests and found that the sky only illuminates the room "faster" because of contributing a lot of light over the entire area of the glass. The sky is properly interacting with caustics. In my last test I compared a sun light with a HDR map that has a single bright dot of almost exactly the same size/intensity. I found no difference here.

This reveals the issue is that relatively small lights sources of any kind will not clean up reasonably using caustics (even using only a sun light). Even when allowing it to run for a long enough time that the light pools on the floor, that illumination is not then bounced off the spot despite it clearly being the most important source of indirect illumination.

as far as I remember, light translation through a flat refractive object with caustic enabled is a known problem since long time ago.
but I failed to point which bug report, you can search it again on older bug report threads
It would be great to see this get some much needed attention as it's a hard limit for producing plenty of effects. When writing the OP I looked through pages and pages of search results for "caustic"/"caustics" and you're right that it's a long standing problem. Nearly 300 posts across the forum if you tally it naively. I do appreciate the complexity of the issue though. I hope to see some strides in the future! This is my most wanted improvement.

+1 for more accurate and noise-free caustics.

2017-02-27, 21:51:52
Reply #5

Ondra

  • Administrator
  • Active Users
  • *****
  • Posts: 8886
  • Turning coffee to features since 2009
    • View Profile
yep, this is caustics problem. we are aware that corona cannot render them efficiently now. We would love to change that, but this is one of the most complex problems in computer graphics now.
Rendering is magic.
Private scene uploader | How to get minidumps for crashed/frozen 3ds Max | Sorry for short replies, brief responses = more time to develop Corona ;)

2019-06-15, 00:57:23
Reply #6

Bigguns

  • Active Users
  • **
  • Posts: 114
    • View Profile
Metropolis light transport those caustic correctly even in this setup if I recall well. Like in maxwell it works well, is it MLT maxwell ?

2019-06-18, 12:31:57
Reply #7

maru

  • Corona Team
  • Active Users
  • ****
  • Posts: 8783
  • Marcin
    • View Profile
Metropolis light transport those caustic correctly even in this setup if I recall well. Like in maxwell it works well, is it MLT maxwell ?
We use MLT in our caustics as well. If you have some (other) examples where it performs better in other renderers than in Corona, please share them. Thanks!

Yesterday at 03:45:31
Reply #8

Christa Noel

  • Active Users
  • **
  • Posts: 906
  • God bless us everyone
    • View Profile
    • dionch.studio