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.