Transparent Materials in Cycles

Link, Like, Share.

Carried over into Blender 2.8+ from previous versions of the application, the Cycles rendering engine handles transparency in a slightly different way to the Eevee and Workbench renderers, for the most part controlling it, at a basic level, using the Transparent BSDF material node.

Download: Transparent Material example for Cycles *.blend (c.2 MB).

Design note: Cycles doesn’t use Blend modes for transparent materials.

Basic Material

It’s generally a good idea to first establish a basic material. Select the object in question and in Material properties ensure a instance is assigned. Make sure to be using Cycles, in Render properties toggle the Render Engine option to Cycles (defaults to Eevee) then switch to the Workspace to Shading where a basic material should be available. If not add an Material Output node [3] – Add » Output » Material Output, a Principled BSDF node [2] – Add » Shader » Principled BSDF, and an Image Texture node [1] – Add » Texture » Image Texture. Link the nodes so Color output (Image Texture) is connected to Base Color input (Principle BSDF) and then BSDF output (Principled BSDF) to Surface input (Material Output). The image (bitmap) will appear on the mesh in the 3D view.

Design note: the Use Nodes button is not available in Material properties when using Cycles as the engine uses them (nodes) by default.

Set up a basic material
Set up a basic (standard) Material (Image Texture [1], Principled BSDF [2] and Material Output [3]) – this helps identify whether the mesh has yet to be UV mapped or other issues that might make it appear as though there’s a material and/or transparency problem.

Transparent BSDF

Once the basic material is set up and associated image appears correctly on the object, in the Node Editor (still in Shading Workspace) add a Transparent BSDF node [4] – Add » Shader » Transparent BSDF, and a Mix Shader node [5] – Add » Shader » Mis Shader. Link these two new nodes to the current tree so BSDF output (Transparent BSDF) to Shader input (Mix Shader) and BSDF output (Principled BSDF) to Shader input (Mix Shader) – this should be the two BSDF outputs from Transparent BSDF and Principled BSDF linked in to the Mix Shader. And then Shader output (Mix Shader) to Surface input (Material Output). The 3D view should display the material (and any assigned images) transparent.

Design note: in this instance Cycles is making the entire material transparent not just the image that might be assigned via the Image Texture node, which differs from basic Alpha transparency, should other components be linked as part of the overall material tree, they will likely carry the same degree of transparency.

Setting up transparent materials in Cycles
Add a Transparent BSDF [4] and Mix Shader [5] nodes to the basic material and link them so the Principle BSDF and Transparent BSDF pass through the Mix Shader, itself then connected to Material Output – glass blocks texture shown above is fully transparent (subject to the image itself).

Controlling Transparency

For basic materials in Cycles transparency is controlled by changing the colour value of the Transparent BSDF nodes input/output vector. To do this simply click the colour sample rectangle – white by default – and using the colour picker that appears, use the tone slider (right side) to change the value from white, down through grey, to black – this makes the material see-through depending on the tone set, white for fully transparent (100%), black for completely opaque (0%).

Design note: the degree of transparency is being controlled by the colour vector in the same way alpha generally works, white is 100% transparent (subject to the image itself) black being 0% transparent, grey values representing the different levels between the two extremes.

Changing the transparency level using nodes
The degree of transparency for basic Cycles materials is controlled from the Transparent BSDF node by changing the colour input/output value [6] – white = 100%, black 0% transparent – glass blocks texture shown above is completely opaque regardless of any properties the image might include.

Transparency with Alpha

To control material transparency in Cycles using image that’s carrying alpha channel data (RGB+A), the materials set up is exactly the same as outlined above with the exception that the Image Texture node can be linked to the Mix Shader to control transparency. To do this link the Alpha output of the Image Texture node [1] to the Fac input of the Mix Shader [2], doing this instructs the material to use the alpha channel values attributed to the image.

Design note: the colour value attributed to the Transparent BSDF node acts as a master control over the entire material, if black [1], alpha values are ignored and the material will render opaque (0% transparent). This means when using alpha-based transparency the materials overall opacity can be modified two controls; 1) the material and 2) the image.

Changing colour value for opacity
The colour value attributed to the Transparent BSDF node controls the overall degree of transparency, set to black [1] the alpha channel data is ignored and textured rendered fully opaque.

Using the same node set up, and the inclusion of an alpha channeled image, transparency can be inverted by swapping the Shader inputs of the Mix Shader – both input should be from the BSDF outputs of Transparent BSDF [1] and Principled BSDF [2].

Swapping Shader inputs to invert alpha
Swapping the Mix Shader inputs to invert the materials alpha-based transparency – this can be used in conjunction with the above.

Cycles and Alpha based transparency
Under Cycles transparency can also be determined by image based Alpha – using the same node set up for a standard material, linking the Image Texture to the Mix Shader instructs Blender to use the included alpha channel data for transparency.

Video

Walk-through setting up a basic transparent material using the Cycles render engine.


Link, Like, Share.