• Engine
  • Cycles
  • Category
  • Inorganics
  • Added
  • 26 jul 2016
  • Downloads
  • 15617

Physically Based Rendering: Dielectrics

If that sounds complicated, it means solid objects that aren't metal.


I know this isn't a specific material, but it is a great help for users that want to create a good looking scene.


I recently watched Andrew Price's tutorial on Physically Based Shading over on his YouTube channel (wich I highly recommend, it's very informative!) and decided to put the resulting shader up here in Blendermada, since this is a do-it-once-never-worry-about-it-again type of shader. Andrew Price said in his video that he is applying the CC0 license to this shader, but I'm still giving him credit for spending all that time and effort of making a great tutorial. I've uploaded this shader so that you don't have to go through the trouble of setting it up yourself.


What makes this shader different from the normal approach of putting a diffuse and glossy through a mix shader? It is physically more accurate than the standard method described above. A real world dielectric becomes more reflective the more you view it at an angle, which cannot be achieved by a simple mix shader. For that, we use the 'Fresnel' node, which we plug into the 'Fac' value of the mix shader. I recommend watching Andrew Price's tutorial for a more in-depth explanation.


Following the tutorial, I have included some additional control values to the shader. I'll now explain how to use them:

The shader has the following inputs:



    Less/More: This adjusts the roughness value (only really useful for image input into the roughness)


    Less/More: This adjusts the reflection value (only really useful for image input into the reflection)




That the color is a color input is obvious why, but why do that for the roughness and reflection values? Simple: real world dielectrics tend to not have a uniform amount of roughness and gloss, which is why model assets always include roughness (aka gloss) and reflection (aka mirror) textures. The Less/More values are then good for adjusting the images from completely black (at -1) to the original image (at 0) to completely white (at 1). Make sure to change the image data type of the roughness and reflection images to 'non-color data'.

The 'normal' input is quite obvious; run the normal image as 'non-color data' again through a 'Normal Map' node (found under 'vector').

The IOR value (or Index of Refraction) is another value that adjusts the Fresnel effect. I have added that control just for those who want to use the exact values, although nobody can really tell the difference. Generally speaking, it is completely sufficient to leave it at the default value.


I hope you enjoy using this Physically Based Rendering Material for your 3d creations!