Path Space Regularization (aka the solution to SDS paths)

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

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

Post by lacilaci » Thu Sep 05, 2019 4:31 pm

Hmm, seems corona has some limitation when using caustics too:

from their helpdesk:

Caustics may render slower/differently when using render regions (this will be improved).
One very strong light may reduce caustics from weaker lights (will be improved).

Caustics which are close to the camera may appear faster and have better quality than the caustics farther away from the camera (this will be improved).
Caustics may render slowly/with worse quality in very large scenes (e.g. rendering a glass of water in the middle of a 1x1 km exterior scene - this will be improved).

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

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

Post by provisory » Fri Sep 06, 2019 7:02 pm

If I'm not mistaken, currently PSR works only for LightCPU in the current LuxCore implementation.
Would it be hard to implement it for (Backward) Path Tracing too (without Light Tracing)?
Path/Metropolis gives the best results according to the paper.

User avatar
Dade
Developer
Developer
Posts: 2925
Joined: Mon Dec 04, 2017 8:36 pm

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

Post by Dade » Fri Sep 06, 2019 9:13 pm

provisory wrote:
Fri Sep 06, 2019 7:02 pm
If I'm not mistaken, currently PSR works only for LightCPU in the current LuxCore implementation.
Would it be hard to implement it for (Backward) Path Tracing too (without Light Tracing)?
I have already, I was sure to have posted the result ... but apparently I'm wrong :roll:
Support LuxCoreRender project with salts and bounties

User avatar
Dade
Developer
Developer
Posts: 2925
Joined: Mon Dec 04, 2017 8:36 pm

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

Post by Dade » Fri Sep 06, 2019 9:58 pm

This is Hybrid:

no-psr.jpg

and this is Hybrid+PSR:

psr.jpg
Support LuxCoreRender project with salts and bounties

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

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

Post by provisory » Sat Sep 07, 2019 11:50 am

I've seen that it works with Hybrid now and I started to test it, but Hybrid (Light Tracing) seems to have some issues, so I'd like to try out PSR with pure (backward) Path Trace + Metropolis, without Hybrid.

Issues, that I've seen so far:
- Blurring decreases very slowly, so it's important to set a good PSR scale, but unclear to me, how to chose one
- Glass volume absorption gets very saturated during Light Tracing with PSR
- It seems to me, that Light Tracing and Path Tracing brightness add up in some cases, so (without clamping) Hybrid becomes brighter than BiDir or simple Path tracing.

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

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

Post by lacilaci » Sun Sep 08, 2019 10:39 am

hm...

this is psr build (https://dev.azure.com/LuxCoreRender/Lux ... uildId=692):
psrbuild.jpg
and this 2.2beta4 build:
beta4build.jpg
on the left side water is more shallow and on the right it is deeper..

both use cpu only and this is just invisible water(for camera) so no sds and no clamping - it looks like sharper caustics are either cut off or became even more blurried than less sharp ones...

User avatar
Dade
Developer
Developer
Posts: 2925
Joined: Mon Dec 04, 2017 8:36 pm

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

Post by Dade » Mon Sep 09, 2019 6:53 am

provisory wrote:
Sat Sep 07, 2019 11:50 am
so I'd like to try out PSR with pure (backward) Path Trace + Metropolis
PSR is used only for SDS paths in light tracing (on the last path vertex <=> eye connection). Using PSR only for SDS paths in backward path tracing (on the last path vertex <=> light connection) would produce exactly the same result: the paths are perfectly symmetrical.
provisory wrote:
Sat Sep 07, 2019 11:50 am
Issues, that I've seen so far:
- Blurring decreases very slowly, so it's important to set a good PSR scale, but unclear to me, how to chose one
The paper has the math for a range of correct values ... in a theoretic situation ... for one point. In practice is only trial and error.
provisory wrote:
Sat Sep 07, 2019 11:50 am
- Glass volume absorption gets very saturated during Light Tracing with PSR
Do you have an example ?
provisory wrote:
Sat Sep 07, 2019 11:50 am
- It seems to me, that Light Tracing and Path Tracing brightness add up in some cases, so (without clamping) Hybrid becomes brighter than BiDir or simple Path tracing.
Do you have an example ?
Support LuxCoreRender project with salts and bounties

User avatar
Dade
Developer
Developer
Posts: 2925
Joined: Mon Dec 04, 2017 8:36 pm

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

Post by Dade » Mon Sep 09, 2019 6:59 am

Added the support for PSR to OpenCL Hybrid rendering.
Support LuxCoreRender project with salts and bounties

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

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

Post by lacilaci » Mon Sep 09, 2019 7:53 am

Dade wrote:
Mon Sep 09, 2019 6:59 am
Added the support for PSR to OpenCL Hybrid rendering.
has same issue on opencl (lighttracing skips sharp caustics or something)
nowater.jpg
sds are also dark and blurry
water.jpg
This is all with clear volume and it seems that using homogeneous volume instead of clear will kill most of caustics(or make them incredibly slow)

I couldn't find a way to make something like this possible yet:
d803a79c379ebc5b586464fb71b68225.jpg

User avatar
Dade
Developer
Developer
Posts: 2925
Joined: Mon Dec 04, 2017 8:36 pm

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

Post by Dade » Mon Sep 09, 2019 8:10 am

lacilaci wrote:
Mon Sep 09, 2019 7:53 am
has same issue on opencl
It is not supposed to be different from CPU rendering :?:
lacilaci wrote:
Mon Sep 09, 2019 7:53 am
This is all with clear volume and it seems that using homogeneous volume instead of clear will kill most of caustics(or make them incredibly slow)
There is currently a problem: it is like if SDS paths "eat" caustic paths in term of importance from Metropolis point of view (i.e. Metropolis renders only SDS paths if they are enabled).
Support LuxCoreRender project with salts and bounties

Post Reply