Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
ProceduralSkyMaterial
继承: Material < Resource < RefCounted < Object
一种材质,可为 Sky 资源定义简单天空。
描述
ProceduralSkyMaterial 提供了一种通过为太阳、天空和地面定义程序参数,来快速创建一个有效背景的方法。天空和地面由主颜色、地平线颜色、以及在它们之间插值的缓动曲线定义。太阳通过天空中的位置、颜色、以及缓动曲线结束时距太阳的最大角度来描述。因此,最大角度定义了天空中太阳的大小。
ProceduralSkyMaterial 支持最多 4 个太阳,它们使用场景中前四个 DirectionalLight3D 节点的颜色、能量、方向和角距离。这意味着太阳由其相应的 DirectionalLight3D 的属性单独定义,并由 sun_angle_max 和 sun_curve 全局定义。
ProceduralSkyMaterial 使用轻量级着色器来绘制天空,因此适合实时更新。这使得它成为简单、低计算成本且不切实际的天空的绝佳选择。如果你需要更真实的程序化选项,请使用 PhysicalSkyMaterial。
属性
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
属性说明
float energy_multiplier = 1.0
🔗
天空整体亮度的乘数。数值越高,天空就越亮。
Color ground_bottom_color = Color(0.2, 0.169, 0.133, 1)
🔗
地面底部的颜色。会与 ground_horizon_color 混合。
从 ground_horizon_color 渐变到 ground_bottom_color 的速度。
float ground_energy_multiplier = 1.0
🔗
地面颜色的乘数。值越高,地面越亮。
Color ground_horizon_color = Color(0.6463, 0.6558, 0.6708, 1)
🔗
地面在地平线处的颜色。会与 ground_bottom_color 混合。
要使用的天空覆盖纹理。这个纹理必须使用一个等角投影(类似于PanoramaSkyMaterial)。 该纹理的颜色将被添加到现有的天空颜色中,并将乘以 sky_energy_multiplier 和 sky_cover_modulate。这主要适用于显示夜晚的星星,但也可以用来显示白天或夜晚的云彩(具有非物理精确性的外观)。
Color sky_cover_modulate = Color(1, 1, 1, 1)
🔗
应用于 sky_cover 纹理的色调。可用于改变天空覆盖的颜色或不透明度,不受天空能量的影响,对于昼夜转换或天气转换很有用。只有在 sky_cover 中定义了纹理时才有效。
从 sky_horizon_color 渐变到 sky_top_color 的速度。
float sky_energy_multiplier = 1.0
🔗
天空颜色的倍数。值越高天空越亮。
Color sky_horizon_color = Color(0.6463, 0.6558, 0.6708, 1)
🔗
天空在地平线处的颜色。会与 sky_top_color 混合。
Color sky_top_color = Color(0.385, 0.454, 0.55, 1)
🔗
天空在顶部的颜色。会与 sky_horizon_color 混合。
太阳完全淡出消失的位置与太阳中心的距离。
在太阳圆盘边缘和 sun_angle_max 之间,太阳消失得有多快。
如果为 true
,则启用去色带。去色带会增加少量噪点,这有助于减少天空中颜色的平滑变化而出现的色带。