Cycles_path_guiding tests

Thread of testing the cycles path guiding branch

edit.
Now you can load the official experimental build here

Important,its CPU only for now

This branch is still in development,please post no bugreport. No bugreports are accepted until the branch make it into the master.

Here is the patch development
https://developer.blender.org/D15286

19 Likes

Thanks for the build @pixelgrip

Here’s my initial testing:

128 samples, no clamping, filter glossy set to .01

path guiding off:

path guiding on:

13 Likes

nice example!
Other typical examples are:

  • anatomically plausible eyes
  • drops of water on diffuse surfaces such as wet leaves
  • scattering volumetrics

try testing those sorts of scenes. That’s where you can expect to see the biggest differences.

Also set Filter Glossy and Indirect Light Clamping both to 0 - those are kind of hacks that ought to be less necessary with this
(pretty sure you did that, I’m just saying, for other people who might want to try)

3 Likes

What about the light threshold in the advanced render setting.if set to 0 it never ignores light ?!

I guess you could turn that one off too. But since that is probabilistic it’s not as much of a hack I think.
Turning that off might mean it tries to make paths work for much longer (for bright but very complex paths), so deeper bounces have a greater chance of contributing, but that also might end up increasing render time.

This technique should find such complex paths much better so it might be a good idea to also turn that off at least for testing. I suspect it won’t make that big a difference though

1 Like

ok test interrior ligthing default setup PG no clamping 60 spp

Without pg

PG on

14 Likes

Very interesting! For some reason there is a very visible pattern in the noise in the NoPG version. I wonder what that’s about?

Since PG on is clearly far less noisy it might pay off to also mention:

  • how many samples
  • how long it took

Usually these more advanced rendering techniques sample smarter, meaning they make more decisions per sample, meaning a single sample takes longer. So both the sample time and the render time are gonna be important to include.
And perhaps memory usage too if that’s notably higher.

Love how clean the caustic at the back wall is

Thanks its working now,the reset helped.then git checkout branch worked without errors.
Rendering now…

Standard pathguiding settings,no denoise.500 samples.It cleans up great in volumetric light.100 samples could maybe usable with denoise.

same scene with AgX tonemapping.same pathguiding settings.200 samples.no denoise.


for comparsion same scene.Agx…200samples…without pathguiding.

hm looks almost the same,maybe you can upload a blenderfile where pathguiding can shine vs without
@sherholz

2 Likes

Do you have an example without path guiding?

1 Like

@CommanderData and @jacek007g just wait 1-2 more days until everything is set up correctly and
we updated the documentation in the related task is updated.

I will send a message here when it is ready.

The current patch is WIP to be able to get feedback about how we did the integration into Cycles and can not be seen as a daily-use/production-ready version.

10 Likes

oh is that a thing? I didn’t know that but I suppose that would make sense

Thanks.
What is the setup for that scene?
Homogeneous volume and a light source in it?
In that case, equiangular sampling would already be almost perfect so does not really have something to help you with.

Putting a refractive object (e.g., water surface) between the volume and the light source will change that :wink:

About the scene see my post below (we are preparing everything at the moment just be patient :slight_smile: )

2 Likes

It looks like the energy in the version without path guiding is ever so slightly lower, suggesting path guiding found more paths. Check in particular along the wall by flipping back and forth.

Try a scene like I made with the diffuse torus inside a glass cube. It should be pretty noticeable there. Could also combine that with volumetrics on top.

If you want I can share my file. It’s a really simple scene though.

Its basicly a cube 200x200m and 24m height with a volume absorption shader for the water color and scattering shader for backscatter.No world scatter,only the scatter/absorption shader in a cube as domain.
With only one sunlight at 1000 strength.volume bounce set at 12.

Yes i noticed that too,but is very subtle.

Sure, i can render it then.But as @moony meantioned filter glossy at 0 makes not that sence.
The scene can be as difficult to render,but it should have standard rendersettings though.

1 Like

Sure, that’s fine, you can just set it to the regular settings instead. I also maxed out bounces which probably means it’s needlessly slow to render too. It should be challenging to render regardless.

Here it is (you gotta modify the render setting still)

SDS path test.blend (3.1 MB)

It can probably also be simplified in terms of materials. If you want the simplest possible such scene, just get rid of the textures, and use a pure diffuse material for both the ground and the torus, and a glass material set to sharp for the cube. That should be enough to force a bunch of SDS paths, especially on the torus inside the cube.

1 Like

SDS 500samples,standard pathguiding settings.glossy filter 1.indirect clamp 10 as default.no denoise.


same settings,without pathguiding

a quick crop with no indirect clamping and same settings pathguiding on 500samples

Hmm, no visible caustics except below the cube but also practically no nose (except below the cube) - for 500 samples without denoising that seems really good.
Would like to at least see the indirect clamping turned off though. Or set to much higher. That can affect caustics quite a lot. Caustics tend to be quite bright, so they’ll practically always be clamped away.

With those settings (without SDS) I get very similar results.

EDIT Oh see, now you added the “without” result. That’s actually a pretty big change on the torus! - those are all the SDS paths regular Cycles would have missed

@pixelgrip using pixel filter = 1 will roughen the glass surface to a value close to 1.0 therefore you will loose all the caustics.

just for an example this is how the scene looks like if guiding is enabled after 55spp:

@kram10321 this is probably more what you were looking for.

5 Likes

Already after 55 spp this is actually really good!
(Btw I used AgX so that’s why your exposure is very different from what I got)

EDIT: Here is what I get (all results in regular Cycles with Shadow Caustic enabled)

500SPP:

  • Clamp Indirect 10, Filter Glossy 1

  • Clamp Indirect 0, Filter Glossy 1

  • Clamp Indirect 10, Filter Glossy 0

  • Clamp Indirect 0, Filter Glossy 0

23216 SPP (Clamp Indirect 0, Filter Glossy 0):

3 Likes

Not sure what exactly filter glossy does in the source code.Since every material has its own roughness.

With your pathguiding it makes sence to reduce it,though.