Sky rendering

Korender supports several ways to render sky:

Cubemap sky

Provide 6 textures to construct a skybox cube map:

Frame {
    Sky(cubeSky(cubeTexture("sky", mapOf(
        NX to "textures/skybox-nx.jpg",
        NY to "textures/skybox-ny.jpg",
        NZ to "textures/skybox-nz.jpg",
        PX to "textures/skybox-px.jpg",
        PY to "textures/skybox-py.jpg",
        PZ to "textures/skybox-pz.jpg"
    ))))

Single-texture sky

Supply a single texture that will be projected onto the sky dome, accounting for projection distortion

Frame {
    Sky(textureSky("textures/sky.jpg"))

Procedural sky

Choose from several predefined parameterized procedural sky presets:

Frame {
    Sky(fastCloudSky(thickness = 12.0f, rippleAmount = 0.4f))

Presets:

fastCloudSky

Procedural day sky with clouds, supported parameters:

Uniform name Type Default value Description
density Float 3.0f Cloud density, 1-5
thickness Float 10.0f Cloud thickness, 0-20
scale Float 1.0f Cloud scale, 0.1-10
rippleAmount Float 0.3f Cloud high-frequency ripple amount, 0-1
rippleScale Float 4.0f Cloud ripple frequency multiplier, 1-10
zenithColor Color Color(0x3F6FC3) Sky color at zenith
horizonColor Color Color(0xB8CAE9) Sky color at horizon
cloudLight Float 1.0f Max lightness of clouds
cloudDark Float 0.7f Min lightness of clouds

starrySky

Procedural night sky with colorful stars:

Uniform name Type Default value Description
colorness Float 0.8f Star color intensity
density Float 20.0f Star density (amount)
speed Float 1.0f Star motion speed factor
size Float 15.0f Star radius factor