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.
Fox
Posts: 437
Joined: Sat Mar 31, 2018 11:17 am

Re: Swimming pool / Underwater / Caustics

Post by Fox »

Dade wrote: Sat May 04, 2019 7:51 am You are likely to run out of memory, try to check the memory usage.
Memory use is 18GB (with ocean modifier resolution 90), windows uses 6GB and free is 104GB. With VM it looks like CPU won't let any threat free, but there is fix for it, keep one threat free (do it before loading up scene, or it may crash):
luxcoreui processor affinity.png
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 2:38 pm Memory use is 18GB (with ocean modifier resolution 90), windows uses 6GB and free is 104GB. With VM it looks like CPU won't let any threat free, but there is fix for it, keep one threat free (do it before loading up scene, or it may crash):
luxcoreui processor affinity.png
It is the Windows scheduler to be really bad, we have some "yield()" around the code to alleviate the problem: https://github.com/LuxCoreRender/LuxCor ... ad.cpp#L90

But I guess photon update code in BiDirVM has none.
Support LuxCoreRender project with salts and bounties
CodeHD
Donor
Donor
Posts: 437
Joined: Tue Dec 11, 2018 12:38 pm
Location: Germany

Re: Swimming pool / Underwater / Caustics

Post by CodeHD »

I still have to play around with BiDirVM, but I did play around a bit more with waves, this time using a plane with "dynamic paint" instead of fluid.

I osciallted a ball (with Null material for the rendering) inside it to create waves. I also made a version with two balls to get interference, which worked quite well.

Here are some videos:

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

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

And some stills in higher resolution, also adding dispersion for the water IOR. First, to show the setup:
setup.png
A render using BiDir, which does well on the interference but not the water surface as discussed in this thread. 1 hour render Time in 4K.
interf1_oidn.jpg
The with casutics cache: I couldn't really get good settings that didn't take too long. Also, with the only light source being Sun from overhead, there is no illumination of the walls. But the refelctions of the water surface aren't too bad. A bit noisy, and OIDN does barely anything in this case.
interf1_caustic200M_normal.jpg
So finally, to work around the problem, a combination of the two. The black wall rendering makews it easy to define where to cut the images.
interf1_combo.jpg
Now I am missing textures for the pool :D
fabi
Posts: 7
Joined: Mon Apr 29, 2019 9:26 am

Re: Swimming pool / Underwater / Caustics

Post by fabi »

The textures I used can be downloaded here: https://www.sketchuptextureclub.com/tex ... pool-tiles

I took 15700, 15698 and 15697.
Fox
Posts: 437
Joined: Sat Mar 31, 2018 11:17 am

Re: Swimming pool / Underwater / Caustics

Post by Fox »

@ CodeHD
This caustics totally look like human eye iris.
CodeHD
Donor
Donor
Posts: 437
Joined: Tue Dec 11, 2018 12:38 pm
Location: Germany

Re: Swimming pool / Underwater / Caustics

Post by CodeHD »

fabi wrote: Sat May 04, 2019 4:49 pm The textures I used can be downloaded here: https://www.sketchuptextureclub.com/tex ... pool-tiles

I took 15700, 15698 and 15697.
Nice, thank you for the link :) I can try to use them, they looked very good in your scene.
Fox wrote: Sat May 04, 2019 4:53 pm @ CodeHD
This caustics totally look like human eye iris.
You're right, I didn't even notice... :oops: :lol:
fabi
Posts: 7
Joined: Mon Apr 29, 2019 9:26 am

Re: Swimming pool / Underwater / Caustics

Post by fabi »

Hi,

I played with LuxCore UI v2.2beta1 to use BIDIRVM render engine. I have the impression that it does not use a photon cache because it does not load the file as with PathCPU. Is it normal ?
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: Sun May 05, 2019 12:35 pm I have the impression that it does not use a photon cache
Yes, BidirVM uses something like progressive photon mapping, it shoots photons all the time and their radius gets a bit smaller over time.
epilectrolytics
Donor
Donor
Posts: 790
Joined: Thu Oct 04, 2018 6:06 am

Re: Swimming pool / Underwater / Caustics

Post by epilectrolytics »

CodeHD wrote: Sat May 04, 2019 4:24 pm Here are some videos:
Great videos!
Without dispersion PGI caustics should be easier to handle.
fabi
Posts: 7
Joined: Mon Apr 29, 2019 9:26 am

Re: Swimming pool / Underwater / Caustics

Post by fabi »

Maybe it is a big mistake, but I looked into photongicache.cpp, and in the Preprocess() function, the value of params.visibility.lookUpRadius is different whether :
- indirect + caustics caches are enabled, params.visibility.lookUpRadius = Max(params.indirect.lookUpRadius, params.caustic.lookUpRadius); (line 493)
- only caustics cache is enabled, params.visibility.lookUpRadius = params.caustic.lookUpRadius; (line 501)

So when indirect and caustics caches are enabled, I understand that the caustics cache is computed with a number of visible objects which is inferior as it should be as normally indirect lookup radius is superior to caustics lookup radius, and so indirect lookup radius will be selected as it is the max.

I don't know if it can entirely explain the "bad" behavior when indirect and caustics caches are enabled, but it seems strange to me.
Post Reply