Principled furnace test fail with diffuse roughness

I checked, this is also the case in 2.79. I don’t have renderman, can anyone check this there?
Basically, a shader setup is said to be energy conserving when it survives the furnace test. A furnace test is just a fully white background with no extra lights. Test using filmic as anything above 1 will actually show up without measuring.

Tests:
Result1 (correct): Vanilla regular Lambertian diffuse is ok.
Result2 (unsure): Vanilla Oren-Nayar diffuse gets just slightly darker, which I can live with.
Result3 (expected): Principled Disney Diffuse gets edge slightly darker without sheen compensation. Expected due to it’s implementation of exit IOR and that’s why the sheen compensation is there? Sheen needs to be around 4.5-5 to be about right (by look).
Result4 (correct?): Principled Disney Diffuse at 0.5 roughness looks like vanilla Lambertian.
Result5 (nuts): Principled with roughness 1, the rim gains energy, rather heftily. Needs to be around 0.7 in color to hit the sweet spot at the edge, but then the interior gets a bit too dark - similar to Ore-Nayar. The darkening I can live with, but going brighter than 1 is pretty dangerous. Center value is 1.013654 (also above 1!), while a whopping 1.49317 was maximum value I could find near the edge.

So I’m wondering if Renderman is producing the same results.
Snapshot of a 4 quandrant sphere in fully white background, with the nodes driving it:


V D : Vanilla Diffuse (Lambertian).
V O-N : Vanilla Oren-Nayar.
P D0 : Principled Diffuse Roughness 0 (Disney diffuse, but not identical to Lambertian).
P D1 : Principled Diffuse Roughness 1 (Disney diffuse, with weird Oren-Nayar implementation?).

Can this be a contributing cause for the extreme fireflies showing up? Not that my diffuse bounces should ever reach 1e40 brightness, but who knows if it could trigger something nasty?

1 Like

Firstly. Turn off color management.

Secondly I’m not sure principled is meant to be entirely energy conserving. What does it use for diffuse component?

Set the roughness value well above 1 on a complex mesh and you will find what appears to simply be a velvet shader added on top of the result. I don’t think the Principled node makes any use of Oren Nayer despite that algorithm doing a much better job for materials like rock.

I think there is a much better PBR model for diffuse shading (with roughness) known as the Burley model, Godot uses it and it does a pretty good job. I know some here want Brecht to go as far as to rip out the building blocks and force the use of Principled, but as long as these flaws show up those blocks are needed (as a custom group node is still the way to go in certain cases).

1 Like

Doesn’t matter at all! Filmic is what allows you to see it on screen without taking measurements. A fully white sphere should not be brighter than its surrounding fully white background. Here you can clearly see it on screen, and when measured its always brighter, at grazing viewing angles as much as 50% (should read max 1, reads 1.49).

No, it’s not energy conserving, and it’s known. But when something gets 50% more brighter, I’m starting to wonder about its implementation. That’s why I wonder if things show up identical in Renderman (what is it based on). I wouldn’t be concerned if it lost a little (although not as much as GGX specular, which Multiscatter GGX addressed).

@Ace: DisneyDiffuse is based on Burley. Oren-Nayar is different and has its uses. Should diffuse ever be replaced, it needs an Oren-Nayar model in there - dropdown?

Velvet on top? Really? I though it used its own enclosure, ref issues with coating roughness due to not being one of the builtin glossy distributions. I thought this was going to be reset to Bechman, but the problem persists for me (just checked it in RC3).

Tested that velvet thing. I’m not able to reproduce look close to the velvet shader using very rough diffuse only principled. Both show strong backscatter, I’m not sure how I’d do a fuzz shader. I’ll probably stick with diffuse+velvet as energy is conserved in a controlled manner; in the snapshot below the added principles (with very low color value) are blowing out like crazy with it’s 20 roughness to simulate velvet like backscatter:


Lit by one disk area light in front (oh, it was very stong, oops, but still).

1 Like