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
Set Signature
set skyType(
val):void
Defined in: libs/scene/src/render/sky.ts:261
Parameters
val
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
Set Signature
set fogType(
val):void
Defined in: libs/scene/src/render/sky.ts:638
Parameters
val
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
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
Returns
Vector4
renderAtmosphereLUTs()
renderAtmosphereLUTs(
ctx):void
Defined in: libs/scene/src/render/sky.ts:755
Parameters
ctx
Returns
void
renderSkyDistantLut()
renderSkyDistantLut(
ctx,skybox):void
Defined in: libs/scene/src/render/sky.ts:772
Parameters
ctx
skybox
TextureCube
Returns
void
updateBakedSkyMap()
updateBakedSkyMap(
ctx):void
Defined in: libs/scene/src/render/sky.ts:785
Parameters
ctx
Returns
void
renderUberFog()
renderUberFog(
camera,depthTexture):void
Defined in: libs/scene/src/render/sky.ts:858
Parameters
camera
depthTexture
BaseTexture<unknown>
Returns
void
onDispose()
protectedonDispose():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.