本来已经实现了海岛奇兵的海水,但总觉得差点意思。(海岛奇兵海水地址:https://blog.csdn.net/yxriyin/article/details/78708040)
打算进一步优化一下。
顶点着色器并不需要变化(以后打算加入波动模型,但现在暂时不考虑,因为是在很远的地方看海)
片段着色器我首先想的是增加一张法线贴图,用来模拟海浪的波纹,因为海盗奇兵是波光,而不是波纹,所以看上去稍微有点呆板。
float4 offsetColor = (tex2D(_BumpTex, i.bumpCoord + float2(_WaterSpeed*_Time.x * 0.5, 0)) + tex2D(_BumpTex, float2(1 - i.bumpCoord.y, i.bumpCoord.x) + float2(_WaterSpeed*_Time.x * 0.3, 0))) / 2;
half2 offset = UnpackNormal(offsetColor).xy * _Refract;
float4 bumpColor = (tex2D(_BumpTex, (i.bumpCoord + offset) + float2(_WaterSpeed*_Time.x * 0.5, 0)) + tex2D(_BumpTex, (float2(1 - i.bumpCoord.y, i.bumpCoord.x) + offset) + float2(_WaterSpeed*_Time.x * 0.3, 0))) / 2;
float3 Normal = UnpackNormal(bumpColor).xyz;
color = _PureColor * _Pure + (1 -_Pure) * color;
color.rgb = color.rgb * 1