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
,则启用去色带。去色带会增加少量噪点,这有助于减少天空中颜色的平滑变化而出现的色带。