Realistic shader using frenel and customizablity

Hello readers,
Over the past couple of days I have been working on a super realistic shader that is easily customizable without having to enter the node editor, meaning anyone using it doesn’t have to understand the way the node editor works, but can still use this shader (it also speeds up the whole process for creating realistic materials in your scene). In it’s current state I would say it’s got a fair bit of customizability, but I am looking to add more simplicity to it.

Images showing the shader in use:

Ground using frenel technique:

Ground using specular map:

This is what the shader currently looks like under the material tab:

So the basics as to what I currently have:

Base roughness: Sets the roughness value of the material, simple.

Base frenel: This sets how much the edge is glossy. I’ve used a simple “facing” layer weight, so the edge faces have a glossiness to them.

Base Min Refelectivity: This sets how reflective a material is. It’s currently set to 0.04 = 4% as that’s how reflective standard materials are in the real world.

Base Colour: This stands for itself, give it a colour or use an image texture like any normal shader.

Use Metallic: This sets the material to act as a metal.

Use Refractive: This sets the material to act like glass/water, or any other refractive material you can think of.

IOR: Like a normal refractive/glass shader, this sets the IOR (index of refraction) of the material.

Normal: This is what you use to set a bump map. I want to make this easier to use, like the base colour, where you just attach the image you need.

Volume Colour: This is only needed if “Use Refractive” is being used. It allows the internal of the glass, for example, to be a certain colour, like its made of it. “Base Colour” causes the glass to look painted.

Volume Density: Set the density of the colour in the glass.

Specular Map: I implemented this because some people prefer to use a specular map instead of normal frenel reflectivity. I came up with this based on BlenderGuru’s realistic texturing tutorial. It’s used in the same way as the “Base Colour”, just attach whatever texture you want to attach.

Use Specular: This changes the shader between using the “Specular Map” or the frenel method of reflecting.

Currently working on:

Adding simplicity to the “Normal” section, where you simply have to add a texture.

If there is anything you would like me to add to this shader please suggest it and I’ll try my best to create what you are wanting.
If you would like this shader to use it in your own projects, PM me and we shall talk it over.
Thanks for spending the time to read through my ramblings, and hope you enjoyed.


Cool. Are you aiming for this shader to be used for any material. If so, you need to add emission in there.

That couldn’t have been more perfect timing. The latest addition was the emission material.

That’s very useful! But I think you also need a reflective color for completeness.

What I am wondering: is such a complex node setup slower to render if it includes shaders which aren’t used, but exist inside the node group? For example, if you set the refractive and volume shader usage to 0, will the presence of them in the node group still slow down cycles?

Cheers, Thorsten

I’ll add it as an option to make it nicer? So the reflection can use the base colour or its own reflective colour. More variety.

Within tests, I haven’t seen this being an issue. Cycles doesn’t need to render it so it ignores it.

Below is a comparison in render times between the normal shader, the metallic shader, and the refractive shader. All images are rendered at 50% of HD 1080 at 50 samples (All rendered on my laptop which is unbelievably slow at rendering anything).