Universalshader v1.3.2 (full GPU!)

  • November 28, 2013
  • Blender 2.6x
  • Render: Cycles
  • Creator: enilnacs
  • License: CC-0
You must be logged in to download.


IMPORTANT UPDATE: Universalshader Fusion GPU final is out. If you need a smaller node with only one output socket, intelligent internals, better SSS and less/easier settings download it here:


Still there are some things that only the normal Universalshader provides such as matte, fakes and emission.

V 1.3.2

-Bugfix (development absorbtion socket removed)

V 1.3.1

-Fixed SSS node mistake (s*** happens :-D). Everything should be ok now. If you find something > feedback here or blenderartists. Thanks. :-)

V 1.3

  • Added wavelength environment node ! Simply put it as the environment texture, attach an image to it, and voala, you have a NONoverexposed, SPECTRAL environment! It includes gamma and HSV preprocessing controls for the inmage. It converts/remaps any image to wavelengths, also LDR. It is not an RGB splitter, but true float wavelength remapping with curves!

  • Added wavelength absorbtion settings to ALL shaders + the option to mix with the usual color input.

  • Added Fresnel to Transparency

  • Fixed internal routing, some default organisation and other minor things

NOTE Regarding the spectral environment node:

Cycles can handle wavelength data renders in float, but is NOT an unbiased full spectral renderer. Meaning that the wavelengths calculated here are only 9 separate value spikes in the full spectrum (like laser). A true blackbody emission would mean a full spectral emission with infinite/interpolated frequencies! For that a mathematical algorithm like full, unbiased MLT would be needed. This is the theory.

Now to the practice ;-): You won't make the difference to a luxrender, even if the wavelengths are NOT interpolated, IF you set your scene CORRECTLY! Also it is WAY faster than an unbiased rendering! (but a little bit slower than normal (0.9x to 0.6x)

Volumetrics are due to actual node limitations on hold. 2.7 is coming!

V 1.2

  • Added spectral based dispersion in nanometer from NearInfrared to NearUltraviolet. From 730nm to 410nm. Dispersion is separated internal by All shaders socket. Maximum GPU speed. Has its own socket with organised nodes! Plug and play!

  • Added Wavelength based Emission and mixable with the normal emission color.

Note: Always use at least 0.001 Dispersion Roughness! Light refracts always with little roughness (aberration) ! Else you will have some black corners depending on the geometry > no energy transport to the infinite small edges !

Also the wavelength settings are in nanometer (ex. 450), NOT 0 to 1! Simply enter the nm that are written in each setting (Green 530nm) I put range limits for each color(+/-10nm) for not going beyond the spectral limits bumping into each other with the mouse, but you can numerically making things like real thermal/IR renderings, etc...

V 1.1

UPDATE! Up to 300% faster depending on shader!

  • Internally rerouted for direct output of each shader and combinations

  • Added Output sockets for separate FAST GPU computing: Diffuse, Diffuse+Glossy,Translucency,Transluc+Glossy, Refraction (incl Glass option), Refraction+Glossy, SSS+ Glossy, SSS, Velvet, Velvet+Glossy, Hair (incl. Fresnel), Emission, Emission+Glossy and the SSS Displacement & Displacement passtrough.

  • Now it runs at MAX GPU speed due to direct separate sockets.

V 1.0

Heavily modified Ubershader, this is the universal shader FULLY on GPU.

  • Added SSSgpu solution from blazraidr

  • Added Velvet shader with additional Fresnel

  • Added Hair shader with complete I/Os and additional Fresnel

  • Added Translucency shader

  • Added Displacement Passtrough (for easier workflow)

  • Reorganised colors and internal grouping

  • Renamed each MAIN node input for easier reading.

  • Kept energy balance across all shaders

  • Kept computation holdout if a shader is not used.

SSS works with front scattering also. Don't forget, if you forget the SSS contrast value, press simply e.

Always begin with the default values. (-3.000, 8.000 and e=2.718) and tweak from there.

I changed the SSS branch mix too, so energy conservation should remain correct.

UPDATE: I will later try to do add a pure volumetrics shading for atmosphere and water. Still if someone wants to add it, you're welcome :-).

The SSS has already its own SSS Color and Bump inputs, so it's logical to set the main difusse to 0 !

Have fun.

PS: Please give feedback and suggestions so that i can improve it more!


  • nikitron profile picture

    thanks, needed time to understand all

    Edited November 29, 2013
  • FayZee profile picture

    I'm working through this and also reading your threads on Blender Artists to track your progress.

    I've downloaded all three versions of this blend to date and am comparing them to see how you're tweaking them.

    I appreciate you sharing your work. A massive amount of time and patience must have gone into this :-)

    Edited November 29, 2013
  • patmaniko profile picture

    Incredible!!!! SSS using the GPU.... AMAZING!!!

    Edited December 17, 2013
  • plaintextures profile picture

    nice job...

    Edited December 31, 2013
  • firedrake150 profile picture

    Well Im going to have to some staring at to figure out just how the system works and how to import, because I clicked the wrong thing and blender crashed immediately. Im using an NVidia GeForce GTX Titan so I have GPU support for everything. Time to figure.

    Written January 20, 2014
  • enilnacs profile picture

    You simply append to the node group and connect. I don't have a Titan but a dual 680+580 setup, never crashed. Please be sure that you are using the latest official Blender and NOT using graphicall or developer builds, as they are unstable, especially this node group having many nodes inside and depending on a stable Blender release. Still even with graphicall it runs smoothly. Have fun.

    Written January 24, 2014
  • 1DInc profile picture

    Incredible Power! O_o

    Written January 10, 2015
  • WhatIsThis profile picture

    This might be a very stupid question but, what if I don't have a GPU and I want to use this? I'm trying to make this work with only a CPU and Blender always crashes when I exit the Node Editor.

    Written November 17, 2015