# SphericalHarmonics

Class representing spherical harmonics coefficients to the 3rd degree

### Hierarchy

• SphericalHarmonics

## Properties

### l00

Find examples in Playground
l00: Vector3

The l0,0 coefficients of the spherical harmonics

### l10

Find examples in Playground
l10: Vector3

The l1,0 coefficients of the spherical harmonics

### l11

Find examples in Playground
l11: Vector3

The l1,1 coefficients of the spherical harmonics

### l1_1

Find examples in Playground
l1_1: Vector3

The l1,-1 coefficients of the spherical harmonics

### l20

Find examples in Playground
l20: Vector3

The l2,0 coefficients of the spherical harmonics

### l21

Find examples in Playground
l21: Vector3

The l2,1 coefficients of the spherical harmonics

### l22

Find examples in Playground
l22: Vector3

The l2,2 coefficients of the spherical harmonics

### l2_1

Find examples in Playground
l2_1: Vector3

The l2,-1 coefficients of the spherical harmonics

### l2_2

Find examples in Playground
l2_2: Vector3

The l2,-2 coefficients of the spherical harmonics

### preScaled

Find examples in Playground
preScaled: boolean

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

## Methods

Find examples in Playground
• 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

Find examples in Playground
• 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

Find examples in Playground

``L = (1/pi) * E * rho``

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

### preScaleForRendering

Find examples in Playground
• 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.

### scaleInPlace

Find examples in Playground
• scaleInPlace(scale: number): void
• Scales the spherical harmonics by the given amount

#### Parameters

• ##### scale: number

the amount to scale

### Static FromArray

Find examples in Playground
• 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

### Static FromPolynomial

Find examples in Playground
• Gets the spherical harmonics from polynomial

#### Parameters

• ##### polynomial: SphericalPolynomial

the spherical polynomial

#### Returns SphericalHarmonics

the spherical harmonics

Generated using TypeDoc