unity 实现液体效果

本文详细介绍如何在Unity中利用Shader实现逼真的液态效果,包括用mesh填充伪造液体、移动与正弦波结合实现波动感、通过摆动增强真实度、双面渲染及透明度控制等关键步骤。
部署运行你感兴趣的模型镜像
效果图如下:
我加以完善。说一下大体思路:
用mesh填充:
用mesh伪造一个液体,仅仅渲染Line下面的mesh,o.Line = worldPosRotated.y +_FillAmount, 我们使用unity "fixed facing : VFACE", 渲染表面朝向相机为正,背对相机为负。 "return face > 0" ? FrontFaceColor : backFaceColor
移动和正弦波:
在物体移动的时候计算速度和角速度。把这个速度增加到 Wobble Float 的 X和Z。 随着时间的推移用这个值和0 做插值,并乘以正弦波,发送Sine Wave 到 Shader。 "wobble" = Math.Lerp(wobble, 0, Time.deltaTime); sinWobble = wobble Mathf.Sin(pulsetime);"
摆动:
Fill Line旋转,用World position乘以 Sine Wave 加上 world position 根据物体运动摆动"Liquid" "worldPosRotated = worldPos + (worldPosX SineX)+ (worldPosZ _SineZ);"
玻璃瓶:
把物体转换到视图空间,物体顶点坐标x,y沿着法线扩展 float2 thickness = TransformViewToProjection(mvnormal.xy); o.pos.xy += thickness * _ThickFator 双面渲染:Cull off 透明:AlphaToMask On
至此文章讲解完毕,如有不足请大家指出。都看到这里了,点赞收藏吧! 附上git上工程地址:https://github.com/lu-yu01/Unity_Shader_Demo

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值