Options
All
• Public
• Public/Protected
• All

# Class SphericalHarmonics

Class representing spherical harmonics coefficients to the 3rd degree

### Hierarchy

• SphericalHarmonics

## 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

• 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

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

• ##### polynomial: SphericalPolynomial

the spherical polynomial

#### Returns SphericalHarmonics

the spherical harmonics

## Legend

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

Theme