HDSky

Enumerations

HDCloudsRenderMode
Values:
  • Panorama = 0 - The sky will be pre-rendered into a panorama. Applying it each frame is much cheaper than performing full volumetric rendering. It’s a good option when the camera in your game isn’t going to fly through the clouds or at large distances. This is the default mode.

  • Volumetric = 1 - Full volumetric rendering of the clouds. It’s a good but costly option for when the clouds are part of your scene and not only background.

HDStrataCloudsType
Values:
  • Simple = 0 - Simple stratosphere clouds.

  • FeatherSparse = 1 - Feather-shaped sparse stratosphere clouds.

  • FeatherDense = 2 - Feather-shaped dense stratosphere clouds.

Structures

HDSky_clouds_handle

struct HDSky_clouds_handle

Properties:

HDSky_clouds_handle.seed: int
HDSky_clouds_handle.seed =(value: int)

Random seed for the clouds pattern. By default it’s -1, which means the seed is generated randomly for each game launch.

Arguments:
  • value : int

HDSky_clouds_handle.renderMode: HDCloudsRenderMode
HDSky_clouds_handle.renderMode =(value: HDCloudsRenderMode)

Rendering mode for volumetric clouds. See HDCloudsRenderMode enum description for details.

Arguments:
HDSky_clouds_handle.layers: HDSky_clouds_layers_handle
HDSky_clouds_handle.form: HDSky_clouds_form_handle
HDSky_clouds_handle.lighting: HDSky_clouds_lighting_handle
HDSky_clouds_layers_handle

struct HDSky_clouds_layers_handle

HDSky_clouds_layers_handle.length(): int

def length : function<(self:hd_sky_component::HDSky_clouds_layers_handle const):int const>

HDSky_clouds_layers_handle.push(): HDSky_clouds_layers_elem_handle

def push : function<(var self:hd_sky_component::HDSky_clouds_layers_handle):hd_sky_component::HDSky_clouds_layers_elem_handle>

HDSky_clouds_layers_handle.pop()

def pop : function<(var self:hd_sky_component::HDSky_clouds_layers_handle):void>

HDSky_clouds_layers_handle.clear()

def clear : function<(var self:hd_sky_component::HDSky_clouds_layers_handle):void>

HDSky_clouds_layers_handle.insert(pos: int): HDSky_clouds_layers_elem_handle

def insert : function<(var self:hd_sky_component::HDSky_clouds_layers_handle;pos:int const):hd_sky_component::HDSky_clouds_layers_elem_handle>

Arguments:
  • pos : int

HDSky_clouds_layers_handle.erase(pos: int)

def erase : function<(var self:hd_sky_component::HDSky_clouds_layers_handle;pos:int const):void>

Arguments:
  • pos : int

HDSky_clouds_layers_handle.[](index: int): HDSky_clouds_layers_elem_handle

def HDSky_clouds_layers_handle.[]

Arguments:
  • index : int

HDSky_clouds_layers_elem_handle

struct HDSky_clouds_layers_elem_handle

Properties:

HDSky_clouds_layers_elem_handle.startHeight: float
HDSky_clouds_layers_elem_handle.startHeight =(value: float)

Altitude in kilometers at which the cloud layer begins.

Arguments:
  • value : float

HDSky_clouds_layers_elem_handle.thickness: float
HDSky_clouds_layers_elem_handle.thickness =(value: float)

Vertical extent of the cloud layer in kilometers. It works as a scaling factor and as a height extent for clouds volumetric textures. The actual thickness of clouds highly depends on other parameters provided in here.

Arguments:
  • value : float

HDSky_clouds_layers_elem_handle.density: float
HDSky_clouds_layers_elem_handle.density =(value: float)

Optical density of the clouds in range [0, 1]. Higher values produce thicker, more opaque clouds with sharper light gradients.

Arguments:
  • value : float

HDSky_clouds_layers_elem_handle.coverage: float
HDSky_clouds_layers_elem_handle.coverage =(value: float)

Fraction of the sky covered by clouds in range [0, 1]. At 0 the sky is clear; at 1 clouds fill the entire layer.

Arguments:
  • value : float

HDSky_clouds_layers_elem_handle.volume: float
HDSky_clouds_layers_elem_handle.volume =(value: float)

Cloud shape type in range [0, 1]. Low values produce thin, wispy clouds; high values produce tall, dense cumuliform clouds.

Arguments:
  • value : float

HDSky_clouds_layers_elem_handle.volumeVariance: float
HDSky_clouds_layers_elem_handle.volumeVariance =(value: float)

Spatial variation in cloud shape type across the layer in range [0, 1]. Higher values mix thin and dense cloud forms within the same layer.

Arguments:
  • value : float

HDSky_clouds_layers_elem_handle.frequency: float
HDSky_clouds_layers_elem_handle.frequency =(value: float)

Horizontal spatial frequency of cloud cells. Lower values produce larger, widely-spaced clouds; higher values produce smaller, denser patterns.

Arguments:
  • value : float

HDSky_clouds_form_handle

struct HDSky_clouds_form_handle

Properties:

HDSky_clouds_form_handle.extinction: float
HDSky_clouds_form_handle.extinction =(value: float)

Extinction coefficient controlling how opaque cloud matter is in range [0, 1]. Lower values let more light pass through, producing thin translucent clouds. Higher values create dense, shadowed interiors.

Arguments:
  • value : float

HDSky_clouds_form_handle.shapeNoiseScale: float
HDSky_clouds_form_handle.shapeNoiseScale =(value: float)

Base scale of the 3D noise used to shape cloud boundaries. Higher values produce more detailed, fine-grained cloud edges.

Arguments:
  • value : float

HDSky_clouds_form_handle.erosionNoiseScale: float
HDSky_clouds_form_handle.erosionNoiseScale =(value: float)

Scale of the high-frequency detail noise that erodes cloud boundaries. Higher values produce finer erosion.

Arguments:
  • value : float

HDSky_clouds_form_handle.epicness: float
HDSky_clouds_form_handle.epicness =(value: float)

Controls the vertical development and drama of cloud shapes in range [0, 1]. At 0 clouds are flat and uniform; at 1 they develop pronounced vertical towers and anvil structures.

Arguments:
  • value : float

HDSky_clouds_form_handle.worldSize: float
HDSky_clouds_form_handle.worldSize =(value: float)

Scale of the repeating weather pattern that determines where clouds form.

Arguments:
  • value : float

HDSky_clouds_form_handle.turbulenceStrength: float
HDSky_clouds_form_handle.turbulenceStrength =(value: float)

Strength of wind turbulence applied to cloud shapes. You can set negative values to invert the swirling direction.

Arguments:
  • value : float

HDSky_clouds_form_handle.turbulenceFrequency: float
HDSky_clouds_form_handle.turbulenceFrequency =(value: float)

Spatial frequency of the turbulence pattern. Higher values produce finer, more rapid swirling distortions.

Arguments:
  • value : float

HDSky_clouds_form_handle.cumulonimbusShapeScale: float
HDSky_clouds_form_handle.cumulonimbusShapeScale =(value: float)

Shape noise scale used specifically for cumulonimbus (thunderstorm) clouds. Higher values produce more detailed storm cell structures.

Arguments:
  • value : float

HDSky_clouds_form_handle.cumulonimbusCoverage: float
HDSky_clouds_form_handle.cumulonimbusCoverage =(value: float)

Fraction of the sky covered by cumulonimbus (thunderstorm) clouds in range [0, 1]. These are tall, anvil-shaped storm clouds added on top of the regular cloud layers.

Arguments:
  • value : float

HDSky_clouds_form_handle.strataAmount: float
HDSky_clouds_form_handle.strataAmount =(value: float)

Density of the high-altitude strata cloud layer in range [0, 1]. Strata clouds are thin, sheet-like clouds at high altitude that add a subtle haze layer above the volumetric clouds.

Arguments:
  • value : float

HDSky_clouds_form_handle.strataAltitude: float
HDSky_clouds_form_handle.strataAltitude =(value: float)

Altitude in kilometers of the strata cloud layer.

Arguments:
  • value : float

HDSky_clouds_form_handle.strataType: HDStrataCloudsType
HDSky_clouds_form_handle.strataType =(value: HDStrataCloudsType)

Visual style of the strata cloud texture. See HDStrataCloudsType enum description for details.

Arguments:
HDSky_clouds_lighting_handle

struct HDSky_clouds_lighting_handle

Properties:

HDSky_clouds_lighting_handle.ambientDesaturation: float
HDSky_clouds_lighting_handle.ambientDesaturation =(value: float)

Amount of desaturation applied to ambient light inside clouds in range [0, 1]. Reduces the colored-sky tint visible in shaded cloud interiors.

Arguments:
  • value : float

HDSky_clouds_lighting_handle.msContribution: float
HDSky_clouds_lighting_handle.msContribution =(value: float)

Relative weight of higher-order multiple scattering bounces in range [0, 1]. Higher values brighten the overall cloud volume more uniformly, including lit faces. Lower values produce darker, more contrast-heavy clouds.

Arguments:
  • value : float

HDSky_clouds_lighting_handle.msAttenuation: float
HDSky_clouds_lighting_handle.msAttenuation =(value: float)

Controls how quickly extinction decreases for successive scattering orders in range [0, 1]. Lower values allow multiply-scattered light to penetrate deeper into the cloud, brightening shadowed interiors and giving clouds a softer, more translucent appearance. Higher values keep the interior darker.

Arguments:
  • value : float

HDSky_atmosphere_handle

struct HDSky_atmosphere_handle

Properties:

HDSky_atmosphere_handle.groundColor: float3
HDSky_atmosphere_handle.groundColor =(value: float3)

Average color (albedo) of the ground surface. Affects the color of light reflected from the ground back into the sky, visually affecting shadowed areas of the clouds and atmospheric fog.

Arguments:
  • value : float3

HDSky_atmosphere_handle.mediaTint: float3
HDSky_atmosphere_handle.mediaTint =(value: float3)

Color tint of the aerosol medium (dust, moisture, pollution particles).

Arguments:
  • value : float3

HDSky_atmosphere_handle.mediaDensity: float
HDSky_atmosphere_handle.mediaDensity =(value: float)

Density of aerosol particles in the atmosphere. Controls overall haziness: higher values produce thicker haze, stronger sun glow, and more attenuation of distant objects.

Arguments:
  • value : float

HDSky_atmosphere_handle.mediaAbsorption: float
HDSky_atmosphere_handle.mediaAbsorption =(value: float)

How much the aerosol particles absorb light rather than scatter it. At 0 all attenuated light is scattered (bright milky haze). Higher values add absorption that darkens the medium without adding glow, and also reduces the directional sharpness of the sun halo.

Arguments:
  • value : float

HDSky_atmosphere_handle.mediaHeight: float
HDSky_atmosphere_handle.mediaHeight =(value: float)

Controls how quickly aerosol density falls off with altitude. Lower values concentrate haze near the ground; higher values spread it higher up. The final value is additionally multiplied by atmosphereHeight.

Arguments:
  • value : float

HDSky_atmosphere_handle.atmosphereTint: float3
HDSky_atmosphere_handle.atmosphereTint =(value: float3)

Color tint of the Rayleigh scattering medium (air molecules). Controls the color of the clear sky. Default white produces the natural blue sky.

Arguments:
  • value : float3

HDSky_atmosphere_handle.atmosphereDensity: float
HDSky_atmosphere_handle.atmosphereDensity =(value: float)

Density of the Rayleigh scattering medium. Higher values produce a denser sky with more aerial perspective; lower values make it thinner and darker, approaching a space-like look.

Arguments:
  • value : float

HDSky_atmosphere_handle.atmosphereHeight: float
HDSky_atmosphere_handle.atmosphereHeight =(value: float)

Controls how quickly atmosphere density falls off with altitude similar to the aerosol medium layer. Also multiplies mediaHeight.

Arguments:
  • value : float

HDSky_atmosphere_handle.ozoneImpact: float
HDSky_atmosphere_handle.ozoneImpact =(value: float)

Influence of the ozone layer on sky color in range [0, 1]. The ozone layer absorbs yellow-green wavelengths, so higher values make the sky appear bluer at twilight.

Arguments:
  • value : float

Classes

HDSky : NativeComponent

This component provides control over sky properties in HD Renderer.

The sky in HD Renderer simulates planetary atmosphere and clouds based on Earth atmosphere properties. So the default settings represent a clear day with a blue sky and some clouds, although they can be tweaked to get broad range of different looks. Read field descriptions for details.

You can use a node with HD Renderer component in it to set the panorama center or an offset for clouds.

To use this component, add the following line to your project file:

require engine.core_components.hd_sky_component // or require engine.core

Usage example:

let renderSettings = create_render_settings()
add_component(renderSettings, new HDSky())
get_component(renderSettings) $(var sky : HDSky?) {
    sky.atmosphere.mediaDensity = 0.3
    sky.atmosphere.atmosphereTint = float3(0.7, 0.85, 1.0)
    sky.clouds.layers[0].startHeight = 0.5
    let secondLayerHandle = sky.clouds.layers.push()
    secondLayerHandle.startHeight = 1.5
    secondLayerHandle.thickness = 6.0
    secondLayerHandle.coverage = 0.5
}
Properties:

HDSky.clouds: HDSky_clouds_handle
HDSky.atmosphere: HDSky_atmosphere_handle
HDSky.customSky: MaterialId
HDSky.customSky =(value: MaterialId)

Allows setting a custom material as a sky source.

Arguments: