3
$\begingroup$

So, supposedly Cycles calculates light bouncing around fairly accurately to life. If this is the case, and if Fresnel truly is an optical property due to the viewing angle, why doesn't it just happen? Why does there have to be a node for it?

$\endgroup$
7
$\begingroup$

Cycles could have a shader with in-built fresnel, in fact one is being worked on: https://developer.blender.org/D2313

The reason fresnel is a separate node used to mix diffuse/glossy shaders was an intentional design decision to allow more flexibility when putting shaders together. It allows you to mix shaders in any way you need. One problem with this is that a lot of the time you need to combine shaders in the same way. The alternative is an "ubershader" that combines everything in one black box, such as the Principled BSDF shader in that patch link. By adding the Principled BSDF as a shader node you'd have a single node when you needed a general-purpose physically based shader, or you can choose to roll your own shader combinations if you need more control.

The drill down into your core question of "why doesn't it just happen?": you don't just code "do things physically" and BAM, the renderer is realistic. You need to code each step of the rendering process so that it behaves the way real light would. In the case of Cycles shaders, this step is (currently) left to the user.

| improve this answer | |
$\endgroup$
  • 4
    $\begingroup$ Cycles' focus is production rendering, where ultimately artistic control is more important than accuracy. Leaving shaders to the user makes sense in that case, as not all physical effects are desirable in a production setup. $\endgroup$ – Stefan Werner Jan 29 '17 at 10:57
  • $\begingroup$ Thankfully, the Principled BSDF shader should simplify this pain on the user side. $\endgroup$ – Anson Savage Jul 17 '17 at 20:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.