Problem with caustics on glossy surface
Posted: 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. 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)
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. 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)