必威体育Betway必威体育官网
当前位置:首页 > IT技术

Unity给小鳄鱼洗澡2D流体水实现

时间:2019-10-23 13:13:31来源:IT技术作者:seo实验室小编阅读:85次「手机版」
 

给鳄鱼洗澡

在这里插入图片描述

在这里插入图片描述

核心思路:

第一种

  • 双摄像机,Camera1用来渲染除了水之外的对象,Camera2只用来渲染水
  • 在OnRenderImage函数中对Camera2进行后处理,也就是对水的效果进行处理,让水有融合的效果
  • 如果不用粒子的话,用一个精灵当作水的最小单位,给精灵对象添加Collider2D与Rigidbody2D组件,建一个物理材质,把水的摩擦力和弹力都设置为0

第二种

  • 双摄像机,Camera1用来渲染除了水之外的对象,Camera2只用来渲染水
  • 把两个摄像机都结果存储到Target Texture中
  • 首先,用一个shader对Camera2的RT进行处理,实现融合效果,然后叠加两张RT
  • 和第一种一样,需要添加碰撞器和刚体组件

摄像机设置:

第一种方式的摄像机设置

在这里插入图片描述

在这里插入图片描述

对于第二种方式来说,设置好layer(或者摄像机的位置和视锥体远近截面位置,确保两个摄像机值看到自己需要看到的对象即可),然后为Target Texture设置RT。

水滴融合shader

在我的博客两滴水融合实现通过模糊和阈值的方式实现了两滴水的融合。

在这里插入图片描述

这种方式在这次并不适用,在assets Store中有一个2D流体的包,里面用个更简单的算法来达到水融合效果。

float4 frag (v2f i) : SV_Target
			{
				float4 col = tex2D(_MainTex, i.uv);
				if(col.a>0.1){
				col.a=0.5;
				col.b=floor((col.b*10)*0.5)*0.5;
				return col;
				}
				col=(0,0,0,1);
				return col;
			}

其中,核心语句为

col.b=floor((col.b*10)*0.5)*0.5;

用来确保水有类似上图的边缘过渡,用Matlab可以很方便的查看函数的效果

在这里插入图片描述

在这里插入图片描述

下载

大家可以下载2d流体包研究一下

https://pan.baidu.com/s/16tfc655aX81bctXI6Omvkw

提取码:ew0u

在这里插入图片描述

文章最后发布于: 2019-03-04 08:04:00

相关阅读

WSDL详解

WSDL文档使用web服务描述语言来定义服务。 文档包括逻辑(抽象)部分和具体部分。 抽象部分用于定义独立于实现的数据类型和消息,具体

Android8.1HAL层开发

本文基于Android8.1源码。这里介绍的是一种简单HAL的写法与调用。我将会编写一个app直接调用HAL的接口,而HAL层代码将直接读写驱动

Facebook是如何获得20亿用户的?答案是“科学”和“共情

一支NB的增长团队成就了20亿用户的Facebook。昨天下午,扎克伯格表示有超过650名学生已经注册使用了thefacebook.com,这个数字有望在

CEFR:学生英语能力水平的评价标尺

在当前的社会,从小让孩子学习英语、培养孩子的英语交流能力已经不是一件新鲜的事情。过去,不管是家长让孩子在校外英语培训还是孩

2018 NBI商业影响力年度人物五十强榜单:图普科技CEO李

12月18日,“未来之秩·2018NBIAwards年度影响力评选颁奖盛典”在北京丽都皇冠假日酒店隆重举行。图普科技创始人

分享到:

栏目导航

推荐阅读

热门阅读