UNIVERSAL - PBR uber-shader

by Samsonov Shop in Materials, Shaders, Textures

Meet physically accurate uber-shader for Cycles:

If you've been following recent trends in Blender community you're probably familiar with what PBR is (for those of you who don't know it's physically based rendering). Unfortunately for many artists the subject is quite difficult to implement because of it technical bias. That's why I (confidently understanding all the intricacies of physical optics) decided to combine many physical principles, effects and phenomena into one easy to use shader.

From a physicist for artists:

Being a physicist I was able to make sure that accuracy and consistency of models implemented in the shader are unprecedented for the Blender Market. But being also an artist I endeavored to make these models easy to use and understand.

Should you buy it?

Totally yes, if your work with Blender is tightly connected with rendering. Ability to create realistic materials and to forever forget endless process of trial and error when constructing good-looking shader is at your arm's length.

If you are still not convinced that this product is for you, or can’t see the difference between this and other (maybe even cheaper) pbr shaders on the Market, then have a look at the list of features (all images below are renders, done with UNIVERSAL uber-shader):

  • Unique continuous dispersion model (for refracting all colors in spectrum differently as opposed to available on market simple 3-layer models, refracting only red, green and blue differently)

Left: continuous dispersion. Right: common on Market 3-color dispersion

  • Scattering model combining diffuse, subsurface and translucent scattering

Left to right (decreasing scattering strength): diffuse, subsurface, translucent scattering

  • Accurate light absorption

Example of both absorption (see how light's getting greener with greater depth and silhouette's of monkeys blur)

  • Light interference in thin films (for coating material)

An example of light interference in thin film - soap bubble

You can be creative and recreate an effect called photoelasticity. A phenomenon occurring usually in plastics when it's been deformed and in polarised light you can see similar squiggly rainbow pattern

  • Accurate Fresnel  computing allowing for conductivity (metalness) and roughness
  • User-friendly control for edge tinting for metals

Example of edge tinting (colors are so vivid just for demonstration and do not represent any real metal)

  • Fake caustics (the only not physically accurate thing in the shader)

Example of caustics with HDRI lighting (more like transparent shadows)

  • Birefringence (for making sophisticated refractions in crystals. See wiki for more information)  

Example of the same simple birefringent object rotated differently

  • Color anisotropy (for creating different colors in crystals based on angle of view)
  • 24 presets (see product images)
  • Additional utility node-groups



  • Added dispersion for reflections. It can be used to achive quite a rare but nice-looking effect:

It's availiable through dispersion slider (value can be negative or positive) in following shaders: CLEAR COAT, METALL (FULL), OPAQUE (FULL)

  • Added offline documentation (see link in Documentation section above)

Download an offline version here:


1. Appending materials:

To append a preset material into your scene, click File -> Append and select .blend file from downloaded archive. Choose material folder and select materials you want to add to your scene.

2. Creating materials:

To start creating your own materials, append all node groups from downloaded .blend file. For easier use beside main node group “~shader | UNVIERSAL” there’re additional node groups, starting with “~shader | UNIVERSAL | “ with some settings collapsed. You can see what those settings are in the image below:

3. Settings description:

Below you can see a detailed explanation of every setting in the “~shader | UNIVERSAL” node group:


IOR – index of refraction of a material. Defines how much light ray is deflected inside the materials and reflectivity of a material. Higher values mean stronger light refraction and higher reflectivity

Dispersion – defines dependence of IOR from light color which adds effect of white light separation into rainbow spectrum. IOR changes linearly from “IOR” setting (from above) for red light to “IOR + Dispersion” for violet light


True caustics – defines intensity of caustics, generated by Cycles if “Refractive caustics” checkbox is enabled in render settings (I advise you to always have that enabled, because light can continue travelling after passing a transparent material only if that checkbox is enabled; otherwise materials, seen through transparent materials are blacked out). Setting this to 0.0 exclude caustics calculation

Amount – defines intensity of “fake” caustics, which are much faster (but not completely accurate) than true one

Threshold – defines threshold of fake caustics computation. Lower values mean more parts of an object are used to create caustics and lead to overall more intense caustics (useful if “amount” setting is already at 1.0 but caustics are not strong enough)

Distance – defines how far from object caustics can be seen. Made to avoid possible fireflies far from object when using HDRI for lighting


Color – defines color of a light after its absorption in the material (In simpler words – just a glass color)

Thickness – defines at what depth color of an object will become the one set above. This setting implements physical law called Beer-Lambert law which says that light is not absorbing on the surface, but absorbed the more the deeper it travels through the material. Setting this to 0.0 make light behavior the same as in default colored Refraction shader (useful if light is absorbed in a very thin layer of the material)


Color – defines color of a light after its scattering in the material

Thickness – acts the same as thickness for absorption. Setting this to 0.0 enables only Subsurface scattering (SSS). High values enable translucency scattering. Values in between enable both SSS and translucency.

Density – defines general strength of scattering. Higher values mean more intense scattering and hence effectively lower “thickness” setting. Setting this to very high values means immediate scattering almost at the surface and make material acts as default Diffuse shader

Depth – defines number of light bounces after which computationally heavy models of both absorption and scattering are substituted with simple ones (I advice to set it to 2 for most of the times to reduce render times. Higher numbers of light bounces usually mean that light has been already reflected several times and if most of reflections in your scene are not mirror-sharp then you won’t see the difference between accurate and fast models in blurry reflections)


Metallic – defines base color of metal reflection. As opposed to reflections, controlled by IOR setting, this setting controls material conductivity (metallness). Brighter colors mean more metallic material

Edge – defines metal edge tint which can be seen because of dependence of conductivity coefficients from light color. The spread of this color from edge is defined by IOR value: higher values mean farther Edge color spread.

Roughness – defines microscopic heterogeneity on the object’s surface leading to blurry reflections

Anisotropy – defines stretch of this heterogeneity in one direction leading to reflections stretching

Rotation – defines the direction of anisotropy

Fast Fresnel – defines whether to compute Fresnel falloff (responsible for the effect of increasing reflection strength when looking at the surface on grazing angle) as it’s done by default in Cycles (using fast but sometimes noticeably inaccurate approximation) or with more accurate formulae. Setting this higher than 0.5 mean using default Cycles Fresnel. (I advise you to use accurate Fresnel when default one creates darkening in reflections, usually noticed when using scattering)

Coat thickness – defines thickness of a reflective layer in hundreds of micrometers. Values higher than 0.0 trigger so called thin film interference which can be most clearly seen in soap bubble, oil spill or weld seams (rainbow-colored pattern).

Coat strength – defines strength of the thin film interference effect

4. Utility node-groups:

There're 7 additional utility node groups which you might find useful when creating your materials. Their name starts with "~usr | util | "

BIAS and GAIN groups symmetricaly (as opposed to math -> power node for example) remap values from 0 to 1 and have one corresponding parameter. You can see their effect in the article: http://blog.demofox.org/2012/09/24/bias-and-gain-are-your-friend/

REFL TO IOR converts amount of reflection to IOR. Can be useful when working with specularity of reflectance maps

Texture coordinates passed through VECTOR NOISE get distorted which can add a level of detail to textures

COLOR_ANISOTROPY can be used when creating crystals. X, Y and Z colors define color when looking directly at X, Y or Z object axis. When looking not directly colors get smoothly mixed

BIREFRINGENCE is for crystals as well. When X, Y and Z IORs are not the same light rays will be split up to two refracted diferently making refractions look more interesting and sophisticated. See wiki for more details about the effect: https://en.wikipedia.org/wiki/Birefringence

In some future I’ll add images showing how some settings change material appearance. But if you’ve bought the full version of the product you can explore presets for even better understanding. I tried to create materials with as much different settings combination as possible.

If you have any questions feel free to contact me directly: [email protected]

No FAQ's found for this product.

Item Rating

This item has an average rating of 5 from 2 ratings by the community.

  • the3dcie over 1 year ago

    Superb !

  • kipren over 1 year ago

    Intuitive, excellent!

Purchase this item to leave a review!