Shadows / Blender

Here are described the settings and best practices to setup beautiful real-time shadows in Verge3D for Blender.

Contents

Preparing Blender Viewport

It's recommended to set up Blender's viewport as described in this section to make configuring shadows easier.

Verge3D aims to resemble Blender's Eevee renderer. Follow these instructions to enable it:

Choosing Eevee Choosing viewport rendering in Blender

It's also worth noting that Verge3D doesn't support soft shadows the same way Blender supports them. Blender's Soft Shadows option enables gradual shadow rendering, but Verge3D relies on more real-time techniques. Given the above, it might be better to disable the Soft Shadows option. Also, in order to achieve soft shadows in Verge3D one can try different shadow filtering methods and adjust the shadow blur radius setting.

Disabling soft shadows in Blender

Shadow Filtering Types

Shadows in Verge3D look very differently depending on what shadow map filtering algorithm is in use. The Shadow Map Filtering property located on the Render Properties tab is used to specify the algorithm.

Choosing shadow filtering type in Blender

For usage example, check out the Tea Ceremony demo (also available in the Asset Store).

Basic

Disable filtering, render shadow map as is. This is the fastest method to render shadows.

Example of basic shadows

Bilinear

Use bilinear filtering to smooth adjacent shadow map pixels.

Example of bilinear shadows

PCF

Stands for Percentage Closer Filtering. Uses multiple shadow map lookups for smoothed shadow rendering. Average quality and performance. Uses pseudorandom Poisson Disk Sampling to eliminate shadow pixelation for PCF shadows. This was made the default setting because it corresponds the most to what you see in the 3D editor viewport.

Example of PCF poisson shadows

ESM

Stands for Exponential Shadow Maps. Shadows are smoothest but light leaks are possible. Use ESM Bias setting on lights to remove light leaks artefacts. The performance is comparable to PCF algorithm. ESM shadows can be particularly tricky to set up, therefore see ESM-related issues in the Troubleshooting section.

Example of ESM shadows

Which filtering type to choose?

It's recommended to try the default PCF) shadows first, because they offer good quality and performance. If you need faster but less quality shadows then try Basic or Bilinear. Try ESM if you want more quality, soft shadows, but the drawback is that they can be tricky to set up (artefact-wise) for a particular scene.

Global Settings

The rendering of the shadows is tuned using the Shadows and Verge3D Settings panels located on the Render tab in Blender.

Shadow settings in Blender
Cube Size
Shadow map size for shadows casted from Point, Spot, and Area lights. The higher values gives better quality but reduces performance.
Cascade Size
Shadow map size for shadows casted from Sun lights. The higher values gives better quality but reduce performance.
Light Threshold
Light intensity threshold used to calculate shadow volume distance.
Enable Shadows
Enable/disable shadows in Verge3D.
Shadow Map Filtering
Shadow map filtering algorithm. See above.
Shadow Map Side
Denotes which side of polygons is rendered during the shadow pass. Tweak this value to eliminate self-shadowing artefacts or if you render the plain models (such as leaves or papers).
ESM Distance Scale
ESM shadows scaling factor. Since the ESM filtering algorithm uses absolute distance values, decrease the scale value if you're working on a scene which is much bigger than the default cube, and increase it if your scene is much smaller. Default value is 1. Works only for ESM shadows.

Per-light Settings

Shadows can be enabled/disabled/tweaked for each individual light using the Shadow and Verge3D Settings panels.

Per-light shadow settings in Blender
Clip Start
Near clipping distance, higher values may slightly improve shadow quality.
Bias
Main parameter you should tweak to get rid of self-shadow artefacts and/or the "peter-panning" effect.
Blur Radius
Specify value higher 1 to make your shadows smoother (increase shadow blurriness). This parameter works only for PCF and ESM shadows.
Cascade Margin
For Sun shadows only. Increase the default value if the shadows from tall or large objects appear truncated.
ESM Bias
Bias to reduce ESM light leaking artefacts. Works only for ESM shadows.

Configuring Cascades for Sun Shadows

Cascaded shadow maps are fully supported starting from Verge3D 4.6. The recommended recipe to configure them would be:

  1. Go to active camera view using the ViewCamerasActive Camera menu or Numpad 0 key.
  2. Tweak the Cascaded Shadow Map parameters.
  3. Check the shadows in Verge3D.
  4. Increase the Cascade Margin parameter if the shadows from tall or large objects appear truncated.
Cascade shadow settings in Blender

For better rendering performance, try to keep the number of cascades (as well as their resolution) low.

Per-object/Material Settings

Shadow casting can be enabled/disabled for each individual material through the Settings panel.

Material shadow settings in Blender
Shadow Mode
Shadow casting mode for the material. Only None and Opaque are currently supported.

Shadow receiving can be enabled/disabled for each individual object through the Verge3D Settings panel.

Object shadow settings in Blender
Receive Shadows
Render shadows on the given object or not.

Troubleshooting

Shadows in Verge3D and in the Blender viewport look different

Shadows look too pixelated

Shadows are visible in the Blender viewport but not in Verge3D

Shadows have artefacts

Self-shadowing artifacts

Shadows have no/small penumbra

ESM shadows look faded

Light leaking shadow artifacts

ESM shadows look too sharp or have no penumbra

ESM shadows too sharp

ESM Shadows have artefacts

ESM shadows self-shadow artifacts

Cascaded shadow maps, shadows are clipped at a certain angle

Cascaded shadow maps and ESM shadows, shadows look faded at the intersection of cascades

Got Questions?

Feel free to ask on the forums!