shader 反射 水面_Unity3D Shader:卡通水面效果

这篇博客介绍了如何在Unity3D中实现卡通风格的水面效果,包括波动、水体颜色、折射和水花的制作。作者使用了Gerstner波来创建波动,并通过屏幕扰动实现折射。此外,还探讨了颜色的lerp和深度比较来赋予水体深度感。文章最后提到了未来将研究反射、SSS和动态交互等进阶效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

还有两天就要过年了,大家新年好啊,最近研究了一点水面的效果,这里附上我实现的效果,另外分享一下思路,效果还不太全面,之后继续补上

先看看目前的效果

这个效果由四个部分组成:波动,水体颜色,折射,还有水花,另外还没有做反射以及水体交互等等等等其他效果 还有很多不足,下面来分拆一下效果

波动这里直接用的Gerstner波,如果不明白的可以参考catlike coding的这一篇Waves​catlikecoding.combf2ce089e707120562b6fa4502ae8098.png

这里用了四个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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值