Author Topic: New Energy conservation mode  (Read 50503 times)

2015-02-26, 16:28:27
Reply #30

fabioazevedo

  • Active Users
  • **
  • Posts: 28
    • View Profile
Hey guys

Could anyone please elaborate a bit on the physical and technical reasoning behind the energy conservation feature?

It was most curious to try this out on the new Corona 1.0, but I only expected a slight darkening on reflections (as seen on this thread), and I'm actually getting quite drastic differences when I turn on/off the legacy mode, which I'm not totally convinced to be correct. Of course I could be wrong, but that's what my eyes are telling me at least.

I did a few tests to try to understand the issue better, and also to see if ggx had anything to do with it.

- Created a simple scene with a ground plane and a couple boxes lighted by corona sun
- Applied a white material (180RGB) to all objects and positioned the camera at an angle to increase reflections perception
- Reflection 1, IOR 1.52, Glossiness 1 (slight difference between legacy on and off as initially expected)
- Reflection 1, IOR 1.52, Glossiness 0,1 (huge difference between modes, with reflective faces much darker than expected)
- Reflection 0 (to compare to those same faces, and reflection is effectively darkening a lot when glossiness is very low)
- also tried a fallof map to control reflection instead of IOR, but i looks pretty much like legacy mode (without ggx), so I figured energy conservation isn't working with that.

So is it normal/correct that a low glossiness reflection is so much darker than a high glossiness one? or could this be some kind of bug?
even without.

2015-02-26, 16:43:01
Reply #31

Ludvik Koutny

  • VIP
  • Active Users
  • ***
  • Posts: 2557
  • Just another user
    • View Profile
    • My Portfolio
This is unrelated to new energy conservation mode. It's a "feature" of GGX BRDF, which is according to Ondra unfixable (although other renderers have it fixed). It produces these very ugly darkening artifacts around grazing angles when you have very low material glossiness.

I still think it's a bug though... and a pretty severe one.

2015-02-26, 17:00:32
Reply #32

fabioazevedo

  • Active Users
  • **
  • Posts: 28
    • View Profile
Oh, I see... Thanks for clarifying that.
I pretty much makes the new BRDF unusable in most scenarios then :/
I hope a solution can be found for it.

What about the falloff map thing? results are much better using it, and still different from legacy mode.

2015-02-26, 17:07:07
Reply #33

Ludvik Koutny

  • VIP
  • Active Users
  • ***
  • Posts: 2557
  • Just another user
    • View Profile
    • My Portfolio
That's unrelated to new energy conservation as well. New energy conservation weights material elements by scaling them, not summing up and then clampling, so overall albedo is lower, and things look more correct. So for example reflection now correctly subtracts energy from diffuse. Previously, it would only start subtracting when sum of diffuse and reflection exceeded 1. Now it subtracts diffuse as soon as reflection starts to occur.

As for then falloff map, falloff map set to fresnel does not work correctly with GGX, and according to Ondra it's also impossible fix. Don't really know what to add. Falloff map is not a dealbreaker for me, since IOR can simply be mapped by mapping fresnel IOR slot. But darkening of edges is really dealbreaker in some scenes, where it really matters. I wasn't able to render white christmas bulbs because of that :(

2015-02-26, 17:37:34
Reply #34

fabioazevedo

  • Active Users
  • **
  • Posts: 28
    • View Profile
 Your explanation for the energy conservation was exactly how I thought it worked, and the reason why I associated the dark grazing angles with it. I looked like it is subtracting to much energy from diffuse and thus leaving the color of reflection only.

But now that i think of it, that behavior does make sense as it is... and if the issue is not related to the energy conservation feature, could it be that lowering glossiness is also lowering reflection intensity, making it redundant with EC? In the passes, it does look weaker, not only spread wider.

The falloff map issue, well, not ideal but it's not the end of the world either. Maybe some chart matching IOR values with 0° angle reflection values could help.

I'm still confident Ondra will find solutions.

2015-02-26, 17:41:47
Reply #35

Ludvik Koutny

  • VIP
  • Active Users
  • ***
  • Posts: 2557
  • Just another user
    • View Profile
    • My Portfolio
The problem with darkening corners is that when glossiness is very low, the angle at which rays spread are pretty big, and at the grazing angles, some of the rays actually reflect at such angle they accidentally end up flying inside of the object. And since it's dark inside of that mesh, the rays receive black color. Other renderers solve that by simply flipping the ray back out.

2015-02-26, 18:24:42
Reply #36

fabioazevedo

  • Active Users
  • **
  • Posts: 28
    • View Profile
We're going offtopic here, but why didn't it happen with previous model?

2015-02-26, 18:36:06
Reply #37

Ondra

  • Administrator
  • Active Users
  • *****
  • Posts: 9048
  • Turning coffee to features since 2009
    • View Profile
independently of switching BRDF models, we have decided to also disable these ray-flipping fakes because they were causing so much trouble they were not worth it. It is impossible to do them correctly, since they are by their nature not correct.
Rendering is magic.How to get minidumps for crashed/frozen 3ds Max | Sorry for short replies, brief responses = more time to develop Corona ;)

2015-02-26, 19:24:06
Reply #38

Ludvik Koutny

  • VIP
  • Active Users
  • ***
  • Posts: 2557
  • Just another user
    • View Profile
    • My Portfolio
Correct or not, it does less damage than black outlines. You can't just tell client "Sorry, our renderer can't render that bulb without those ugly black edges". Hopefully others will help me convince you it simply can't stay this way, if Corona's ever supposed to be production renderer.
« Last Edit: 2015-02-26, 19:38:59 by Rawalanche »

2015-02-26, 22:47:02
Reply #39

fabioazevedo

  • Active Users
  • **
  • Posts: 28
    • View Profile
While I do appreciate and totally support the will to maintain physically correct reflections, that's also the reason why Rawalanche is right to stress the need for some kind of solution. As it is, the new BRDF simply doesn't look correct and for me at least is unusable.
I would even suggest going back to the old model as default and make ggx an experimental one untill it's fully sorted out.
How wasn't this a bigger issue for everyone during daily builds testing?

2015-02-26, 22:50:31
Reply #40

Ludvik Koutny

  • VIP
  • Active Users
  • ***
  • Posts: 2557
  • Just another user
    • View Profile
    • My Portfolio
I actually reported it two times, but it got always closed without solution.

2015-02-27, 00:41:06
Reply #41

cecofuli

  • Active Users
  • **
  • Posts: 1577
    • View Profile
    • www.francescolegrenzi.com
I agree with both. I don' t like too much the "black edge" around glossy objects.

2015-02-27, 01:20:00
Reply #42

Juraj

  • Active Users
  • **
  • Posts: 4761
    • View Profile
    • studio website
Is this somehow related to geometry the material is used on ? Because I see the darkening in material editor, but not in my scenes when applied.

For me (as user of dailies), GGX proved very good. It lacks the flexibility I have with GTR(GGX) in Vray when I need larger spread (which samples pretty bad in Vray...I guess it gets complex..), but looks better and behaves better.
Please follow my new Instagram for latest projects, tips&tricks, short video tutorials and free models
Behance  Probably best updated portfolio of my work
lysfaere.com Please check the new stuff!

2015-02-27, 07:48:59
Reply #43

Ludvik Koutny

  • VIP
  • Active Users
  • ***
  • Posts: 2557
  • Just another user
    • View Profile
    • My Portfolio
Create a bright reflective material with low glossiness (like 0.2) and put it on a sphere or teapot.

2015-02-27, 09:05:23
Reply #44

fabioazevedo

  • Active Users
  • **
  • Posts: 28
    • View Profile
Well, I've tried different types of geometry and always get the same problem, but I do find strange that it wasn't a big problem for everyone.
Could this be related to Max version?

I'll attach what I'm looking at...
Only change was legacy mode.