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.
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
Diffuse PG
RIS
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
Diffuse PG
RIS
Same test - roughness 0.7
No PG
Diffuse PG
RIS
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)
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?
@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
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
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.
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.
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).
@LemonBranny you are right in this example the higher rendering times have two sources.
- more costly per directional sample time
- longer paths
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.