此着色器可实现各类 Hosek-Wilkie 天空辐射模型,包括直接太阳辐射函数。您可以将其插入到环境中,或插入到天穹灯光的颜色输入(得益于高效的重要性采样,向太阳附近的明亮区域发送更多光线),也可以将其直接添加为环境着色器。当前,此着色器对 GI 漫反射和镜面反射光线不可见。要将其用作光源,您必须将其连接至 skydome_light,并设置足够的分辨率来捕捉较小的太阳圆盘。
这是一个实验性的着色器。尽管经过了广泛测试,但在用于生产环境时还是要小心谨慎。
如果在动画期间出现闪烁,很可能是因为 skydome_light 分辨率太低而无法捕捉太阳。尝试增加 skydome_light 的分辨率。
物理天空使用极坐标系。仰角的角度介于 0 到 180 度之间(日出到日落)。90 度时,太阳位于天顶。方位角的角度介于 0 到 360 度之间。
浑浊度确定空气中的总体气溶胶含量(灰尘、湿气、冰、雾)。可以使用它轻松定义天空外观,而且它会影响太阳和天空的颜色。
浑浊度值范围为 1 到 10:
2:产生类似于北极地区非常晴朗的天空。
3(默认值):温和气候下的晴朗天空。
6:温暖、潮湿天气下的天空。
10:稍微有点雾蒙蒙的天空。
![]() |
![]() |
![]() |
0 | 3(默认值) | 5 |
从地球表面反射回大气的灯光量。这是一个介于 0 和 1 之间的 RGB 值,其中 0 0 0 对应于黑色地面,而 1 1 1 对应于白色地面。请注意,这是一个细微的效果(在下图顶部边角较为明显)。
![]() |
![]() |
0.1(默认值) | 1 |
太阳与可观测到的地平线之间的角度。范围介于 0 到 180 度(90 到 180 度是 0 到 90 度的镜像反射)之间。
![]() |
![]() |
太阳仰角:0 到 48 度(方位角 0 到 360 度) | 太阳仰角:0 到 20 度 |
太阳绕地平线的角度。从北方开始度量,并朝东方逐渐增加(0 到 360 度)。
“强度”(Intensity)是天空辐射的标量倍增。此值类似于 *sky_tint。但是,*sky_tint 使用 RGB 值,而“强度”(Intensity)使用标量值(更易于调整)。
![]() |
![]() |
1(默认值) | 3 |
用于设置一种颜色对天空颜色进行染色。天空染色应该用于小幅度细微着色调整。例如,让天空具有稍微深一点的蓝色。
![]() |
![]() |
白色(默认值) | 蓝色 |
用于设置一种颜色对太阳颜色进行染色。这是用于小幅度细微着色调整的 RGB 倍增。大幅度着色调整将产生物理上不准确的结果,并会导致太阳与天空颜色不一致(除非两种染色完全相同)。
![]() |
![]() |
白色(默认值) | 黄色 |
设置可见太阳圆盘的大小。可以出于“美感”方面的考虑更改太阳大小。但是,0.51 是从地面观测时太阳的立体角(度)。增加此值会增加太阳的面积大小,进而产生更加柔和的阴影。
![]() |
![]() |
0.51(默认值) | 5 |
启用/禁用太阳可见性的切换开关。
![]() |
![]() |
启用(默认) | 禁用 |
启用/禁用天空可见性的切换开关。
![]() |
![]() |
启用(默认) | 禁用 |
两个 physical_sky 灯光(一个禁用了 enable_sky )
在某些情况下,更改 physical_sky 的方向可能会很有用。例如,将场景上方向映射到 +Z 而不是 +Y。
使用玻璃曲面和 physical_sky 着色器渲染场景时,可能会出现高亮杂点。它们是由连接到背景 的 physical_sky 中明亮的太阳圆盘造成的。解决方法是将另一个 physical_sky 连接到已禁用 enable_sun 的背景。
![]() |
![]() |
physical_sky 中的太阳导致出现高亮杂点 | 针对“环境”(Environment) -> physical_sky 禁用“太阳圆盘”(Sun Disc) |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
更多示例