Cycles_path_guiding tests

I have found a pattern. When your scene has any non-light type light sources, that is, there are objects that use emission shaders, the light tree will seriously hinder the work of PG and extend the rendering time by several times. When there are only light sources in the scene, light tree can help PG to calculate better. @silex @epilectrolytics

2 Likes

Thanks. I know about it already but it’s worth to mention it here. More info about this is in the Many Light Sampling thread over at devtalk - in one of the recent posts Alaska did a really great job of listing all MLS quirks.

The temporary solution for mesh lights with light tree is to change Emission Sampling from Auto to None for every emissive material you want to optimize. This will change the characteristic of a mesh light but it’s scene-dependent. For smaller mesh lights this will work ok. For bigger ones - not so much.

I’ve already set this in the scene I posted here.

3 Likes

This is awesome, thank you so much for sharing this information. Also, great to know that light trees are fully capable of working with PG!

1 Like

LuxCore version shows very interesting result

1 Like

From near to far, the dispersion and refractive index of the prism increase.
There is also a perfectly smooth metal plate used as a reference.
RIS DQT 3800spp:


I estimate that maybe another 10 times the number of samples is needed to achieve the desired noise level.

3 Likes

@LemonBranny and @epilectrolytics, the main problem you have in your volume test scenes is that path guiding in volumes is currently only applied for directional sampling decisions. The decision if a scattering event should be generated is still not guided and only based on the transmittance of the volume.
As a result, in thin media like your test scenes, probably only every 100th or 50th sample actually explore the volume, which is not enough.

4 Likes

Curious to ask, will the decision if a scattering event should be generated be guided in the future?

GPU 22s 500spp:


RIS DQT 14min54s 500spp:

RIS PAVMM 13min27s 500spp:

GPU 15min 20k+spp:

3 Likes

This appears to be lit almost entirely by direct light. Path Guiding won’t really help here (and will likely just slow things down), hence why your equal time GPU render looks much cleaner.

1 Like

Maybe this appleeed’s optic fiber example would be one of better ways to test path guiding with?

Light guide: inner reflection


AS-Transmission.zip (for blenderseed)

3 Likes

I have a scene that I built a while back to test just that.

No PG

PG

6 Likes

I updated the scene above for cycles - PG does help

4 Likes

I made this scene more difficult to highlight the absolute advantage of PG
PAVMM 128spp 11min:


GPU 128spp 19s:

AS-Transmission.blend (967.3 KB)

6 Likes

Tried something with volumetrics a couple times:


Exactly the same settings or both of these. Second one got to render longer so overall noise is lower, but you’ll notice some parts of these are quite different. In one of them, it found a big wide sun beam, giving me the actual beam quite well but the place where that beam landed ended up quite noisy. In the other, the beam shaft itself was not found, but the landing point got much cleaner.

I have no idea whether anything could be done about that, but it looks like one time, by random chance, the volumetric aspect was found more clearly, whereas the other time it was more so the specular aspect, at least for that one sunbeam. It’s a bit unfortunate that it’s so inconsistent…

I mean I know this is not a caustics solver, and I guess that’s a side effect of that…

2 Likes

This took forever lol

but I rendered it to 4096 samples on GPU and CPU (so this is decidedly not equal time - the CPU version took 13 hours 32 minutes, whereas the GPU version rendered for 27 minutes 11 seconds)

Unguided (GPU):

Path Guided:

And not denoised:

Unguided (GPU):

Path Guided:

This scene actually in some ways gets noisier in the guided version, specifically because it finds way more of the much harder paths.
The only light source is the sky and the vast majority of the light is indirect. I actually bumped up the Film Exposure all the way to 10 and the other exposure to 5 for these, that’s how dark this scene is.

I also rendered out the various ray types, just to give a rough idea of how challenging this scene is:

Diffuse Direct:
GPU:


PG:

Diffuse Indirect:
GPU:


PG:

Glossy Direct:
GPU:


PG:

Glossy Indirect
GPU:


PG:

Transmission Indirect (direct is all black):
GPU:


PG:

Volume Direct:
GPU:


PG:

Volume Indirect:
GPU:

PG:

Environment: (basically the same for both)

You can see that all the directly lit parts are darker than the indirectly lit ones.

I also saved the multilayer exrs they are ~ 300 MB each and I’m unsure how best to share them.

Some additional observations:

  • In the Indirect Volume pass, the GPU version does not really have the green cast that presumably comes from rays scattering off the green material. The PG version is significantly greener.
  • Interestingly the opposite is true for the indirect transmission path. It’s much greener on the GPU than in PG.
  • the indirect glossy pass in PG looks more reddish in the bottom right pool of water.
  • the indirect diffuse pass for PG is just way brighter and interestingly overall less colored.

Here is the blend (note, this is quite heavy, both in terms of the scene itself and in terms of the render settings, so maybe check and potentially lower them if you wanna try yourself)
weaire phelan correct scaling.blend (2.0 MB)

EDIT: I’m not sure why these have different resolutions? Offline they are all the same but for some reason the forum randomly decided to shrink some of them here

9 Likes

just noticed I made a mistake, rendering with Filter Glossy 0.5 rather than the 0.05 I meant to do. For the most part that shouldn’t matter. Most of the objects in this scene are pretty rough anyways. But the pools of water presumably would change their indirect glossy bounces from that.

Now Blender 3.5 was released but it looks like the glossy path guiding branch which works better than previously was not merged and thus not included, same with 3.6 alpha?

Yep - I think the glossy guiding branch is still under development.

I wonder can @sherholz can provide a progress update - it seems to have gone quite after the flurry of activity in Feb.

I do know that Sebastian suggested that he was waiting on a some updates from the OPGL - maybe that is the reason it hasn’t been merged.

3 Likes

Some tests
600 samples
Light tree ON
PGI ON

blender-3.6.0-alpha+main.84b66c5a9c47 from 14.03.2023

build blender-3.6.0-alpha+main.bc8622397557 09.04.2023

Nice! Is Path Guiding available in the main Blender alpha builds now?