关于下雨效果
设计目的
效果:分为以下几部分:1. 雨滴从天上落下的效果;2.雨滴落到场景中地表或物体上的涟漪效果;3.雨水落到地表上的积水效果;4.昼雨夜雨效果;
实现:
1.雨滴从天上落下的效果是用粒子系统实现的;
2.雨滴到物体上的涟漪效果,是通过用涟漪效果的法线贴图混合场景物体原有的法线贴图来实现的。由于下雨效果涉及场景中几乎所有物体,具有全局性,所以通过脚本为所有有下雨效果的shader设置一个全局的涟漪效果法线贴图。这样就得到了一帧的涟漪效果。通过脚本控制间隔一定时间切换不同的涟漪法线贴图,实现下雨的动画效果。
法线贴图主要是为了增强物体表面的细节,物体顶点较少的情况下,三角形也比较少,很难模拟物体表面的很多细节,所以就用法线贴图和光照算法结合实现复杂的细节的假象。涟漪效果法线贴图的uv坐标是用物体的uv计算的,通过tiling和offset控制雨滴大小。
3.地表积水效果需要控制terrain或t4m上积水区域范围以及积水区域的颜色和法线。积水区域范围通过纹理遮罩控制,比如遮罩r通道为1,有积水效果;为0则没有。积水区域diffuse颜色通过原地表的颜色乘以较暗的积水颜色实现,积水区域高光强度比没有积水的区域低,自发光颜色通过采样天空盒的颜色得到、积水区域的法线通过原法线和世界坐标下的(0,0,1)混合得到。
4.昼雨夜雨效果通过控制环境光实现,夜雨情况下环境光较暗,昼雨情况下环境光不用太暗;
另外:可以通过脚本控制不同参数实现大雨、中雨、小雨效果。雨下的越大,积水区域越多、积水颜色越深(diffuse越接近设置的积水颜色、高光强度越弱)、积水区域越平坦、自发光越强(通过反射天空盒颜色)。雨下的越急,法线贴图切换的时间间隔越短。
水
效果:
1.
消融
效果:projector,慢慢消融,消融的边缘有从内到外的变化,类似着火边缘;透明度由消融部分向未消融部分渐渐增加;uv滚动,颜色渐变
实现:
用噪声贴图,消融值控制渐渐消融;用深浅色根据燃烧边缘厚度渐变;同样来控制透明渐变;主颜色渐变个,用脚本控制;uv滚动用脚本控制。projector的实现需要用一个clamp类型的贴图控制在指定的区域内显示。