话不多说,先上图…

完整原码地址:

https://blog.csdn.net/ww1351646544/article/details/104917031
2022年02月07日补充:
https://download.csdn.net/download/ww1351646544/79578284
继说明和原码说明后仍有部分小伙伴不明白,可以此下载Demo进行参考。

需求:

1.液体效果可变色。
2.液体透明有折射效果。
3.适应各种容器形状。
4.随移动幅度进行抖动。

实现思路:

一、水平面的实现
这个是比较简单的,设定一定的高度,有超过此高度的则进行一个片原舍弃。但片元的高度的本地的坐标,真实对比的高度是世界坐标,因此这里需要有一个坐标的转换的操作。
设定一个值即当前点的裁剪的世界坐标高度,由外面的脚本传进来。
然后每个片元高度转成世界坐标与之对比,决定是否舍弃。
注意:要关掉背面片元裁剪,否则从上往下看时候,背面会不完整。

二、适应种容器
复制一个容器作为液体、把他缩小至比容器本身略小即可,用于放置这个液体Shader。

三、液体的左右抖动
以中心点的X值为基准,用当前点的X减去中心点的X可以得到一个距离(这个距离有正有负),这个距离用于影响问题一中的水平面高度。由外面传进来一个抖动的值(有正有负的)来影响这个抖动的幅度,正负用于控制抖动的方向,从而实现液体抖动的效果。

四、抖动的幅度计算(这部分用C#代码实现)
每次移动会把每帧的位置记录在lastPos中,并在数组中记录每一次的lastPos,再把当前位置赋给lastPos,直到lastPos等于当前位置,并置数组中有位置记录(这说明物体被移动过并移动完闭),这时算得数组中的所有记录平均值,可以得知这次移动的快慢,用于得到抖动的幅度。
浮动的左右摇摆用正弦波实现,幅度逐渐消弱。

核心代码:

//与中心点距离(_LevelOfWaterOffsetScale是有正负值的摆动比例)
float centerDistance = (worldPos.x -_LevelOfWaterX)*_LevelOfWaterOffsetScale;//波动值影响裁剪高度
float heightOffset = _LevelOfWaterY +centerDistance;//高于指定高度则裁剪
if(worldPos.y>heightOffset)clip(-1);

欢迎大家交流指正:QQ:262319244
希望能有更好的实现方式与我交流,同时征集液体水的实现思路,如下图:

Shader实现瓶内液体效果相关推荐

  1. Shader实现瓶内液体效果(原码)

    继上一篇:Shader实现瓶内液体效果 https://blog.csdn.net/ww1351646544/article/details/98632525 私聊我同朋友还是不少,为了能和大家一起学 ...

  2. Unity Shader学习:Dissolve消融效果

    Unity Shader学习:Dissolve消融效果 消融效果在游戏里非常常用,这里简单的实现下,代码里用到了if分支在shader里可能会费一点,如果想直接用puppet_master大佬版本的话 ...

  3. CSS如何实现内凹角效果 By 大漠

    记得@Lea Verou的<CSS Secrets>一书和前几天@Chris Coyier刚发的帖子都介绍了CSS怎么实现元素斜切口的效果.我也尝试着借助Vue的能力,把这种效果构建成一个 ...

  4. Unity Shader 之 简单 护盾Shield 效果的实现

    Unity Shader 之 简单 护盾Shield 效果的实现 目录 Unity Shader 之 简单 护盾Shield 效果的实现 一.简单介绍 二.实现原理

  5. Ae 内置效果控件(合集)

    有关 Ae 内置效果控件的说明,Adobe 官网提供了较详细的文档.但,MediaTea 仍然对所有内置效果的说明进行了重新编撰,主要目的是: 1.更便于查询,尤其便于使用手机进行快速查询. 2.关键 ...

  6. CSS如何实现内凹角效果

    特别声明:此篇文章内容来源于@ANA TUDOR翻译的<Scooped Corners in 2018>一文. 记得@Lea Verou的<CSS Secrets>一书和前几天 ...

  7. 网站关键词优化在短期内见到效果的方法

    网站关键词优化可以让更多的用户快速查到网站关键词,进入网站从而达成交易,那么如何让网站关键词优化在短期内见到效果呢? 1.对网站进行调整 当我们接手一个缺乏优化网站时,首先要对网站进行一个检测,比如要 ...

  8. 液体效果,制作喷溅的液态裙子教程

    牛奶裙子在很多广告中出现过,制作方法并不难.过程:首先按裙子的构造及层次,用钢笔工具分段抠出:然后简单的调色,并用滤镜做出液体效果:最后用喷溅素材融合到裙子边缘并处理好局部明暗即可. 最终效果 PSD ...

  9. html怎么设置凹陷效果,如何在css中实现圆角内凹效果

    如何在css中实现圆角内凹效果 发布时间:2020-07-22 09:22:57 来源:亿速云 阅读:122 作者:Leah 这期内容当中小编将会给大家带来有关如何在css中实现圆角内凹效果,文章内容 ...

最新文章

  1. 《切入口web教学——使用firebug调试css代码》录制完成
  2. 邓俊辉数据结构学习-3-栈
  3. 如何在网页标题栏title加入icon图标?
  4. 无法访问此网站localhost 拒绝了我们的连接请求_官方教程丨如何在IPFS上创建托管个人网站?...
  5. 搭建完全分布式的hadoop
  6. Docker学习总结(63)——容器并不能解决一切问题
  7. screen乱码问题
  8. Eight Queens UVa 750
  9. Java连接mysql数据库的方式_java连接MySQL数据库的方式
  10. 西安后宰门小学_【云端论坛】走向未来的墙中老校 ——后宰门小学“名校+”教育集团云论坛精彩绽放...
  11. 神器 mimikatz - 直接抓取 Windows 明文密码
  12. 基于SpringBoot+Vue开发的一个知识社区分享平台
  13. latex与word之间的各种转化方法
  14. Python 数据可视化的 3 大步骤,你知道吗?
  15. brew对redis的使用
  16. 比较(==、equals、Comparable、Comparator)
  17. 聊天框 contenteditable 上传图片及贴图
  18. Python 随机生成双色球
  19. 淘宝引力魔方复制后怎么移除?有什么优势?
  20. ADC DAC时钟域杂散串扰

热门文章

  1. Siemens HEEDS MDO 2021.1.1 x64
  2. 创业者对融资有哪些要求
  3. JAVA该如何学?学习JAVA应该掌握哪些技术?
  4. 纯css实现边框动画特效 css
  5. 一张图掌握提高共情力掌握的工具方法
  6. Ichimoku Kinko Hyo
  7. 雪糕数据告诉你,东北网红变身魔都名媛拢共分几步
  8. 基于MATLAB的Floyd算法
  9. 记录:微星 GE63 屏轴断裂 之后。。。
  10. 算法 PK 猫咪 | 章鱼保罗后继竟然是只猫? 1