Transparent Shadows

Link, Like, Share.

For newer versions of Blender the way materials are set up to accommodate transparent shadows has changed and with it the need, for incidental and typically non-transparent materials, to include the Receive Transparent property, a legacy necessity superseded by Shadow Mode. Here, once a material is determined to be transparent, surfaces are rendered in real-time by Eevee or Cycles with or without transparency-defined shadows as appropriate, without the extra set-up of nearby objects.

Download: transparent shadows example *.blend [c. 150 KB].

Design note: see here for different ways to set up transparency in Blender.

Transparent Material

To see transparent shadows, that is shadows rendered based on the transparency of a material assigned to a surface or object, a material with basic transparency is needed, for example an opacity map plugged directly into the Alpha input of Principled BSDF by way of an Image Texture node. To do this, in Shading Workspace; create a Material (or select one already assigned); drop in an Image Texture node; click Open, browse to, select and load the image to be used; link Color output to Alpha input; finally in (Material) Settings switch Blend Mode to Alpha Blend, Alpha Clip or Alpha Hashed [1].

Important: for transparent shadows to be visible in real-time Viewport Shading must be set to Rendered mode. This applies for both Eevee and Cycles.

Blend Mode set to Alpha Blend
For transparent shadows to work the material first has to be set up with standard Blend Mode transparency, i.e. Alpha Blend in the selected materials Settings [1].

Simple transparent material using opacity map
Shown above the node-tree for a very basic transparent material where transparency is defined by an external image (bitmap) that’s plugged directly into the Alpha input of Principled BSDF.

Opacity map used to define transparency
A simple grey-scale images is used to determine the transparency of the material – each tone defines a different grade or degree of transparency; white fully opaque, black fully transparent.

Transparent Shadows

Once the basic transparent material is set up, shadows cast and received by objects in the scene will be rendered solid or Opaque by default based on the object itself regardless of the Blend Mode set [2]. To change this so transparency defines the degree to which objects cast and/or receive shadows; in (Material) Settings click the Shadow Mode drop-down menu [3] and swap Opaque (default) for Alpha Clip or Alpha Hashed [4]. Anything assigned the material will immediately display variable transparency and shadowing depending on the image used to define the opacity or transparency [5].

Design note: for Shadow Mode;
None: transparency is ignored.
Opaque: surfaces render without transparency – solid.
Alpha Clip: shadows ‘clipped’ to a threshold.
Alpha Hashed: shadows fully rendered.

Material 'mode' settings
Blender renders transparent shadows as opaque or solid by default based on the objects shape not the degree of transparency present in the material/image regardless of Blender Mode set [2]. To change this behaviour select an appropriate Shadow Mode option [3], e.g. Alpha Hashed [4]…

Set the Shadow Mode to enable transparent shadows
Once the Shadow Mode is set [5] the scene will be rendered using the materials transparency to define shadows, overriding the default object-based rendering (shadow fidelity can be adjust in Render Properties and additionally depends on graphics hardware/capabilities).

Video

Setting up Materials to enable basic transparent shadow rendering in Eevee and Cycles.


Link, Like, Share.