Shadows / Maya

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

Verge3D supports shadows for Directional, Point, Spot, and Area lights.

Preparing Maya Viewport

It's recommended to set up Maya's viewport settings as described below to make configuring shadows easier.

Enable the following viewport options:

Configuring shadows for Maya viewport

Make sure you have at least one light source located on your scene.

Shadow Filtering Types

Shadows in Verge3D look very differently depending on what shadow map filtering algorithm is in use. The Shadow Filtering property located on the Verge3D Export Settings panel is used to specify the algorithm.

Global shadow settings in Maya

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.

Example of PCF shadows

PCF (Bilinear)

Similar to PCF but uses bilinear interpolation for each shadow map lookup. Gives smoothed shadows at the expense of more computation power.

Example of bilinear PCF shadows

PCF (Poisson Disk)

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. The performance is comparable to PCF (Bilinear) algorithm or better.

Example of 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 (Bilinear) 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 (Poisson Disk) 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

Global settings for shadows are located on the Shadows tab in the Verge3D Export Settings menu:

Global shadow settings in Maya
Shadow Filtering
Shadow map filtering algorithm. See above.
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 2.5. Works only for ESM shadows.

Per-Light Settings

Shadows can be enabled/disabled for each individual light using Maya's native panels. Supported shadow settings are highlighted with green.

Maya light shadow settings
Use Depth Map Shadows
must be enabled for shadows to appear in Verge3D.
Resolution
controls how big is the shadow texture (trading between speed and quality).
Filter Size
controls the blurriness ratio for shadows.
Bias
can be tweaked until you get rid of self-shadow artefacts and/or the peter-panning effect.
ESM Bias
controls the bias to reduce ESM light leaking artefacts. Works only for ESM shadows.
Count
number of cascades to use. More cascades means better shadow accuracy, but lower frame rate.
Fade
if is greater than 0, then the size of each cascade (distance interval) is increased so that neighboring cascades overlap. Fade is then applied in the overlapping area to provide a smooth transition between cascades. Higher values mean that the cascade size is increased more, which reduces the available shadow resolution within the cascade as some of it is used in the overlap region. Do not use this parameter if you do not need it (set it to 0).
Distribution
puts more resolution towards the near clip plane. Only works in perspective view.
Cascade Margin
set larger values only if the shadows of tall or big objects appear truncated.

Per-Object Settings

You can also enable and disable receiving and casting shadow on per-object basis.

Maya object shadow settings
Casts Shadows
enable/disable shadow casting for this object.
Receive Shadows
enable/disable shadow receiving for this object.

See also Autodesk's official documentation for more information and best practices on using shadows in Maya.

Troubleshooting

Shadows in Verge3D and in the Maya viewport look different

Shadows look too pixelated

Shadows are visible in the Maya 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!