Cycles_path_guiding tests

could be that I have some sort of check still somewhere to disable guiding when the roughness or better roughness^2 is below a threshold.

1 Like

I think that might be the case. I tested with different roughness values. All materials in the scene are glossy. This first set are with roughness 0.1

No PG
01no

Diffuse PG
01diff

RIS
01ris

No real difference between them. It was the same story for glossy materials with a roughness of 0.3 - it was only when I got to a roughness of 0.5 that RIS started to look different and pull ahead in terms of lower noise.

Looks like glossy materials below 0.5 may be being ignored by the RIS algorithm?

0.5 Roughness

No PG
05no

Diffuse PG
05diff

RIS
05ris

2 Likes

Same test - roughness 0.7

No PG
07no

Diffuse PG
07no

RIS
07ris

Seems the RIS gets better the higher up the glossy roughness scale you get - but only above 0.5 (or 0.45 as previously suggested)

1 Like

Thanks for finding this!
I couldnā€™t imagine a threshold so high and stopped investigating further.
Changing glossy roughness to 0.5 in my scene (also increased exposure to 4) I now get results:
PG off, 149s:

PG roughness-based, 228sec:

PG RIS, 407s:

@sherholz : With glossy guiding working so well at 0.5, maybe the threshold should be lower than 0.45?
Or maybe some smooth fading out of guiding probability towards lower roughness, with regard to roughness maps with values differing all over the place?

7 Likes

@epilectrolytics @LemonBranny and @moony thanks for the intensive testing.
I found out that I was comparing against the squared roughness not roughness.

Will push a fix next week and ping you. all

9 Likes

Cool. What will that mean in practical terms?

Does that mean the cutoff will be 0.2?

What happens below the threshold - are sharp(ish) glossy rays unguided? Do they not need to be?

What happens if you do PG on a surface with a roughness less than 0.2? Can you make an option that lets us control the roughness at which PG will work? Iā€™d like to see it for myself and help you with some testing

1 Like

isnā€™t that Translucent? Full roughness on transmissive shader?

Possibly - but the darkening on glass is apparent even at intermediate roughness levels, more so iā€™d say than on glossy surfaces

@sherholz I wonder, could it be linked to the ā€œfilter glossyā€ option - such that the lower PG threshold for glossy rays is whatever the global ā€œfilter glossyā€ is set to?

The Roughness-based method has never been surpassed so much by RIS in other scenarios. I wonder if this is to be expected, and if so, RIS will be the real winner in the end.

Letā€™s wait for @sherholz to explain to us on Monday why the roughness threshold for PG to work is set, after all, we donā€™t understand the algorithm behind it.

Iā€™m surprised too, but itā€™s also way slower, though the noise advantage seems bigger than the time disadvantage to me.
Basically itā€™s a scene with metallic walls, not very realistic.

Iā€™d vote for RIS too and are very curious about how it will work at 0.2 roughness value.

1 Like

These test remember me a lot to Octane 6 years ago. Where they did try to optimize it and run into many fire flies issue.
Today, the quality of Cycles and Octane are compare able, donā€™t get me wrong. I just think maybe it would be good to look at how they solved this. Well, they have a far more advanced physical shader model, maybe that helped.

I guess RIS is slower because it finds more valuable paths, requiring more computation. When the rendering with PG is very fast, it means that PG does almost nothing, in your case, the Roughness-based method is much faster.

1 Like

No harm asking the question - afterall, none of us knew until a few hours ago that there even was a threshold. I didnā€™t expect an answer immediately.

To lift some of the confusions. There is an internal threshold to avoid the overhead of pg on almost specular surfaces (GGX alpha of 0.005). Due to a bug and due to the fact that Cycles is using roughness as parameter and not alpha this threshold as effectively higher.

On almost mirror like surfaces guiding does not bring any advantages, since the material only reflects light from one direction. It only increases the sampling costs for a new direction (e.g. x3).

2 Likes

@LemonBranny you are right in this example the higher rendering times have two sources.

  1. more costly per directional sample time
  2. longer paths
1 Like

Is that entirely true though. Take this scene that has a beam of light reflecting off two perfectly mirror like reflectors (glossy shader set to sharp). Filter glossy = 0.01.

No Guiding

Diffuse Guiding

Even diffuse guiding seems to help find paths to the light source that have bounced off mirror like surfaces.

It seems counterintuitive that glossy path guiding wouldnā€™t be of some benefit in this type of scenario.