Chaos Corona for 3ds Max > [Max] General Discussion

Roughness implementation correct?

(1/3) > >>

philipbonum:
Hi there

I've recently converted my material library to the new PhysicalMtl and noticed an effect I hadn't really thought about before:
When a material has a high roughness value it makes the material appear darker when looking at it towards the sun, and brighter when you have the sun at your back.

To recreate:
It seems to be an effect that starts at around 0,5 roughness, and easiest to see when using a cube/plane and a simple corona sun and sky setup. Look at the cube at gracing angles in RT and rotate between having the sun at your back or when looking towards the sun. As you increase the roughness value the materials noticeably darkens when you rotate to look towards the sun.

Is this physically correct?

I've just never seen this effect in real life, and so I started digging online

--Commence rambling--

Is it because the material BRDF(?) tries to emulate a masking and shadowing of microfacets?

This led me to try and check the energy preservation of the material by using what I've learned is called a "white furnace" that is a "a uniform lighting environment set to pure white, to validate the energy preservation property of a BRDF. When energy preservation is achieved, a purely reflective metallic surface (f0=1) should be indistinguishable from the background, no matter the roughness of said surface."

Increasing the roughness of a white(255) material in a white(255) environment is clearly showing a darkening at gracing angles with the PhysicalMtl, but not on the LegacyMtl

If I'm understanding things correctly this is mainly because these different BRDF's(?) all try and emulate a proper physical reaction to light and all fail in different ways. None of these BRDF's are perfect.

This might be entirely unrelated and is a bit out of my area of expertise so excuse my ignorance on the subject.

--Rambling over--

Anyway, if this darkening is indeed wrong, I would like to know how to deal with it.
Maybe one should try and keep roughness below 0,5 or even use the legacy material for very rough surfaces? I noticed the legacy material staying completely invisible in the "white furnace", but it probably has other issues, I'm sure I've read some old complaints about it.

If on the other hand this effect is physically accurate, what materials can have this effect? I would be interested in fine tuning my materials even further and would like to check this out in real life.

pokoy:
Yes, this is a generalization of highly rough surfaces and is considered correct, a similar effect can be seen across many different renderers with modern BRDF models - it tries to account for tiny irregularities in the surface that can't be sufficiently modeled with bump/displacement.

A classic example is the moon - it's (roughly) a ball but appears flat due to its highly rough surface as opposed to a shiny object where the shading changes more gradually.

I remember a nice thread or post explaining this on here and elsewhere (back when it was introduced in Arnold and Corona users asked for it) but can't find it unfortunately.

EDIT - here's a page showing the reasoning behind it: https://www.rombo.tools/2021/12/15/lambert-sphere/, albeit on a different shading model.

maru:

--- Quote from: philipbonum on 2023-08-10, 13:45:08 ---When a material has a high roughness value it makes the material appear darker when looking at it towards the sun, and brighter when you have the sun at your back.

To recreate:
It seems to be an effect that starts at around 0,5 roughness, and easiest to see when using a cube/plane and a simple corona sun and sky setup. Look at the cube at gracing angles in RT and rotate between having the sun at your back or when looking towards the sun. As you increase the roughness value the materials noticeably darkens when you rotate to look towards the sun.

--- End quote ---

Could you post some image examples of this? I don't understand the "sun at your back / looking towards the sun" part. Do you just mean having the camera perpendicular to the surface vs grazing angle?

philipbonum:
Hmm, interesting, too bad I can't really go to the moon to check it out, eh? :)
But I should probably find a really dusty surface and check that!

Thanks for the information

Anyway, in your article it says that "The main offender on the Oren-Nayar implementation (rombo DiffuseGeneralized, Arnold Std Material) is that it is based on single scattering and so it leaks energy (diffuse gets too dark with increasing roughness). "

Isn't this what the CoronaPhysicalMtl uses?

So in other words, it's not correct?
This is in line with the "white furnace" test I did
Ideally the material should be invisible when rendered in this environment no matter the roughness level

@Maru, sure see attached images. Look at the top face of the cube and the way it darkens a lot in "CamBehind" compared to the "CamFront" picture when Roughness is 1. This is obviously opposite of what happens with reflective surfaces, hence my surprise. (Exposure stays the same between images)

maru:
Thanks, I get it now. So it looks like with high roughness it reflects more light back in the direction of the light source than into the camera. It's something like retroreflection, or the negative directionality values in Corona Volume Mtl.
Yes, we are using the Oren-Nayar BRDF in the Corona Physical Mtl - https://support.chaos.com/hc/en-us/articles/4526293874577-Corona-Physical-Material-3ds-Max

Navigation

[0] Message Index

[#] Next page

Go to full version