Page 1 of 5

Light tracing and pool

Posted: Tue Aug 06, 2019 5:21 am
by lacilaci
There is no way I can make visible pool caustics using light tracing? Some shady trick or setup?

Currently it's faster to fake caustics(sds-pool caustics) in cycles than render them using any method in luxcore.
cache caustics are super slow for large pool and so are bidir+metropolis (although those look good)

Re: Light tracing and pool

Posted: Tue Aug 06, 2019 5:30 am
by lacilaci
currently I cannot see them through water, cause it's sds paths I know...
caustics_visible_water.png
I can make them visible by hiding water body from camera.. but I get no refraction from water itself so I'm not sure how's that useful to me:
caustics_invisible_water.png
Maybe someone knows some trick to make this somewhat work?

Re: Light tracing and pool

Posted: Tue Aug 06, 2019 5:35 am
by lacilaci
the closest I could get is with lowered opacity on the water... but it looks a bit weak:
caustics_opacity_water.jpg

Re: Light tracing and pool

Posted: Tue Aug 06, 2019 6:04 am
by lacilaci
now here's bidir+metropolis, now these are fucking beautiful, probably only new corona can do these. But it would take forever:
bidirmetro.jpg
I guess we can't have lighttracing act in a similar way as bidir+metro?

Re: Light tracing and pool

Posted: Tue Aug 06, 2019 6:48 am
by FarbigeWelt
lacilaci wrote: Tue Aug 06, 2019 5:30 am currently I cannot see them through water, cause it's sds paths I know...
caustics_visible_water.png

I can make them visible by hiding water body from camera.. but I get no refraction from water itself so I'm not sure how's that useful to me:
caustics_invisible_water.png

Maybe someone knows some trick to make this somewhat work?
There is not any trick. But you could combine this two version each in a separate Blender layer and then select both layers for the rendering. I guess this way you get as close as you can get with current LuxCoreRender.

However, I miss angle shifting due to refraction. Actually objects should look like bend up below the water surface.

Re: Light tracing and pool

Posted: Tue Aug 06, 2019 6:53 am
by FarbigeWelt
lacilaci wrote: Tue Aug 06, 2019 5:35 am the closest I could get is with lowered opacity on the water... but it looks a bit weak:
caustics_opacity_water.jpg
Opacity is a no go. Opacity leads to an image made from one part with refraction and one part without refraction. This means if you point a laser with a certain angle between rectangular to surface and above total reflection you get two rays leaving a glass object with opacity: one straight, one refracted.

Re: Light tracing and pool

Posted: Tue Aug 06, 2019 8:11 am
by lacilaci
hmmmmmmmm......

now look what we got here!!!

PATHCPU! + Metropolis:
caustics_pathcpu_metropolis.jpg
PATHOCL + Metropolis:
caustics_pathOCL_metropolis.jpg
pathocl doesn't give me any caustics but cpu does!
clearly sds is kinda working (a bit slower than normal caustics but a LOT faster than bidir metro) for cpu + metropolis

HOWEVER, it cannot work if I enable PhotonGI for some reason (not caustics caching, only indirect!)
caustics_pathcpu_metropolis_photongi.jpg
so maybe there is a way to make lighttracing caustics look like bidir+metropolis?

Re: Light tracing and pool

Posted: Tue Aug 06, 2019 8:34 am
by Dade
SDS caustics can not be rendered at all by PATH/BIDIR if the light source is not intersectable (i.e. a point light source, etc.).

If the light source is intersectable (i.e. an area light source, etc.) it can be rendered only trough the eye paths so you get exactly the same result from normal path tracing and bidirectional path tracing.

Larger is the light sources and easier is to hit so a way to see something with path tracing is to increase the size of the light source. However the caustics become more and more blurred.
lacilaci wrote: Tue Aug 06, 2019 8:11 am now look what we got here!!!
The difference in Metropolis Vs OpenCL Metropolis is due to the different number of CPU Vs GPU threads (for instance 12 Vs 512,000). GPU are, for instance, 512,000 / 12 times slower to explore the path space.

You could reduce the number of GPU threads to alleviate the problem but is a palliative (i.e yes, Metropolis on GPU is quite useless).
lacilaci wrote: Tue Aug 06, 2019 8:11 am so maybe there is a way to make lighttracing caustics look like bidir+metropolis?
Light tracing with vertex merging is the solution. It is something I'm planning for the v2.3.

Re: Light tracing and pool

Posted: Tue Aug 06, 2019 11:27 am
by epilectrolytics
lacilaci wrote: Tue Aug 06, 2019 8:11 am now look what we got here!!!

PATHCPU! + Metropolis:
Yes, somehow PathCPU metro does faster pool caustics than BiDir, the other solution would be caustic cache.
From what I read you figured out everything yourself already, but if you might provide a scene with the wave bump texture I could do some testing as well.

Re: Light tracing and pool

Posted: Tue Aug 06, 2019 12:13 pm
by lacilaci
epilectrolytics wrote: Tue Aug 06, 2019 11:27 am
lacilaci wrote: Tue Aug 06, 2019 8:11 am now look what we got here!!!

PATHCPU! + Metropolis:
Yes, somehow PathCPU metro does faster pool caustics than BiDir, the other solution would be caustic cache.
From what I read you figured out everything yourself already, but if you might provide a scene with the wave bump texture I could do some testing as well.
Sure, this is the scene I'm testing all the possibilities in:
poolCaustics_testscene.blend
(3.34 MiB) Downloaded 158 times
Right now it seems building cache (in limited conditions) and reusing for full scene render is a way... (shitty and overcomplicated but it's something) the closest I can get is really only cycles+faking the whole thing... which can also look good but... not that good...