Parallax shader with Silhouette Clipping for Blender 2.8 Eevee and Cycles

This is based on the work of Blenderartists user Binary for Cycles (2013), which
was itself based on Blenderclan user Zelouille original version for Blender Internal (2009).

I organized the nodes in a more user-friendly manner, and implemented the extra image map
nodes (for Metalness/Roughness/Transparency/Emission) as well as some tweak nodes (Inverse/Strenght)
which all connect to the Principled Shader node.

All you have to do to use it is remove the built-in images from the Image nodes and replace them
with your own. Also, remember to change the Height and Normal maps to Non-Color instead of sRGB.
The Image nodes that you are not using (e.g: Emission) can be left empty… but you can freely
mess with the Invert node Factor as well as the Strenght node Factor and Color fields directly.

The Material is set up to use the “Alpha Clip” option inside the Settings Tab of the material.
This means that transparent areas on the viewport are either completely opaque or 100% transparent
and is something required for the Silhouette Clipping feature of the shader to work correctly.

If you wish to use the Alpha Blend option instead (to allow for partially transparent areas or image maps), go to the “Settings” tab of the Material and enable the “Backface Culling” option, or alternatively disable the “Show Backface” option that appears after you select “Alpha Blend”.


Apparently the shader (or Blender itself) has trouble trying to show semi-transparency AND the backfaces of the models at the same time. If you wish to use the Parallax shader and at the same time MUST see the backfaces, I’d recommend duplicating the mesh, flipping the normals and ajusting it’s scale/positions. (Solidify doesn’t help here)

Some screenshots:

The Silhouette Clipping, as well as some shininess/roughness on the bricks:

Have fun!
Evandro Costa

EDIT1: Reorganized the Height Map to be inside of a group, because it’s referenced elsewhere in the node tree. (Thanks @filibis!)

Zip File: (897.2 KB)





Strangely it also looks a lot simpler than I thought it would be.


Hi Evandro, this looks great! Thank you for sharing it.

Just an enhancement to the material: If you create a node group for height map like this it would be better in my opinion. Because that height map is referenced inside Parallax Main, so that we only need to change one.



Hi there Filibis!

Thanks a lot for the suggestion, you are correct, I forgot about the height map inside the Main group.

I think a Mapping node could also probably be squeezed somewhere to allow for dynamic resizing of the textures, instead of having to change the UV islands size as it is currently.
Later I’ll try to implement it.

I’ll change the file on the main post.
Anyway here’s the updated node and a demonstration that it’s working correctly with other maps:

Reminder: if using other maps, remember to change the Height and Normal maps to Non-Color instead of sRGB inside their nodes.


This is insane!! Thanks for sharing :slight_smile:

1 Like

Works marvelous, thanks!

1 Like

really nice ! One of the best attempt so far !!!

but how the roughness, emission, metallic and transparency map can be correct if they aren’t moving with the depending on the view ?

also i saw that the height map is instanced, is there a way to make an all in one PBR node ? im trying to make the node simple


This is Awesome! Mast have. Thanks for sharing!

1 Like