还有两天就要过年了,大家新年好啊,最近研究了一点水面的效果,这里附上我实现的效果,另外分享一下思路,效果还不太全面,之后继续补上
先看看目前的效果
这个效果由四个部分组成:波动,水体颜色,折射,还有水花,另外还没有做反射以及水体交互等等等等其他效果 还有很多不足,下面来分拆一下效果
波动这里直接用的Gerstner波,如果不明白的可以参考catlike coding的这一篇Wavescatlikecoding.com
这里用了四个wave来合成,这里为了方便查看,我增加了wave的强度,平静的水面并不需要这么大的强度
下面在实现水体颜色,这里的实现思路和制作护盾的思路是一样的,都是像素深度和深度图深度做比较
vert
output.positionSS = ComputeScreenPos(output.positionCS);
frag
float2 screenUV = input.positionSS.xy / input.positionSS.w;
float var_depth = SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, sampler_CameraDepthTexture, screenUV);
float d