ProceduralSky

Inherits: Sky < Resource < Reference < Object

根据用户输入的参数按程序生成的 Sky 类型。

描述

ProceduralSky 提供了一种方法,通过定义太阳、天空和地面的程序性参数,以快速创建一个有效的背景。天空和地面非常相似,它们是由地平线上的两种颜色以及在这两种颜色之间插值渐变曲线来定义。同样,太阳也是由天空中的位置、颜色和平缓曲线来描述。同时,太阳也定义了最小和最大的角度,这两个值定义了太阳从开始和结束的距离的平缓曲线,进而,最终定义了天空中太阳的大小。

在参数改变后,ProceduralSky 会在 CPU 上更新。它被存储在一个纹理中,然后在场景中作为背景显示。这使得它相对来说,不适合在游戏进行过程中实时更新。但,如果纹理尺寸足够小,它仍然可以相对频繁地更新,因为当多线程可用时,它是在后台线程上。

属性

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

枚举

enum TextureSize:

  • TEXTURE_SIZE_256 = 0 —- 天空纹理将为 256x128。

  • TEXTURE_SIZE_512 = 1 —- 天空纹理将为 512x256。

  • TEXTURE_SIZE_1024 = 2 —- 天空纹理将为 1024x512。这是默认大小。

  • TEXTURE_SIZE_2048 = 3 —- 天空纹理将为 2048x1024。

  • TEXTURE_SIZE_4096 = 4 —- 天空纹理将为 4096x2048。

  • TEXTURE_SIZE_MAX = 5 —- 代表 TextureSize 枚举的大小。

属性说明

  • Color ground_bottom_color

Default

Color( 0.156863, 0.184314, 0.211765, 1 )

Setter

set_ground_bottom_color(value)

Getter

get_ground_bottom_color()

地面底部的颜色。


Default

0.02

Setter

set_ground_curve(value)

Getter

get_ground_curve()

ground_horizon_color 渐变到 ground_bottom_color 的速度。


Default

1.0

Setter

set_ground_energy(value)

Getter

get_ground_energy()

来自地面的能量贡献量。


  • Color ground_horizon_color

Default

Color( 0.423529, 0.396078, 0.372549, 1 )

Setter

set_ground_horizon_color(value)

Getter

get_ground_horizon_color()

地面在地平线上的颜色。


Default

0.09

Setter

set_sky_curve(value)

Getter

get_sky_curve()

sky_horizon_color 渐变到 sky_top_color 的速度。


Default

1.0

Setter

set_sky_energy(value)

Getter

get_sky_energy()

来自天空的能量贡献量。


Default

Color( 0.839216, 0.917647, 0.980392, 1 )

Setter

set_sky_horizon_color(value)

Getter

get_sky_horizon_color()

天空在地平线上的颜色。


Default

Color( 0.647059, 0.839216, 0.945098, 1 )

Setter

set_sky_top_color(value)

Getter

get_sky_top_color()

天空顶部的颜色。


Default

100.0

Setter

set_sun_angle_max(value)

Getter

get_sun_angle_max()

太阳完全淡出消失的位置与太阳中心的距离。


Default

1.0

Setter

set_sun_angle_min(value)

Getter

get_sun_angle_min()

太阳开始从实心淡出的距离。


Default

Color( 1, 1, 1, 1 )

Setter

set_sun_color(value)

Getter

get_sun_color()

太阳的颜色。


Default

0.05

Setter

set_sun_curve(value)

Getter

get_sun_curve()

太阳在 sun_angle_minsun_angle_max 之间淡出消失的速度。


Default

1.0

Setter

set_sun_energy(value)

Getter

get_sun_energy()

来自太阳的能量贡献量。


Default

35.0

Setter

set_sun_latitude(value)

Getter

get_sun_latitude()

太阳的极坐标高度。


Default

0.0

Setter

set_sun_longitude(value)

Getter

get_sun_longitude()

太阳的极坐标方向。


Default

2

Setter

set_texture_size(value)

Getter

get_texture_size()

ProceduralSky 将生成的 Texture 的大小。该大小是用 TextureSize 来设置的。