Skip to content

Documentation / scene / SkyRenderer

Class: SkyRenderer ​

Defined in: libs/scene/src/render/sky.ts:93

The sky renderer

Extends ​

  • Disposable

Constructors ​

Constructor ​

new SkyRenderer(): SkyRenderer

Defined in: libs/scene/src/render/sky.ts:196

Creates an instance of SkyRenderer

Returns ​

SkyRenderer

Overrides ​

Disposable.constructor

Accessors ​

disposed ​

Get Signature ​

get disposed(): boolean

Defined in: libs/base/dist/index.d.ts:6107

Returns ​

boolean

Inherited from ​

Disposable.disposed


envTextureFormat ​

Get Signature ​

get envTextureFormat(): TextureFormat

Defined in: libs/scene/src/render/sky.ts:246

Gets the preferred environment texture format.

Returns ​

TextureFormat


skyType ​

Get Signature ​

get skyType(): SkyType

Defined in: libs/scene/src/render/sky.ts:258

Which type of the sky should be rendered

Returns ​

SkyType

Set Signature ​

set skyType(val): void

Defined in: libs/scene/src/render/sky.ts:261

Parameters ​
val ​

SkyType

Returns ​

void


skyColor ​

Get Signature ​

get skyColor(): Immutable<Vector4>

Defined in: libs/scene/src/render/sky.ts:303

The color used when sky type is image

Returns ​

Immutable<Vector4>

Set Signature ​

set skyColor(val): void

Defined in: libs/scene/src/render/sky.ts:306

Parameters ​
val ​

Immutable<Vector4>

Returns ​

void


skyImage ​

Get Signature ​

get skyImage(): Texture2D<unknown>

Defined in: libs/scene/src/render/sky.ts:315

The image used when sky type is image

Returns ​

Texture2D<unknown>

Set Signature ​

set skyImage(texture): void

Defined in: libs/scene/src/render/sky.ts:318

Parameters ​
texture ​

Texture2D<unknown>

Returns ​

void


shWindowWeights ​

Get Signature ​

get shWindowWeights(): Immutable<Vector3>

Defined in: libs/scene/src/render/sky.ts:327

Window weights for SH projection

Returns ​

Immutable<Vector3>

Set Signature ​

set shWindowWeights(weights): void

Defined in: libs/scene/src/render/sky.ts:330

Parameters ​
weights ​

Immutable<Vector3>

Returns ​

void


radianceConvSamples ​

Get Signature ​

get radianceConvSamples(): number

Defined in: libs/scene/src/render/sky.ts:337

Sample count for radiance convolution

Returns ​

number

Set Signature ​

set radianceConvSamples(val): void

Defined in: libs/scene/src/render/sky.ts:340

Parameters ​
val ​

number

Returns ​

void


irradianceConvSamples ​

Get Signature ​

get irradianceConvSamples(): number

Defined in: libs/scene/src/render/sky.ts:349

Sample count for irradiance convolution

Returns ​

number

Set Signature ​

set irradianceConvSamples(val): void

Defined in: libs/scene/src/render/sky.ts:352

Parameters ​
val ​

number

Returns ​

void


aerialPerspectiveDistance ​

Get Signature ​

get aerialPerspectiveDistance(): number

Defined in: libs/scene/src/render/sky.ts:359

Aerial perspective density

Returns ​

number

Set Signature ​

set aerialPerspectiveDistance(val): void

Defined in: libs/scene/src/render/sky.ts:362

Parameters ​
val ​

number

Returns ​

void


atmosphereExposure ​

Get Signature ​

get atmosphereExposure(): number

Defined in: libs/scene/src/render/sky.ts:369

Atmosphere exposure

Returns ​

number

Set Signature ​

set atmosphereExposure(val): void

Defined in: libs/scene/src/render/sky.ts:372

Parameters ​
val ​

number

Returns ​

void


cameraHeightScale ​

Get Signature ​

get cameraHeightScale(): number

Defined in: libs/scene/src/render/sky.ts:379

Aerial perspective density

Returns ​

number

Set Signature ​

set cameraHeightScale(val): void

Defined in: libs/scene/src/render/sky.ts:382

Parameters ​
val ​

number

Returns ​

void


heightFogColor ​

Get Signature ​

get heightFogColor(): Immutable<Vector3>

Defined in: libs/scene/src/render/sky.ts:389

Height fog color

Returns ​

Immutable<Vector3>

Set Signature ​

set heightFogColor(val): void

Defined in: libs/scene/src/render/sky.ts:392

Parameters ​
val ​

Immutable<Vector3>

Returns ​

void


heightFogDensity ​

Get Signature ​

get heightFogDensity(): number

Defined in: libs/scene/src/render/sky.ts:399

Height fog density

Returns ​

number

Set Signature ​

set heightFogDensity(val): void

Defined in: libs/scene/src/render/sky.ts:402

Parameters ​
val ​

number

Returns ​

void


heightFogFalloff ​

Get Signature ​

get heightFogFalloff(): number

Defined in: libs/scene/src/render/sky.ts:409

Height fog falloff

Returns ​

number

Set Signature ​

set heightFogFalloff(val): void

Defined in: libs/scene/src/render/sky.ts:412

Parameters ​
val ​

number

Returns ​

void


heightFogStartHeight ​

Get Signature ​

get heightFogStartHeight(): number

Defined in: libs/scene/src/render/sky.ts:419

Height fog start height

Returns ​

number

Set Signature ​

set heightFogStartHeight(val): void

Defined in: libs/scene/src/render/sky.ts:422

Parameters ​
val ​

number

Returns ​

void


heightFogStartDistance ​

Get Signature ​

get heightFogStartDistance(): number

Defined in: libs/scene/src/render/sky.ts:429

Height fog start distance

Returns ​

number

Set Signature ​

set heightFogStartDistance(val): void

Defined in: libs/scene/src/render/sky.ts:432

Parameters ​
val ​

number

Returns ​

void


heightFogEndDistance ​

Get Signature ​

get heightFogEndDistance(): number

Defined in: libs/scene/src/render/sky.ts:439

Height fog end distance

Returns ​

number

Set Signature ​

set heightFogEndDistance(val): void

Defined in: libs/scene/src/render/sky.ts:442

Parameters ​
val ​

number

Returns ​

void


heightFogMaxOpacity ​

Get Signature ​

get heightFogMaxOpacity(): number

Defined in: libs/scene/src/render/sky.ts:449

Height fog maximum opacity

Returns ​

number

Set Signature ​

set heightFogMaxOpacity(val): void

Defined in: libs/scene/src/render/sky.ts:452

Parameters ​
val ​

number

Returns ​

void


heightFogAtmosphereContribution ​

Get Signature ​

get heightFogAtmosphereContribution(): number

Defined in: libs/scene/src/render/sky.ts:459

Height fog atmosphere contribution strength

Returns ​

number

Set Signature ​

set heightFogAtmosphereContribution(val): void

Defined in: libs/scene/src/render/sky.ts:462

Parameters ​
val ​

number

Returns ​

void


heightFogDirExponent ​

Get Signature ​

get heightFogDirExponent(): number

Defined in: libs/scene/src/render/sky.ts:469

Height fog directional exponent

Returns ​

number

Set Signature ​

set heightFogDirExponent(val): void

Defined in: libs/scene/src/render/sky.ts:472

Parameters ​
val ​

number

Returns ​

void


heightFogDirColor ​

Get Signature ​

get heightFogDirColor(): Immutable<Vector3>

Defined in: libs/scene/src/render/sky.ts:479

Height fog directional inscattering color

Returns ​

Immutable<Vector3>

Set Signature ​

set heightFogDirColor(val): void

Defined in: libs/scene/src/render/sky.ts:482

Parameters ​
val ​

Immutable<Vector3>

Returns ​

void


cloudy ​

Get Signature ​

get cloudy(): number

Defined in: libs/scene/src/render/sky.ts:495

Light density of the sky.

Remarks ​

This value controls how much cloud should be rendered when the sky type is scatter. Typically, the value should be in the range of 0 to 1.

Returns ​

number

Set Signature ​

set cloudy(val): void

Defined in: libs/scene/src/render/sky.ts:498

Parameters ​
val ​

number

Returns ​

void


cloudIntensity ​

Get Signature ​

get cloudIntensity(): number

Defined in: libs/scene/src/render/sky.ts:507

Intensity of the sky color

Returns ​

number

Set Signature ​

set cloudIntensity(val): void

Defined in: libs/scene/src/render/sky.ts:510

Parameters ​
val ​

number

Returns ​

void


wind ​

Get Signature ​

get wind(): Immutable<Vector2>

Defined in: libs/scene/src/render/sky.ts:522

Wind velocity

Remarks ​

This value affects the movement of the cloud

Returns ​

Immutable<Vector2>

Set Signature ​

set wind(val): void

Defined in: libs/scene/src/render/sky.ts:525

Parameters ​
val ​

Immutable<Vector2>

Returns ​

void


radianceMap ​

Get Signature ​

get radianceMap(): TextureCube<unknown>

Defined in: libs/scene/src/render/sky.ts:531

Radiance map of the sky.

Returns ​

TextureCube<unknown>


sheenRadianceMap ​

Get Signature ​

get sheenRadianceMap(): TextureCube<unknown>

Defined in: libs/scene/src/render/sky.ts:544

Radiance map of the sky reused for sheen.

Remarks ​

Dynamic sky is smooth enough that the GGX-prefiltered radiance map is a practical approximation for sheen.

Returns ​

TextureCube<unknown>


irradianceSH ​

Get Signature ​

get irradianceSH(): GPUDataBuffer<unknown>

Defined in: libs/scene/src/render/sky.ts:565

Irradiance SH coeffecients buffer

Returns ​

GPUDataBuffer<unknown>


irradianceSHFB ​

Get Signature ​

get irradianceSHFB(): FrameBuffer<unknown>

Defined in: libs/scene/src/render/sky.ts:575

Irradiance SH coeffecients texture

Returns ​

FrameBuffer<unknown>


skyboxTexture ​

Get Signature ​

get skyboxTexture(): TextureCube<unknown>

Defined in: libs/scene/src/render/sky.ts:593

Cube texture for skybox.

Returns ​

TextureCube<unknown>

Set Signature ​

set skyboxTexture(tex): void

Defined in: libs/scene/src/render/sky.ts:596

Parameters ​
tex ​

TextureCube<unknown>

Returns ​

void


skyboxRotation ​

Get Signature ​

get skyboxRotation(): Immutable<Vector3>

Defined in: libs/scene/src/render/sky.ts:607

Additional euler rotation (in degrees) applied to skybox.

Returns ​

Immutable<Vector3>

Set Signature ​

set skyboxRotation(val): void

Defined in: libs/scene/src/render/sky.ts:610

Parameters ​
val ​

Immutable<Vector3>

Returns ​

void


fogType ​

Get Signature ​

get fogType(): FogType

Defined in: libs/scene/src/render/sky.ts:635

Current fog type

Returns ​

FogType

Set Signature ​

set fogType(val): void

Defined in: libs/scene/src/render/sky.ts:638

Parameters ​
val ​

FogType

Returns ​

void

Methods ​

on() ​

on<K>(type, listener, context?): void

Defined in: libs/base/dist/index.d.ts:630

IEventTarget.on

Type Parameters ​

K ​

K extends "dispose"

Parameters ​

type ​

K

listener ​

EventListener<{ dispose: []; }, K>

context? ​

unknown

Returns ​

void

Inherited from ​

Disposable.on


once() ​

once<K>(type, listener, context?): void

Defined in: libs/base/dist/index.d.ts:634

IEventTarget.once

Type Parameters ​

K ​

K extends "dispose"

Parameters ​

type ​

K

listener ​

EventListener<{ dispose: []; }, K>

context? ​

unknown

Returns ​

void

Inherited from ​

Disposable.once


off() ​

off<K>(type, listener?, context?): void

Defined in: libs/base/dist/index.d.ts:638

IEventTarget.off

Type Parameters ​

K ​

K extends "dispose"

Parameters ​

type ​

K

listener? ​

EventListener<{ dispose: []; }>

context? ​

unknown

Returns ​

void

Inherited from ​

Disposable.off


dispatchEvent() ​

dispatchEvent<K>(type, ...args): void

Defined in: libs/base/dist/index.d.ts:642

IEventTarget.dispatchEvent

Type Parameters ​

K ​

K extends "dispose"

Parameters ​

type ​

K

args ​

...object[K]

Returns ​

void

Inherited from ​

Disposable.dispatchEvent


dispose() ​

dispose(): void

Defined in: libs/base/dist/index.d.ts:6108

Returns ​

void

Inherited from ​

Disposable.dispose


getBakedSkyTexture() ​

getBakedSkyTexture(ctx): TextureCube<unknown>

Defined in: libs/scene/src/render/sky.ts:294

Baked sky texture

Parameters ​

ctx ​

DrawContext

Returns ​

TextureCube<unknown>


invalidate() ​

invalidate(): void

Defined in: libs/scene/src/render/sky.ts:659

Force the radiance map and irradiance map to be regenerated.

Returns ​

void


update() ​

update(ctx): Vector4

Defined in: libs/scene/src/render/sky.ts:674

Parameters ​

ctx ​

DrawContext

Returns ​

Vector4


renderAtmosphereLUTs() ​

renderAtmosphereLUTs(ctx): void

Defined in: libs/scene/src/render/sky.ts:755

Parameters ​

ctx ​

DrawContext

Returns ​

void


renderSkyDistantLut() ​

renderSkyDistantLut(ctx, skybox): void

Defined in: libs/scene/src/render/sky.ts:772

Parameters ​

ctx ​

DrawContext

skybox ​

TextureCube

Returns ​

void


updateBakedSkyMap() ​

updateBakedSkyMap(ctx): void

Defined in: libs/scene/src/render/sky.ts:785

Parameters ​

ctx ​

DrawContext

Returns ​

void


renderUberFog() ​

renderUberFog(camera, depthTexture): void

Defined in: libs/scene/src/render/sky.ts:858

Parameters ​

camera ​

Camera

depthTexture ​

BaseTexture<unknown>

Returns ​

void


onDispose() ​

protected onDispose(): void

Defined in: libs/scene/src/render/sky.ts:988

Disposes resources of this SkyRenderer

Returns ​

void

Overrides ​

Disposable.onDispose


cloudSunTransmittance() ​

cloudSunTransmittance(_sunDir): Vector3

Defined in: libs/scene/src/render/sky.ts:1170

Transmittance of the cloud layer along the sun direction.

Parameters ​

_sunDir ​

Immutable<Vector3>

Returns ​

Vector3

Remarks ​

Energy-conservation counterpart of the clouds baked into the environment map: the light the cloud layer scatters into the sky dome has to be removed from the direct sun, otherwise raising cloud density only ever adds energy. This method is the seam where a future cloud renderer plugs in; a volumetric implementation should replace it with the transmittance ray-marched toward the sun (spectral, hence a Vector3).

The procedural 2D cloud has no real optical depth, so the sun direction is unused and the result is a gray-scale estimate from coverage alone. In the scatter shader, cloud opacity is smoothStep(1, 1 + cloudy, noise + cloudy): by cloudy = 1 the whole 0..1-ish fbm noise range falls inside the ramp, i.e. the sky is visually fully covered. cloudy (clamped to 0..1) is therefore used directly as the sky coverage. Squaring it accounts for thin/partial clouds at low coverage barely attenuating the sun, while full cover drops to the heavy-overcast floor SkyRenderer.CLOUD_SUN_MIN_TRANSMITTANCE.

Released under the MIT License.