Author Topic: Realism - Caustics  (Read 8160 times)

2016-11-23, 13:24:24

Rimas

  • Active Users
  • **
  • Posts: 156
  • Please refer all complaints to a brick wall nearby
    • View Profile
Hi, guys!

It's that time of the year when someone somewhere has to b*tch about Corona caustics rendering, and here I am! :D

This topic stems from the fact that I have to create a set of indoor house CGIs for a wealthy client who will also have an indoor pool in his basement. And, to no surprise, I ran into big problems trying to make the thing look convincing. But that's a story for another day.

I was wondering what people's thoughts are regarding the lack of caustics in Corona in general? I personally think it takes away a LOT of realism in scenes with metals, glass and reflective materials in general, ESPECIALLY if they're a focus point (I still remember writing stuff near a window as a kid and how the sun would hit my fountain pen's nib and produce beautiful caustic patterns - something that's not possible in Corona without slowing it down to a grind ATM).

I'm attaching a couple of very simple renderings of a scene to illustrate the difference. The setup is the same for both: a "pool" mesh with SOLID water geometry (water geometry that actually does have sides and the bottom, a closed mesh, displaced at the top) and a Corona sunlight. The water material has caustics enabled as does the chrome material of a piece of tube to the right. Nothing fancy. The ONLY thing I changed between the renders is the engine: default PT+Cache vs PPM (Progressive Photon Mapping). I must add that while a lot more realistic - the PPM engine is super slow and never really converges into a noiseless picture, so can't be used for projects as it is.

The difference is crazy, in my opinion. And it bugs me that something like this has been ignored for so long :(
As a photographer who photographs interiors I understand that caustics can actually be irritating (I sometimes have to photoshop weird caustics reflecting on the ceiling caused by spotlights shining down on metal parts of furniture, especially in bathrooms), but it's all there in the real world and should be an option in Corona.

Thoughts?

EDIT: If caustics is not possible without photon mapping in Corona (like Iray and the likes that have caustics enabled at all times pretty much) - maybe an option would be to add an option to pre-calculate a photon pass for caustics, similar to how Redshift/Mental Ray/VRay do it? I could live with that, as long as it can eventually be used to generate sharp, detailed caustics.
« Last Edit: 2016-11-23, 13:59:27 by Rimas »
A morning of awkwardness is far better than a night of loneliness...

2016-11-23, 14:00:16
Reply #1

FrostKiwi

  • Active Users
  • **
  • Posts: 686
    • View Profile
    • YouTube
I'm pretty sure it's your fault :P
Reflective caustics are a part of the progressive engine and cannot be turned off. All metals do the same caustic reflection, like in PPM.

You propably have MSI on default, which clamps both refractive and reflective caustics. Turn MSI to >100.

Refer to this post, half way through it also shows how MSI kills reflective caustics.

edit: As for the Pool, you can let it crunch a very long time to get caustics, but the faster way is this great workflow shown by a user.
« Last Edit: 2016-11-23, 14:07:59 by SairesArt »
I'm 🐥 not 🥝, pls don't eat me ( ;  ;   )

2016-11-23, 14:15:33
Reply #2

cecofuli

  • Active Users
  • **
  • Posts: 1577
    • View Profile
    • www.francescolegrenzi.com
I agree with you that Corona needs a good refractive caustics tool in Progressive mode.
In the 1.6 will not planned. Maybe in the next release? I hope.

2016-11-23, 14:35:19
Reply #3

Rimas

  • Active Users
  • **
  • Posts: 156
  • Please refer all complaints to a brick wall nearby
    • View Profile
I'm pretty sure it's your fault :P
Reflective caustics are a part of the progressive engine and cannot be turned off. All metals do the same caustic reflection, like in PPM.

You propably have MSI on default, which clamps both refractive and reflective caustics. Turn MSI to >100.

Refer to this post, half way through it also shows how MSI kills reflective caustics.

edit: As for the Pool, you can let it crunch a very long time to get caustics, but the faster way is this great workflow shown by a user.

Thanks for that, forgot about the MSI. But Please bear in mind that the default settings are "tuned to work in most situations". And if that's the case - then why are my caustics gone? I'll try later with a high MSI or MSI 0, but I bet that will introduce another known issue tied to a high MSI value - fireflies...

As for the "workflow" for water caustics - I've seen it. But it will be painfully slow for my interior situation and it's a fudge that gets complicated by the fact that I'm rendering for VR here. We really need the real deal...
A morning of awkwardness is far better than a night of loneliness...

2016-11-23, 16:56:42
Reply #4

agentdark45

  • Active Users
  • **
  • Posts: 577
    • View Profile
I have no idea if this would work, but could you do a "render selected objects" on the pool mesh+sides using the PPM engine and then composite that over the regular PT+Cache render?

That way you leverage the speed and benefits of both render methods.
Vray who?

2016-11-23, 19:09:21
Reply #5

Ondra

  • Administrator
  • Active Users
  • *****
  • Posts: 9048
  • Turning coffee to features since 2009
    • View Profile
I would certainly love to have caustics in corona compute by default, and not slow things down too much... but at the same time we get a TON of requests to do other, more easy stuff that can be published faster, and in the end matters more, so this is just kept at the bottom of the TODO list. Somehow, people nowadays expect that we not only implement renderer, but also scatter, proxy, fix all 3dsmax mistakes and shortcomings, implement missing maps, warn about weird windows and max features, deal with broken file saving, ... So we end up with no time to do what we should be actually doing - fast and precise light transport simulation.

This is the one thing I would do if I had half year off with no other duties. If only... ;)
Rendering is magic.How to get minidumps for crashed/frozen 3ds Max | Sorry for short replies, brief responses = more time to develop Corona ;)

2016-11-24, 05:32:13
Reply #6

Christa Noel

  • Active Users
  • **
  • Posts: 911
  • God bless us everyone
    • View Profile
    • dionch.studio
I would certainly love to have caustics in corona compute by default, and not slow things down too much... but at the same time we get a TON of requests to do other, more easy stuff that can be published faster, and in the end matters more, so this is just kept at the bottom of the TODO list. Somehow, people nowadays expect that we not only implement renderer, but also scatter, proxy, fix all 3dsmax mistakes and shortcomings, implement missing maps, warn about weird windows and max features, deal with broken file saving, ... So we end up with no time to do what we should be actually doing - fast and precise light transport simulation.

This is the one thing I would do if I had half year off with no other duties. If only... ;)
ooh.. poor Ondra
yeah people here say this is the most important and people there say that is the more important than the most.. sounds so dark and heavy but that's a good pressure ;)
btw, better caustic is in the 2nd place in "the MostWantedFeature", isn't it? :D
but I still don't understand why fix all 3dsmax mistakes ??

2016-11-24, 16:10:52
Reply #7

Rimas

  • Active Users
  • **
  • Posts: 156
  • Please refer all complaints to a brick wall nearby
    • View Profile
Yeah, I couldn't care less about a renderer trying to fix something - I care about the renderer being a renderer first and foremost, the rest is an addition. I'd happily use Redshift, but they have a problem with caustics too :/ (some dummy there set the upper photon limit to a measly 100K so you can't produce a sharp caustic. And that 100K on my GPUs takes like a second to generate anyway, so I'd happily do a couple of million if I could...)
A morning of awkwardness is far better than a night of loneliness...

2016-11-24, 16:46:06
Reply #8

sebastian___

  • Active Users
  • **
  • Posts: 197
    • View Profile
I would certainly love to have caustics in corona compute by default, and not slow things down too much...

If you'll implement caustics I hope they will be able to be turned off, and the renderer be able to maintain a speed similar to .. for example corona 1.3 - 1.5
From my point of view, I'm expecting to never having the need to use caustics, or almost never.
I'm more interested in rendering very fast, static or animated objects, or half scenes, in sequences for film work and compositing the renders with real footage.

2016-11-24, 17:35:07
Reply #9

Rimas

  • Active Users
  • **
  • Posts: 156
  • Please refer all complaints to a brick wall nearby
    • View Profile
From my point of view [...]
I'm more interested in [...]

Different people - different needs! Everyone expects something else, but options are of course highly welcome! The problem now is that the option is not there...
A morning of awkwardness is far better than a night of loneliness...

2017-03-28, 14:09:23
Reply #10

RolandB

  • Active Users
  • **
  • Posts: 335
  • Corona fan
    • View Profile
    • Béhance portfolio
Hi
I come back to this topic because I don't find any solution with this caustics problem : I don't find the solution you found in your renders, witch, for me, are amazing and greatly enough for my work...
Could you send us a screen of your shader and the settings you used ?
Thanks a lot !
Roland

Ps : here is the poor result I've got for the moment...
Portfolio on Béhance
http://www.behance.net/GCStudio

2017-03-29, 18:47:16
Reply #11

RolandB

  • Active Users
  • **
  • Posts: 335
  • Corona fan
    • View Profile
    • Béhance portfolio
No answer for my question ?
Thanks
Roland
Portfolio on Béhance
http://www.behance.net/GCStudio