SphericalHarmonics3

Represents a third-order spherical harmonics (SH). Light probes use this class to encode lighting information.

Constructor

new SphericalHarmonics3()

Constructs a new spherical harmonics.

Properties

.coefficients : Array.<Vector3>

An array holding the (9) SH coefficients.

.isSphericalHarmonics3 : boolean (readonly)

This flag can be used for type testing.

Default is true.

Methods

.add( sh : SphericalHarmonics3 ) : SphericalHarmonics3

Adds the given SH to this instance.

sh

The SH to add.

Returns: A reference to this spherical harmonics.

.addScaledSH( sh : SphericalHarmonics3, s : number ) : SphericalHarmonics3

A convenience method for performing SphericalHarmonics3#add and SphericalHarmonics3#scale at once.

sh

The SH to add.

s

The scale factor.

Returns: A reference to this spherical harmonics.

.clone() : SphericalHarmonics3

Returns a new spherical harmonics with copied values from this instance.

Returns: A clone of this instance.

.copy( sh : SphericalHarmonics3 ) : SphericalHarmonics3

Copies the values of the given spherical harmonics to this instance.

sh

The spherical harmonics to copy.

Returns: A reference to this spherical harmonics.

.equals( sh : SphericalHarmonics3 ) : boolean

Returns true if this spherical harmonics is equal with the given one.

sh

The spherical harmonics to test for equality.

Returns: Whether this spherical harmonics is equal with the given one.

.fromArray( array : Array.<number>, offset : number ) : SphericalHarmonics3

Sets the SH coefficients of this instance from the given array.

array

An array holding the SH coefficients.

offset

The array offset where to start copying.

Default is 0.

Returns: A clone of this instance.

.getAt( normal : Vector3, target : Vector3 ) : Vector3

Returns the radiance in the direction of the given normal.

normal

The normal vector (assumed to be unit length)

target

The target vector that is used to store the method's result.

Returns: The radiance.

.getIrradianceAt( normal : Vector3, target : Vector3 ) : Vector3

Returns the irradiance (radiance convolved with cosine lobe) in the direction of the given normal.

normal

The normal vector (assumed to be unit length)

target

The target vector that is used to store the method's result.

Returns: The irradiance.

.lerp( sh : SphericalHarmonics3, alpha : number ) : SphericalHarmonics3

Linear interpolates between the given SH and this instance by the given alpha factor.

sh

The SH to interpolate with.

alpha

The alpha factor.

Returns: A reference to this spherical harmonics.

.scale( s : number ) : SphericalHarmonics3

Scales this SH by the given scale factor.

s

The scale factor.

Returns: A reference to this spherical harmonics.

.set( coefficients : Array.<Vector3> ) : SphericalHarmonics3

Sets the given SH coefficients to this instance by copying the values.

coefficients

The SH coefficients.

Returns: A reference to this spherical harmonics.

.toArray( array : Array.<number>, offset : number ) : Array.<number>

Returns an array with the SH coefficients, or copies them into the provided array. The coefficients are represented as numbers.

array

The target array.

Default is [].

offset

The array offset where to start copying.

Default is 0.

Returns: An array with flat SH coefficients.

.zero() : SphericalHarmonics3

Sets all SH coefficients to 0.

Returns: A reference to this spherical harmonics.

Static Methods

.getBasisAt( normal : Vector3, shBasis : Array.<number> )

Computes the SH basis for the given normal vector.

normal

The normal.

shBasis

The target array holding the SH basis.

Source

src/math/SphericalHarmonics3.js