6
$\begingroup$

Physically-Based Rendering / Physically-Based Shaders

My very basic understanding of physically-based shaders is that they have an accurate Fresnel curve (becoming more reflective at grazing angles), and they obey energy conservation (light will not get brighter or dimmer upon hitting the material - it either passes through the surface or reflects off, but is always accounted for).

What I would like to know is: To what degree can these concepts be applied in Blender Internal in order to create more convincing (but still quick to render) materials? This would be useful for the BGE and Blend4Web as well, but the first step is to figure it out for Blender Internal.

It is my understanding that creating the physically accurate Fresnel curve in BI is easy, but that the energy conservation and accounting for "roughness" is not something BI can do because light is not handled in a physically correct way (although maybe baking from Cycles could be a workaround?).

Please correct me wherever I may have misunderstood. And thanks in advance.

$\endgroup$
4
$\begingroup$

I found this video & post really helpful for PBR for non-cycles renders: https://cgcookie.com/2015/05/20/pbr-in-blenders-viewport/

He uses 2 environment maps, one blurry and one sharp, and blends them in way that the sharp one is reflected on the edges and the blurry one is reflected in the front, the way fresnel reflections work. He uses a normal node to do the fresnel reflections in a clever way.

It works with environment maps, not specular (phong) shading, though personally I prefer the environment map look. Note that if you add a light the hilights you get won't match the reflections.

So it's a bit of a hack - 2 reflection maps needed, lights don't reflect right - but it works.

$\endgroup$
1
$\begingroup$

If you are thinking about PBR in Blender you better go in for Cycles (look up "CyniCatPro" on YouTube).

That being said, I have made some Fresnel implementation in the BGE using equirectangular images for reflections(HDRIs). Download a .blend here.

$\endgroup$

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.