Unity的天空盒,不够动态,要支持天气系统渐变的话,必须要改进,让天空盒梦幻一些.
我的shader的高画质处理有个multi_compile开关叫_FANCY_STUFF,从Unity官方的某个shader看到的,这个名字我很喜欢,梦幻.
天空盒我主要实现了以下几个功能:
1.天空盒可以水平旋转
为什么要水平旋转呢,因为我自定义了一个太阳(月亮),旋转可以让他们和天空盒背景图更加匹配.甚至,你可以慢慢旋转天空盒来模拟云层的移动...
2.实现了太阳(月亮).
程序实现的太阳,有个好处就是可以移动位置,还可以调节大小和颜色.发出的光芒还可以影响天空盒的颜色,实现原理就是根据天空盒像素和世界原点的距离来决定太阳颜色亮度,几何上的意义就是天空盒的立方体和一个距离为半径的球体的相交,自然就产生了一个圆形太阳的形状.
3.从下到上的高度雾
雾可以影响天空,还是从下到上的高度雾.如下图,紫色的雾从下到上:
4.天空盒背景图无缝切换
天气系统的需要,比如从白天慢慢变到晚上.太阳变成了月亮,背景云层也改变了.原理就是两个天空盒贴图的混合过渡.
5.太阳光晕效果
太阳可以被collider遮挡,如果没挡住,就产生光晕
<