question

Milovan Mladenovic avatar image
Milovan Mladenovic asked ·

Does Arnold's microfacets model use multiple scattering to avoid energy loss when using high roughness values?

Does Arnold's microfacets model use multiple scattering to avoid energy loss when using high roughness values?

here is a Siggraph paper on the subject:

https://eheitzresearch.wordpress.com/240-2/

arnold5
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Max Tarpini avatar image
Max Tarpini answered ·

Also sampling gets weird with rough materials. A basic comparison between a fully energy conserving material (left) and aistandardsurface.


Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Max Tarpini avatar image
Max Tarpini answered ·

I can't confirm anything because I don't work for autodesk but that's what I read from tech papers.

however on a 'white furnace test' I just did right now .. incredibly not the reflection nor the refraction have got a chance to pass it.

Here tests with reflection roughness at 1, 0.5, 0.2 .. everything should be pure white .. instead it approaches proper energy conservation only below 0.2 roughness.

Eventually a test material in arnold that does proper multiple-scattering with roughness fixed at _1_ .. only multiple scatter bounces change here .. respectively 5, 10 and 20 bounces. at 20 almost no energy leak.. just some slight darkening artifacts at edges (that's a different problem than energy leak).


mmmhhhh.png (96.7 KiB)
mmmhhhh-05.png (84.1 KiB)
mmmhhhh-02.png (48.8 KiB)
rombo-10.png (63.2 KiB)
Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Max Tarpini avatar image
Max Tarpini answered ·

nope. heitz does a stochastic random-walk that generally means you get some other noise to deal with. arnold uses a tabulated energy compensation term. there's no energy loss for high roughness if that's what doesn't make you sleep well :)

Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Milovan Mladenovic avatar image
Milovan Mladenovic answered ·

Hey Max,

I made a mistake and didn't set metalness to 1. Now I get same results as you.

Thank you very much for the explanations.

It's good to know that aiStandardSurface is not 100% energy conserving on high roughness values.

Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Max Tarpini avatar image
Max Tarpini answered ·

eventually things gonna be worst as soon as we add normal/bump mapping .. that beside producing other kind of artifacts, it also sucks energy! here compared to proper normal mapping based on micro-faceting (right).


Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Max Tarpini avatar image
Max Tarpini answered ·

here we're talking about microfacet reflections, right ? so you have to set metalness to 1 with also base=1 and specular=1 .. ie full reflections with no fresnel (or another setup.. diffuse to fully black and ior to 500). attach a default skydome light (with full white color) to your scene then start increasing roughness on your material ... you'll begin to see energy leaking from 0.2 and up.

# copy&paste it into energyleak.ass then .. 
# $ kick energyleak.ass 
options
{
 AA_samples 4
 outputs "RGBA RGBA filterg driverx"
 camera "perspShape"
 xres 960
 yres 540
 frame 1
}
gaussian_filter
{
 name filterg
}
driver_exr
{
 name driverx
 filename "microfacet_energyleak.exr"
}
persp_camera
{
 name perspShape
 position 0 0 10
 fov 40
}
skydome_light
{
 name aiSkyDomeLightShape1
 color 1 1 1
}
sphere
{
 name mysphere1
 radius 2
 shader aiStandardSurface1
}
standard_surface
{
 name aiStandardSurface1
 base 1
 specular_roughness 1
 metalness 1
}

output :


Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Milovan Mladenovic avatar image
Milovan Mladenovic answered ·

Hey Max,

I did a 'white furnace test' with the aistandardsurface (base weight set to 1) and I didn't see any energy loss. I get pure white in the 0 to 1 roughness range. Only when I have transmission turned on it shows energy loss, same as in your example in the previous post. Also when I use some HDRI it does not show noticeable energy loss (see attached picture).

aistandard-roughness.png

My conclusion was that aistandardsurface is energy conserving with high roughness values except when using transmission but your test shows that my conclusion was wrong. How did you do this test?


Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Milovan Mladenovic avatar image
Milovan Mladenovic answered ·

Thanks Max for the clarification.

Yes! I was more interested if there is a energy compensation when using high roughness values not so much what exact method is used for the compensation but it's good to know.

I did a test with a sphere and a AIstandardSurface with different roughness values which confirmed visually there is no energy loss but when I have transmission set to 1 (for example I want to achieve a frosted glass look with a higher roughness value) it looks like there is a energy loss because there is a visible darkening of the sphere.

Can you confirm that there is a energy compensation for refraction like there is for reflections?

We had a Netflix vendor test (one part of the test was the render engine) where we could not match the look of their test spheres when the sphere has transmission 1 and roughness 1. Our sphere did look darker (all other render tests we where pretty on spot).

We passed the test but I'm curious which one was physically more correct. The reference provided by Netflix (they didn't specify which render they did use) but it looked like it could be more correct or our sphere which had some darkening on high roughness values.

Thanks,

Marko

Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Welcome to the Arnold Answers community.

This is the place for Arnold renderer users everywhere to ask and answer rendering questions, and share knowledge about using Arnold, Arnold plugins, workflows and developing tools with Arnold.

If you are a new user to Arnold Answers, please first check out our FAQ and User Guide for more information.

When posting questions, please be sure to select the appropriate Space for your Arnold plugin and include the plugin version you are using.

Please include images, scene and log files whenever possible as this helps the community answer your questions.

Instructions for generating full verbosity log files are available for MtoA, MaxtoA, C4DtoA, HtoA, KtoA, and Kick.

If you are looking for Arnold Documentation and Support please visit the Arnold Support site.

To try Arnold please visit the Arnold Trial page.

Bottom No panel present for this section.