Options
All
  • Public
  • Public/Protected
  • All
Menu

Class representing spherical harmonics coefficients to the 3rd degree

Hierarchy

  • SphericalHarmonics

Index

Constructors

Properties

l00: Vector3

The l0,0 coefficients of the spherical harmonics

l10: Vector3

The l1,0 coefficients of the spherical harmonics

l11: Vector3

The l1,1 coefficients of the spherical harmonics

l1_1: Vector3

The l1,-1 coefficients of the spherical harmonics

l20: Vector3

The l2,0 coefficients of the spherical harmonics

l21: Vector3

The l2,1 coefficients of the spherical harmonics

l22: Vector3

The l2,2 coefficients of the spherical harmonics

l2_1: Vector3

The l2,-1 coefficients of the spherical harmonics

l2_2: Vector3

The l2,-2 coefficients of the spherical harmonics

preScaled: boolean

Defines whether or not the harmonics have been prescaled for rendering.

Methods

  • addLight(direction: Vector3, color: Color3, deltaSolidAngle: number): void
  • Adds a light to the spherical harmonics

    Parameters

    • direction: Vector3

      the direction of the light

    • color: Color3

      the color of the light

    • deltaSolidAngle: number

      the delta solid angle of the light

    Returns void

  • convertIncidentRadianceToIrradiance(): void
  • Convert from incident radiance (Li) to irradiance (E) by applying convolution with the cosine-weighted hemisphere.

    E_lm = A_l * L_lm
    

    In spherical harmonics this convolution amounts to scaling factors for each frequency band. This corresponds to equation 5 in "An Efficient Representation for Irradiance Environment Maps", where the scaling factors are given in equation 9.

    Returns void

  • convertIrradianceToLambertianRadiance(): void
  • Convert from irradiance to outgoing radiance for Lambertian BDRF, suitable for efficient shader evaluation.

    L = (1/pi) * E * rho
    

    This is done by an additional scale by 1/pi, so is a fairly trivial operation but important conceptually.

    Returns void

  • preScaleForRendering(): void
  • Integrates the reconstruction coefficients directly in to the SH preventing further required operations at run time.

    This is simply done by scaling back the SH with Ylm constants parameter. The trigonometric part being applied by the shader at run time.

    Returns void

  • scaleInPlace(scale: number): void
  • Scales the spherical harmonics by the given amount

    Parameters

    • scale: number

      the amount to scale

    Returns void

  • update the spherical harmonics coefficients from the given array

    Parameters

    • data: ArrayLike<ArrayLike<number>>

      defines the 9x3 coefficients (l00, l1-1, l10, l11, l2-2, l2-1, l20, l21, l22)

    Returns SphericalHarmonics

    the spherical harmonics (this)

  • update the spherical harmonics coefficients from the given floats array

    Parameters

    • data: ArrayLike<number>

      defines the 9x3 coefficients (l00, l1-1, l10, l11, l2-2, l2-1, l20, l21, l22)

    Returns SphericalHarmonics

    the spherical harmonics (this)

  • Constructs a spherical harmonics from an array.

    Parameters

    • data: ArrayLike<ArrayLike<number>>

      defines the 9x3 coefficients (l00, l1-1, l10, l11, l2-2, l2-1, l20, l21, l22)

    Returns SphericalHarmonics

    the spherical harmonics

  • Gets the spherical harmonics from polynomial

    Parameters

    Returns SphericalHarmonics

    the spherical harmonics

Legend

  • Constructor
  • Property
  • Method
  • Inherited constructor
  • Inherited property
  • Inherited method
  • Property
  • Method
  • Static method

Settings

Theme