Maniphest T101568

Caustics not work as expected
Needs Information from Developers, Normal

Assigned To
None
Authored By
Umberto Celentano (umbcel)
Oct 3 2022, 10:26 AM
Tags
  • Render & Cycles
  • BF Blender
Subscribers
Fernando Alcala (TriFractal)
Germano Cavalcante (mano-wii)
liang yunfei (LemonBranny)
Umberto Celentano (umbcel)

Description

Hi,
I'm going crazy with shadow caustics.
Oddly they work when they turn off.
In the attached scene

, if you disabled caustics on lights or objects, they will be displayed, otherwise no caustics will be displayed.

Event Timeline

Umberto Celentano (umbcel) created this task.Oct 3 2022, 10:26 AM
Umberto Celentano (umbcel) updated the task description.Oct 3 2022, 10:28 AM
Pratik Borhade (PratikPB2123) added a project: BF Blender.Oct 3 2022, 11:45 AM
liang yunfei (LemonBranny) added a subscriber: liang yunfei (LemonBranny).Oct 3 2022, 4:53 PM

MNEE Caustics is a very new feature, it currently has a lot of limitations and problems, basically, you only want to use it in some situations, such as a scene like a swimming pool. When your object used to generate caustics is too small, for example, there is only a 1cm ball in your scene, MNEE Caustics seems to have a hard time calculating the caustics generated by such a size object, you need to adjust the position of the ball slightly stay away from the ground, otherwise MNEE can't calculate its caustics, which seems to be a problem with accuracy. When your object is further reduced in size, such as a sphere that is only three millimeters in size, MNEE doesn't seem to be able to calculate the caustics it produces anyway. At the same time, your light is too large, causing the object that produces the caustics to be completely enveloped in the light, which also causes MNEE to completely fail to calculate the caustics.
Your scene also contains diamonds? Unfortunately, MNEE cannot currently support non-smoothly shaded objects. For MNEE to produce caustics, there must be objects that can be smoothly shaded.

Germano Cavalcante (mano-wii) changed the task status from Needs Triage to Needs Information from Developers.Oct 4 2022, 9:07 PM
Germano Cavalcante (mano-wii) added a subscriber: Germano Cavalcante (mano-wii).

Thanks for the explanation @liang yunfei (LemonBranny).
In fact the size of the object also seems to affect the quality of the caustic.

However I haven't found documentation on this limitation anywhere.
And the limitations are documented at https://docs.blender.org/manual/en/3.4/render/cycles/object_settings/object_data.html#caustics

Fernando Alcala (TriFractal) added a subscriber: Fernando Alcala (TriFractal).Oct 5 2022, 2:26 AM

There are caustics, but above what Liang already mentioned:

  1. You have two lights where each point into the other's shadow, illuminating the faint caustics that are cast.
  2. The spotlights you are using have a size to them, making the caustics smoother and weaker.

liang yunfei (LemonBranny) added a comment.Oct 5 2022, 12:14 PM

However I haven't found documentation on this limitation anywhere.
And the limitations are documented at https://docs.blender.org/manual/en/3.4/render/cycles/object_settings/object_data.html#caustics

Yes, the instructions in the link you gave don't seem to fully cover the limitations of the MNEE method. In fact, MNEE is so restrictive that I don't even recommend using it in most cases, and I've never used it in any renderings myself. I have only tested the MNEE method when it was added to blender.
Here I can also give you a comparison of the MNEE method with true caustics and the "path-guiding" method from my current favorite branch of blender, the "path-guiding" branch.
1.6 million samples, IOR 1.500, dispersion 0.0121(Cycle +GPU+my dispersion shader):


1600 light tracing samples, IOR 1.500, dispersion 0.0121(Luxcore):

16000 samples, IOR 1.500, dispersion 0.0121(Cycle+CPU+path-guiding+my dispersion shader):

16000 samples, IOR 1.500, dispersion 0.0121(Cylce+GPU+MNEE+my dispersion shader):

2500 samples, IOR 1.500, No dispersion(Cycle+GPU+MNEE):

400 light tracing samples, IOR 1.500,No dispersion(Luxcroe):

1600 samples, IOR 1.500, No dispersion(Cycle+CPU+path-guiding):

As you can see, the MNEE method is not only incompatible with complex shaders, but also ignores a lot of light, both of which are officially stated by blender, but they don't say how serious the problem is, so I did such a comparison. Path-guiding is not designed to calculate caustics, in fact it also has caustics rays that are difficult to calculate, but it has a significant increase in the speed of calculating caustics. In fact, there are also some problems with the caustics of luxcore in the picture I gave, but that is a matter of luxcore, we don't care about it for the time being. The path-guiding branch is still in its very early stages, but it shows a very bright future but also has serious problems.
So I'm hoping someone can go to issue T101523 to help me identify the issues I've raised there, and thus help improve the path-guiding branch.

Umberto Celentano (umbcel) added a comment.Oct 6 2022, 1:28 AM

Thank you so much for great explanation.
I can't wait for Path Guiding to be ready.