Path Space Regularization (aka the solution to SDS paths)

Discussion related to the Engine functionality, implementations and API.
User avatar
lacilaci
Donor
Posts: 1642
Joined: Fri May 04, 2018 5:16 am

Re: Path Space Regularization (aka the solution to SDS paths)

Post by lacilaci » Fri Sep 20, 2019 4:58 pm

Dade wrote:
Fri Sep 20, 2019 3:11 pm
Sharlybg wrote:
Fri Sep 20, 2019 1:42 pm
lacilaci wrote:
Fri Sep 20, 2019 12:27 pm
starting to look good. (except the overall darkness underwater)
what about sun+sky or HDRi
This is sun+sky (with the same exposure so it is a bit over-exposed due the additional light source):


psr-sky.jpg


Note: the water volume of the scene has (a bluish) absorption (so it does intentionally take away some light).
I will test the build tomorrow but I can already tell you that everything below the water in your example looks very wrongly shaded.

...You have super overexposed surface and a single milimeter under water the surface drops 5+ stops of exposure...

User avatar
lacilaci
Donor
Posts: 1642
Joined: Fri May 04, 2018 5:16 am

Re: Path Space Regularization (aka the solution to SDS paths)

Post by lacilaci » Fri Sep 20, 2019 5:14 pm

B.Y.O.B. wrote:
Fri Sep 20, 2019 4:06 pm
It would be interesting to see this scene without absorption.
Yes, I also want to see this water just as a super clear refraction of sds without added volumetric scattering and absorption. Then we can build convincing looking water from that baseline. Anyway, I will try tomorrow or during weekend. Can't wait to be able to render good looking water with caustics.

provisory
Posts: 224
Joined: Wed Aug 01, 2018 4:26 pm

Re: Path Space Regularization (aka the solution to SDS paths)

Post by provisory » Fri Sep 20, 2019 6:16 pm

It's worth noting, that the minimalistic PSR sample implementation (based on smallpt) uses a very small light source.
It has 3300 times smaller radius than the mirror and glass spheres.

If I render the same scene with the original smallpt (without PSR), I get a black frame with a few fireflies.
EDIT: I realized, that the sample implementation uses a modification of the smallpt which does explicit light sampling, and I used the original one, so that is the reason of the "black frame".
Last edited by provisory on Fri Sep 20, 2019 6:42 pm, edited 1 time in total.

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

Re: Path Space Regularization (aka the solution to SDS paths)

Post by Dade » Fri Sep 20, 2019 6:41 pm

provisory wrote:
Fri Sep 20, 2019 6:16 pm
It's worth noting, that the minimalistic PSR sample implementation (based on smallpt) uses a very small light source.
It has 3300 times smaller radius than the mirror and glass spheres.

If I render the same scene with the original smallpt (without PSR), I get a black frame with a few fireflies.
It is a SmallPT variant with direct light sampling, not the original one you are using :idea:
Support LuxCoreRender project with salts and bounties

provisory
Posts: 224
Joined: Wed Aug 01, 2018 4:26 pm

Re: Path Space Regularization (aka the solution to SDS paths)

Post by provisory » Fri Sep 20, 2019 6:45 pm

Dade wrote:
Fri Sep 20, 2019 6:41 pm
It is a SmallPT variant with direct light sampling, not the original one you are using :idea:
You're right, I just realised it, and edited my post.

Vutshi
Posts: 15
Joined: Tue Jul 17, 2018 8:24 pm

Re: Path Space Regularization (aka the solution to SDS paths)

Post by Vutshi » Fri Sep 20, 2019 6:53 pm

provisory wrote:
Fri Sep 20, 2019 6:16 pm
It's worth noting, that the minimalistic PSR sample implementation (based on smallpt) uses a very small light source.
It has 3300 times smaller radius than the mirror and glass spheres.
Apparently, the initial r0=1 (as suggested by the paper) is a bit too small. These are 2048 and 16384 samples per pixel with r0=4:
Attachments
image_new_2048v3_r0=4.png
image_new_16384.png
Last edited by Vutshi on Fri Sep 20, 2019 7:45 pm, edited 2 times in total.

Vutshi
Posts: 15
Joined: Tue Jul 17, 2018 8:24 pm

Re: Path Space Regularization (aka the solution to SDS paths)

Post by Vutshi » Fri Sep 20, 2019 7:19 pm

Maybe adding the Regularization to the simple path tracing of Luxcore is not a bad option for rendering the pool caustics. The large initial r0 can be quick and dirty way to see what is going on in your scene.
Edit: Oops, apparently it is already there ;)

provisory
Posts: 224
Joined: Wed Aug 01, 2018 4:26 pm

Re: Path Space Regularization (aka the solution to SDS paths)

Post by provisory » Fri Sep 20, 2019 7:47 pm

Oh, I see, Dade has written OpenCL implementations from smallpt!

Vutshi
Posts: 15
Joined: Tue Jul 17, 2018 8:24 pm

Re: Path Space Regularization (aka the solution to SDS paths)

Post by Vutshi » Fri Sep 20, 2019 8:03 pm

It would be interesting to compare Luxcore with the PSR enhanced smallpt. Can someone recreate the test scene in Luxcore? It is just a set of spheres:

Code: Select all

Sphere spheres[] = {//Scene: radius, position, emission, color, material
  Sphere(1e5, Vec( 1e5+1,40.8,81.6), Vec(),Vec(.75,.25,.25),DIFF),//Left
  Sphere(1e5, Vec(-1e5+99,40.8,81.6),Vec(),Vec(.25,.25,.75),DIFF),//Rght
  Sphere(1e5, Vec(50,40.8, 1e5),     Vec(),Vec(.75,.75,.75),DIFF),//Back
  Sphere(1e5, Vec(50,40.8,-1e5+170), Vec(),Vec(),           DIFF),//Frnt
  Sphere(1e5, Vec(50, 1e5, 81.6),    Vec(),Vec(.75,.75,.75),DIFF),//Botm
  Sphere(1e5, Vec(50,-1e5+81.6,81.6),Vec(),Vec(.75,.75,.75),DIFF),//Top
  Sphere(16.5,Vec(27,16.5,47),       Vec(),Vec(1,1,1)*.999, SPEC),//Mirr
  Sphere(16.5,Vec(73,16.5,78),       Vec(),Vec(1,1,1)*.999, REFR),//Glas
  Sphere(5e-3,Vec(50,81.6-36.5,81.6),Vec(4,4,4)*1e7, Vec(), DIFF),//Lite
}
I would have done it if I would know how to compile Luxcore for my macOS :)

User avatar
B.Y.O.B.
Developer
Posts: 3027
Joined: Mon Dec 04, 2017 10:08 pm
Location: Germany
Contact:

Re: Path Space Regularization (aka the solution to SDS paths)

Post by B.Y.O.B. » Fri Sep 20, 2019 8:08 pm

Vutshi wrote:
Fri Sep 20, 2019 8:03 pm
It is just a set of spheres
Ah, right, the box with slightly curved walls. :D
Since LuxCore has a triangle primitive, but no sphere primitive, I would recommend to make the walls out of two triangles each.
Support LuxCoreRender project with salts and bounties

Post Reply