Skip to content

Component Icon Volumetric Shadow HD Component

Presentation

Intro

Allow true volumetric shadows.
Enabling this feature can be compared to switching the Unity Light's Shadow Type from No Shadow to Soft Shadows.

Shadow HD

Inspector

Inspector Shadow HD

Usage

The Volumetric Shadow HD component must be attached to a Volumetric Light Beam HD. You can use this button at the bottom of the Volumetric Light Beam HD inspector.

Attach Volumetric Shadow HD to a light beam

Shadow/Cookie and Jittering

When using this feature, we highly recommend to increase the Jittering Factor property on your HD beam.
Adding jittering allows to have a decent rendering quality by smoothing banding artifact while keeping raymarching steps as low as possible (and so good performance).
Inspector Shadow HD


Visual

Strength

Controls how dark the shadow cast by this Light Beam will be.
The bigger the value, the more the shadow will affect the visual.


Depth Camera

Layer Mask

The beam can only be occluded by objects located on the layers matching this mask.

Performance consideration

  • It's very important to set it as restrictive as possible (checking only the layers which are necessary) to perform a more efficient process in order to increase the performance.
  • You have to set an Override Layer in the Config when using this feature, and make sure the Layer Mask does NOT include this Override Layer to prevent from having a Layer Mask including any Volumetric Beam.

Occlusion Culling

Whether or not the virtual camera will use occlusion culling during rendering from the beam's POV.

Depth Map Resolution

Controls how large the depth texture captured by the virtual camera is.
The lower the resolution, the better the performance, but the less accurate the rendering.


Update Rate

Update Rate

How often will the occlusion be processed?
Try to update the occlusion as rarely as possible to keep good performance.

  • Never: The occlusion will never be updated.
    The only way to update it is to manually call 'ProcessOcclusionManually()' from script whenever you need.
  • OnEnable: The occlusion will only be updated once on start, and each time the beam is enabled/activated (after being disabled/deactivated).
    It's suitable for static beams located in static environment.
  • OnBeamMove: The occlusion will only be updated when the beam will move.
    It's suitable for moving beams located in static environment.
  • EveryXFrames: The occlusion will be updated every X frame(s).
    It's suitable for static beams located in moving environment.
  • OnBeamMoveAndEveryXFrames: The occlusion will be updated when the beam will move in addition to every X frame(s).
    It's suitable for moving beams located in moving environment.

X frames to wait

How many frames we wait between 2 occlusion tests?

  • If you want your beam to be super responsive to the changes of your environment, update it every frame by setting 1.
  • If you want to save on performance, we recommend to wait few frames between each update by setting a higher value. For example with the value 3, the system will perform 1 occlusion test every 3 frames.