Problem with caustics on glossy surface

Use this forum for general user support and related questions.
Forum rules
Please upload a testscene that allows developers to reproduce the problem, and attach some images.
Post Reply
epilectrolytics
Donor
Posts: 741
Joined: Thu Oct 04, 2018 6:06 am

Problem with caustics on glossy surface

Post by epilectrolytics » Sun Jul 18, 2021 4:32 pm

The current hybrid engine with SDS-cache is very stable and especially with the new albedo transmit denoising great for animation.

But once I choose a glossy ground material flickering occurs and ruins the animation.
After closer inspection I think the cause is "SGS-paths" (specular-glossy-specular) rendered by PGI cache.
Assuming that LuxCore glossy shader has a diffuse and a glossy component, it shows already in light tracing:
The diffuse caustics converge fast like with a matte material while the glossy caustics (reflections of a glass cube on the ground beneath the object) take very long, but still manageable.
With SDS-cache the diffuse caustics tend to be horizontal patterns and the glossy ones vertical.
0001.jpg
Those "SGS" caustics are just not manageable for the SDS-cache no matter what lookup radius is chosen.
Also OIDN cannot deal with their noise pattern.

I fear there is no easy algorithm to accelerate this?
Other renderers have a glossy filter but I don't know if it would help.

But one possible workaround would be an option to exclude SGS paths from SDS cache and to leave them to the eye tracer, as with all SDS paths when only light tracing but no cache is chosen.

When the easy SDS caustics are done via cache and the SGS caustics by eye tracer, they would appear as sparse fireflies that can be dealt with by clamping and denoising, the final render would be clean albeit missing some "reflections of reflections".

(Note: Animations and blender file provided via dropbox links above. The glossy animation was rendered separately for sun and sky, because infinite backgrounds don't work well with hybrid+cache either; better to render them separately with plain path tracing which converges way faster.
LuxCore 2.6 alpha, Win 10)

User avatar
Dade
Developer
Posts: 5523
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: Problem with caustics on glossy surface

Post by Dade » Sun Jul 18, 2021 5:35 pm

By changing the glossiness thresholds you can decide what is handled by light tracing and cache: have you tried to move the threshold over/under the ground roughness ?
Support LuxCoreRender project with salts and bounties

epilectrolytics
Donor
Posts: 741
Joined: Thu Oct 04, 2018 6:06 am

Re: Problem with caustics on glossy surface

Post by epilectrolytics » Sun Jul 18, 2021 5:52 pm

Dade wrote:
Sun Jul 18, 2021 5:35 pm
changing the glossiness thresholds
It seems the threshold does not distinguish between the diffuse and the glossy part of the glossy shader.
When I exclude a material via threshold it does not receive any caustics, neither glossy nor diffuse.

The glossy shaders are special because they can produce as well as receive caustics, when I use a threshold so as to not produce caustics, it also stops to receive caustics (on the diffuse component of the glossy material).
Some more options to differentiate here would be welcome, but it is a confusing situation I'm not sure I have completely grasped.

What is needed here is to not show glossy reflections but still receive diffuse caustics from the same specular source.
This is currently not possible via threshold.

Edit:
A matte material always receives caustics, there is no threshold to cancel them but the material can be excluded from cache as a whole via setting.
Perhaps the glossiness threshold could be modified as to not affect the diffuse part of the glossy shader, it would always receive diffuse caustics regardless the threshold unless it gets excluded completely via setting?

User avatar
Dade
Developer
Posts: 5523
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: Problem with caustics on glossy surface

Post by Dade » Sun Jul 18, 2021 9:24 pm

The threshold only distinguish the method to render something, nothing else. It only affect what it is rendered because a method may not able to render some case (i.e. path tracing and the caustic of a point light source, for instance).
Support LuxCoreRender project with salts and bounties

johannes.wilde
Posts: 65
Joined: Fri Sep 21, 2018 7:57 am

Re: Problem with caustics on glossy surface

Post by johannes.wilde » Mon Jul 19, 2021 7:15 am

I stumbled over a similar issue last week.
The caustics from from a HDRI through the glass lamp showed up on the white plaster in no time with Path/Light Tracing, while they just appear on the brownish tiles when using BiDir or by raising the roughness significantly in GPU/Path/Light Tracing.

I tried to play with the glossiness threshold in both directions, but it did not help, I as well tried to use the Caustic Cache, but it did not help either
BiDir01.jpg

User avatar
FarbigeWelt
Donor
Posts: 1033
Joined: Sun Jul 01, 2018 12:07 pm
Location: Switzerland
Contact:

Re: Problem with caustics on glossy surface

Post by FarbigeWelt » Fri Jul 30, 2021 6:15 am

johannes.wilde wrote:
Mon Jul 19, 2021 7:15 am
I stumbled over a similar issue last week.

BiDir01.jpg
I think you are wrong. Look closer at your picture. Then check your scenery.
Did you here it, the clicking noise of the 'aha-effect'?

If not, I am pretty sure what you thought to be shader issue is nothing less than a usual case of light projection on objects rather than a flat wall.

Didn't you know, it used to be said?
'I see shadows on the wall'? - at least in a song in the later 1970's. (actually, Mike Oldfield refers probably to good old greeks' age. See Plato and its metaphor of some people living in a cave starring at walls believing their perceptions to be the real thing.)
Light and Word designing Creator - www.farbigewelt.ch - aka quantenkristall || #luxcorerender
Windows 10 Pro 64 || 2x16 Cores, AMD Ryzen 3950X @3.5GHz, 64 GB RAM, DDR4 @3.2 GHz
2x openCL, AMD Radeon RX 5700 XT, 8 GB VRAM || Gfp = SFFT Gflops

Post Reply