ProceduralSky

Inherits: Sky < Resource < Reference < Object

Type of Sky that is generated procedurally based on user input parameters.

Description

ProceduralSky provides a way to create an effective background quickly by defining procedural parameters for the sun, the sky and the ground. The sky and ground are very similar, they are defined by a color at the horizon, another color, and finally an easing curve to interpolate between these two colors. Similarly, the sun is described by a position in the sky, a color, and an easing curve. However, the sun also defines a minimum and maximum angle, these two values define at what distance the easing curve begins and ends from the sun, and thus end up defining the size of the sun in the sky.

The ProceduralSky is updated on the CPU after the parameters change. It is stored in a texture and then displayed as a background in the scene. This makes it relatively unsuitable for real-time updates during gameplay. However, with a small enough texture size, it can still be updated relatively frequently, as it is updated on a background thread when multi-threading is available.

Properties

Color

ground_bottom_color

Color( 0.156863, 0.184314, 0.211765, 1 )

float

ground_curve

0.02

float

ground_energy

1.0

Color

ground_horizon_color

Color( 0.423529, 0.396078, 0.372549, 1 )

float

sky_curve

0.09

float

sky_energy

1.0

Color

sky_horizon_color

Color( 0.839216, 0.917647, 0.980392, 1 )

Color

sky_top_color

Color( 0.647059, 0.839216, 0.945098, 1 )

float

sun_angle_max

100.0

float

sun_angle_min

1.0

Color

sun_color

Color( 1, 1, 1, 1 )

float

sun_curve

0.05

float

sun_energy

1.0

float

sun_latitude

35.0

float

sun_longitude

0.0

TextureSize

texture_size

2


Enumerations

enum TextureSize:

TextureSize TEXTURE_SIZE_256 = 0

Sky texture will be 256x128.

TextureSize TEXTURE_SIZE_512 = 1

Sky texture will be 512x256.

TextureSize TEXTURE_SIZE_1024 = 2

Sky texture will be 1024x512. This is the default size.

TextureSize TEXTURE_SIZE_2048 = 3

Sky texture will be 2048x1024.

TextureSize TEXTURE_SIZE_4096 = 4

Sky texture will be 4096x2048.

TextureSize TEXTURE_SIZE_MAX = 5

Represents the size of the TextureSize enum.


Property Descriptions

Color ground_bottom_color = Color( 0.156863, 0.184314, 0.211765, 1 )

  • void set_ground_bottom_color ( Color value )

  • Color get_ground_bottom_color ( )

Color of the ground at the bottom.


float ground_curve = 0.02

  • void set_ground_curve ( float value )

  • float get_ground_curve ( )

How quickly the ground_horizon_color fades into the ground_bottom_color.


float ground_energy = 1.0

  • void set_ground_energy ( float value )

  • float get_ground_energy ( )

Amount of energy contribution from the ground.


Color ground_horizon_color = Color( 0.423529, 0.396078, 0.372549, 1 )

  • void set_ground_horizon_color ( Color value )

  • Color get_ground_horizon_color ( )

Color of the ground at the horizon.


float sky_curve = 0.09

  • void set_sky_curve ( float value )

  • float get_sky_curve ( )

How quickly the sky_horizon_color fades into the sky_top_color.


float sky_energy = 1.0

  • void set_sky_energy ( float value )

  • float get_sky_energy ( )

Amount of energy contribution from the sky.


Color sky_horizon_color = Color( 0.839216, 0.917647, 0.980392, 1 )

  • void set_sky_horizon_color ( Color value )

  • Color get_sky_horizon_color ( )

Color of the sky at the horizon.


Color sky_top_color = Color( 0.647059, 0.839216, 0.945098, 1 )

  • void set_sky_top_color ( Color value )

  • Color get_sky_top_color ( )

Color of the sky at the top.


float sun_angle_max = 100.0

  • void set_sun_angle_max ( float value )

  • float get_sun_angle_max ( )

Distance from center of sun where it fades out completely.


float sun_angle_min = 1.0

  • void set_sun_angle_min ( float value )

  • float get_sun_angle_min ( )

Distance from sun where it goes from solid to starting to fade.


Color sun_color = Color( 1, 1, 1, 1 )

  • void set_sun_color ( Color value )

  • Color get_sun_color ( )

The sun's color.


float sun_curve = 0.05

  • void set_sun_curve ( float value )

  • float get_sun_curve ( )

How quickly the sun fades away between sun_angle_min and sun_angle_max.


float sun_energy = 1.0

  • void set_sun_energy ( float value )

  • float get_sun_energy ( )

Amount of energy contribution from the sun.


float sun_latitude = 35.0

  • void set_sun_latitude ( float value )

  • float get_sun_latitude ( )

The sun's height using polar coordinates.


float sun_longitude = 0.0

  • void set_sun_longitude ( float value )

  • float get_sun_longitude ( )

The direction of the sun using polar coordinates.


TextureSize texture_size = 2

Size of Texture that the ProceduralSky will generate. The size is set using TextureSize.