PhysicalSkySource class Lighting and environment
A physically based daylight sky: an analytic single-scattering atmosphere (Rayleigh and Mie terms) with an HDR sun disk, producing plausible day, sunset, and twilight skies from a sun direction.
A built-in ShaderSkySource, so it works everywhere a custom sky does:
assign it to Scene.skybox for the visible background and to
Scene.skyEnvironment (or bake with EnvironmentMap.fromSky) to light
the scene from it. Fields are plain properties read every frame; animate
sunDirection for a day-night cycle (the visible sky updates immediately,
the lighting per the binding's refresh policy). The model is closed-form
(no ray march), so the per-frame background draw stays cheap.
Like every Geometry and Material constructor, construct only after
Scene.initializeStaticResources completes.
- Inheritance
-
- Object
- SkySource
- ShaderSkySource
- PhysicalSkySource
Constructors
Properties
- energy ↔ double
-
Overall intensity multiplier.
getter/setter pair
- fragmentShader ↔ Shader
-
The full-screen sky fragment shader, typically loaded from a
.shaderbundle.getter/setter pairinherited - groundColor ↔ Vector3
-
The color below the horizon.
getter/setter pair
- hashCode → int
-
The hash code for this object.
no setterinherited
- mieCoefficient ↔ double
-
Strength of aerosol (Mie) scattering, the haze around the sun.
getter/setter pair
- mieColor ↔ Vector3
-
Wavelength tint of the Mie term.
getter/setter pair
- mieEccentricity ↔ double
-
Forward-scattering eccentricity of the Mie term (0 = uniform,
approaching 1 = tightly forward around the sun).
getter/setter pair
- rayleighCoefficient ↔ double
-
Strength of molecular (Rayleigh) scattering, the blue of the sky.
getter/setter pair
- rayleighColor ↔ Vector3
-
Wavelength tint of the Rayleigh term.
getter/setter pair
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- sunAngularRadius ↔ double
-
Angular radius of the sun disk, in radians. The physical sun is about
0.0047; the larger default reads better at typical field of views.
getter/setter pair
- sunDirection ↔ Vector3
-
Direction toward the sun (world space; normalized when used).
getter/setter pair
-
textureNames
→ Iterable<
String> -
All currently-bound sampler names, in insertion order.
no setterinherited
- turbidity ↔ double
-
Aerosol density. Higher values read hazier.
getter/setter pair
-
uniformBlockNames
→ Iterable<
String> -
All currently-bound uniform block names, in insertion order.
no setterinherited
- useEnvironment ↔ bool
-
Whether the engine binds the active environment's IBL textures
(
prefiltered_radiance,brdf_lut) when the shader declares them.getter/setter pairinherited
Methods
-
bind(
RenderPass pass, HostBuffer transientsBuffer, EnvironmentMap environment) → void -
Binds the fragment's uniform blocks, textures, and (when
useEnvironment) the environment IBL samplers. Called by the engine
during the background draw; not part of the app-facing API.
override
-
getTexture(
String name) → Texture? -
Reads back a previously-set texture binding, or
nullwhen none is set.inherited -
getUniformBlock(
String name) → ByteData? -
Reads back a previously-set uniform block, or
nullwhen none is set.inherited -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
setTexture(
String name, Texture? texture, {SamplerOptions? sampler}) → void -
Assigns a texture to a sampler uniform by name. Pass
nullto clear it.inherited -
setUniformBlock(
String name, ByteData? bytes) → void -
Assigns the byte contents of a uniform block by name.
bytesmust match the block's std140 layout; passnullto clear the binding.inherited -
setUniformBlockFromFloats(
String name, List< double> floats) → void -
Convenience wrapper around setUniformBlock that packs a list of floats.
The caller is still responsible for std140 padding.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited