Swimming pool / Underwater / Caustics

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.
User avatar
Dade
Developer
Developer
Posts: 5672
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: Swimming pool / Underwater / Caustics

Post by Dade »

lighting_freak wrote: Tue Apr 30, 2019 2:54 pm One more question from my side. You said SDS paths are impossible to render with BiDir...
But is it really impossible or just hard to render?
It is physically impossible if the light source is not intersectable (i.e. point light, etc.), practically very hard if it is (i.e. a lot of fireflies hard to clear).
Support LuxCoreRender project with salts and bounties
User avatar
B.Y.O.B.
Developer
Developer
Posts: 4146
Joined: Mon Dec 04, 2017 10:08 pm
Location: Germany
Contact:

Re: Swimming pool / Underwater / Caustics

Post by B.Y.O.B. »

lighting_freak wrote: Tue Apr 30, 2019 2:54 pm One more question from my side. You said SDS paths are impossible to render with BiDir...
But is it really impossible or just hard to render?
I'm wondering because the images look quite good, what are you missing?
Look at the underside of the water surface located in the top of this image: http://forums.luxcorerender.org/downloa ... &mode=view
It should contain a mirror image of the caustics below it, but it does not, apart from a few fireflies. For comparison look at the top of the PGI image: http://forums.luxcorerender.org/downloa ... &mode=view
The sun is an intersectible light source so in theory they can be rendered by Bidir, but not in any reasonable timeframe.
User avatar
FarbigeWelt
Donor
Donor
Posts: 1046
Joined: Sun Jul 01, 2018 12:07 pm
Location: Switzerland
Contact:

Caustic Connection Strategies for Bidirectional Path Tracing

Post by FarbigeWelt »

Dade wrote: Tue Apr 30, 2019 2:56 pm It is physically impossible if the light source is not intersectable (i.e. point light, etc.), practically very hard if it is (i.e. a lot of fireflies hard to clear).
Maybe the memo from Pixar published by these authors
Sebastien Speierer, Christophe Hery, Ryusuke Villemin, Wenzel Jakob could be of interest.

They introduce an algorithm that helps BiDir with SDS issues. They claim their algorithm is easy to be implemented in current renderers.

Caustic Connection Strategies for Bidirectional Path Tracing, Technical Memo #18-01
Light and Word designing Creator - www.farbigewelt.ch - aka quantenkristall || #luxcorerender
MacBook Air with M1
fabi
Posts: 7
Joined: Mon Apr 29, 2019 9:26 am

Re: Swimming pool / Underwater / Caustics

Post by fabi »

Hello,

I used the PhotonGI cache with B.Y.O.B. settings (radius 0.01) but increased the max number of photons to 100 million. In the terminal, the indicated number of traced photons was 16 million. In the top reflection on the water, we can see the caustics, but on the pool wall, the caustics are less thin than with Bidir.
PhotonGI cache, radius=0.01, max photons = 100M (Path+Sobol)
PhotonGI cache, radius=0.01, max photons = 100M (Path+Sobol)
After that, I decreased the radius (0.001), the indicated number of traced photons was 30 million, and I seems that the image does not improve with the number of samples, it remains noisy. But the caustics are as thin as with Bidir.
Decreasing the radius to 0.0001 did not improve, the number of traced photons was less than with radius=0.001.
PhotonGI cache, radius=0.001, max photons = 100M (Path+Sobol)
PhotonGI cache, radius=0.001, max photons = 100M (Path+Sobol)
Also, I had to deactivate the indirect GI cache, as it seemed to skip the caustics cache creation (always the same message in the terminal indicating 6 million of photons).

For this image (for me it's the final), I mixed the water reflection for the PhotonGI / radius 0.01 image, and the Bidir image in Gimp to have this.
Final image, top PhotonGI r=0.01 + bottom Bidir
Final image, top PhotonGI r=0.01 + bottom Bidir
Finally, having played with PhotonGI cache, I would have two feature requests:
- could we save the cache to reuse it without recalculating it, to play with the rendering engines settings for example ?
- could we select the object to target caustics ? In the swimming pool image, only the water surface has to be targeted, not the pool walls, which are big surfaces.
epilectrolytics
Donor
Donor
Posts: 790
Joined: Thu Oct 04, 2018 6:06 am

Re: Swimming pool / Underwater / Caustics

Post by epilectrolytics »

Looks great!
WRT caustic cache, lookup max count helps making smoother caustics but also bigger cache.
This thing is really difficult to tweak.
User avatar
B.Y.O.B.
Developer
Developer
Posts: 4146
Joined: Mon Dec 04, 2017 10:08 pm
Location: Germany
Contact:

Re: Swimming pool / Underwater / Caustics

Post by B.Y.O.B. »

fabi wrote: Thu May 02, 2019 10:21 am Finally, having played with PhotonGI cache, I would have two feature requests:
- could we save the cache to reuse it without recalculating it, to play with the rendering engines settings for example ?
This is possible in the latest v2.2beta1 release: viewtopic.php?f=9&p=12621#p12610

Great results!
CodeHD
Donor
Donor
Posts: 437
Joined: Tue Dec 11, 2018 12:38 pm
Location: Germany

Re: Swimming pool / Underwater / Caustics

Post by CodeHD »

This inspired me to play around with blenders fluid and the caustics cache and get some own expereince :)

You can find an animation here:

https://owncloud.gwdg.de/index.php/s/ga5sP1BOBvk5QIh

Took me about 8 hours to render 240 frames. Cache build about 1 minute for each frame. Rendered to 20 Samples per image and used OIDN.

I also rendered some stills, and I also noticed the need for switiching off indirect cache. On the other hand, when the camera is outside the water, it is necessary to have it, as you can see int hese images (from top to bottom: underwater both caches, underwater casutic only, outside both, outisde caustic only). is that expected?
underwater_both.jpg
underwater_causticonly.jpg
outside_both.jpg
outside_causticonly.jpg
epilectrolytics
Donor
Donor
Posts: 790
Joined: Thu Oct 04, 2018 6:06 am

Re: Swimming pool / Underwater / Caustics

Post by epilectrolytics »

CodeHD wrote: Fri May 03, 2019 8:52 am This inspired me to play around with blenders fluid and the caustics cache and get some own expereince :)
Good choice of point of view, I feel like I need a towel after watching the clip :lol:
I also rendered some stills, and I also noticed the need for switching off indirect cache.
I've encountered that too and I think it is a bug.
Fox
Posts: 437
Joined: Sat Mar 31, 2018 11:17 am

Re: Swimming pool / Underwater / Caustics

Post by Fox »

VM is awesome. I think i finally nailed the settings for it.
Scene size is 5m
Camera field of view around 2.5m
I use start radius 0.003
Alpha 0.9996

I need to start with little bias and larger start radius to overcome the lack of MLT.
Also OIDN works with it.

I see if i can go to 10k passes without kernel crash. Some part of VM is locking up CPU real hard, sometimes you can't even move mouse cursor for a minute, and foobar2000 stops playing music.

Here is only small crop:
It's so awesome how light goes in water -> hits wall -> reflects to mirror -> reflects in glass where is mirror -> reflects on another wall -> from there back to water top surface.
Preview.jpg
Here is the scene 25mb:
https://drive.google.com/file/d/1TPX4nz ... sp=sharing
User avatar
Dade
Developer
Developer
Posts: 5672
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: Swimming pool / Underwater / Caustics

Post by Dade »

Fox wrote: Sat May 04, 2019 4:42 am I see if i can go to 10k passes without kernel crash. Some part of VM is locking up CPU real hard, sometimes you can't even move mouse cursor for a minute, and foobar2000 stops playing music.
You are likely to run out of memory, try to check the memory usage.
Support LuxCoreRender project with salts and bounties
Post Reply