Create a shadow map from a DirectionalLight by rendering to a depth texture using a view Mat4 based on the DirectionalLight position and target and an orthographic shadow camera Mat4.

Hierarchy (view full)

Constructors

Properties

DirectionalLight associated with this DirectionalShadow.

Orthographic shadow camera to use for shadow calculations.

Options used to create this DirectionalShadow.

renderer: CameraRenderer

The CameraRenderer used to create this Shadow.

index: number

Index of this Shadow used in the corresponding CameraRenderer shadow buffer binding.

sampleCount: number

Sample count of the depthTexture. Only 1 is accepted for now.

depthTextureSize: Vec2

Size of the depth Texture to use. Default to Vec2(512).

depthTextureFormat: GPUTextureFormat

Format of the depth Texture to use. Default to depth24plus.

depthTexture: Texture

Depth Texture used to create the shadow map.

depthPassTarget: RenderTarget

Depth RenderTarget onto which the meshes will be rendered.

depthComparisonSampler: Sampler

Depth comparison Sampler used to compare depth in the shaders.

meshes: Map<string, ProjectedMesh>

All the current meshes rendered to the shadow map.

#materials: Map<string, RenderMaterial>

Original meshes materials.

#depthMaterials: Map<string, RenderMaterial>

Corresponding depth meshes materials.

rendererBinding: BufferBinding

CameraRenderer corresponding BufferBinding that holds all the bindings for this type of shadow to send to the shaders.

Accessors

  • get isActive(): boolean
  • Get whether this Shadow is actually casting shadows.

    Returns boolean

    • Whether this Shadow is actually casting shadows.
  • set isActive(value): void
  • Start or stop casting shadows.

    Parameters

    • value: boolean

      New active state.

    Returns void

Methods

  • Render the depth pass. This happens before rendering the scene.

    • Force all the meshes to use their depth materials
    • Render all the meshes
    • Reset all the meshes materials to their original one.

    Parameters

    • once: boolean = false

      Whether to render it only once or not.

    Returns number

  • Render the shadow map only once. Useful with static scenes if autoRender has been set to false to only take one snapshot of the shadow map.

    Returns Promise<void>