位置: 编程技术 - 正文

VectorField2D

编辑:rootadmin

推荐整理分享VectorField2D,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

这篇来说移植自Flash的2D向量场粒子效果

静态效果可能不太明显,动态效果就好多了,简单说就是有点像AE的粒子特效插件那种感觉了

视频演示

点击打开链接Unity工程创建,版本4.6.4f1,平台Windows 7 位,dx9版本新建两个Quad

一个命名为Canvas,设置如图

另一个命名为NoiseMap,设置如图

新建3个材质,其中两个为Unity3D的类型为Unlit/Texture的材质,分别叫MatNoise和MatCanvas,分别赋给相对名称的Quad对象

另一个材质命名为MatShaderImageFade,使用自定义的淡出shader,ImageFade

建立Resources目录,导入我们准备好的noise贴图属性同上节Read/Write Enable打勾,Non Power of 2 选择None,为了让效果更好建议用Flash的perlinnoise生成,当然你也可以在ps中手动画,然后注意在过度处模糊一下效果比较好

这张图乍一看完全不明白要搞什么飞机,实际上我们要把他的颜色信息作为方向向量,这样这张彩色的rgb图就成了一张3D的向量场图,但是我们这个例子只用他的2D信息,只要其中两个方向,我使用rg两个通道

实际向量场图类&#;下面这张图

VectorField2D

让我们把VectorField2D脚本先挂到相机上,设置如图,这里我们用x的分辨率

代码部分比较简单,初始化之后每帧调用更新粒子函数updateAllParticles。updateAllParticles遍历所有粒子,并且按粒子当前坐标位置找到对应noise贴图中像素&#;,把这个相素&#;转成加速度,注意0-是负&#;,-是正&#;,然后乘上一些缩放系数,更新粒子坐标,做一个屏幕wrap,超出屏幕的粒子会从另一边转回屏幕中

最后把粒子坐标写入一个canvasData这个Texture2D贴图中,也就是当前帧粒子的渲染图。

之后对canvasData做一个淡出效果shader只是不断的减弱透明度而已,略

这时我们已经得到一个带有拖尾效果的向量场粒子效果了

此时效果还不是特别炫,想要更炫还要加些后处理特效,发挥你的想象,我这里给相机加了个Glow效果,参数设置如图

最后你可以根据自己机器配置调节粒子数量和Glow程度,我的笔记本大概能跑粒子,数量越多效果越好

工程下载

百度网盘,Unity3D>Experiment>VectorField2D

点击打开链接

【Unity3d】System.IO.FileInfo Create 和 Delte方法找不到错误 System.IO.FileInfoCreate和Delte方法找不到错误解决方法!今天写着写着,好端端的文件,突然冒出这么个错误,我的天!查了下MSDN,发现没错!最后发现是平

Unity3d NGUI的使用(九)(UIScrollView制作滑动列表) 转载自:UIScrollView制作滑动列表,可横向,竖直展示一些列表在固定可视范围内UIScrollVIew只是一个可滑动的UI组件如果需要制作复杂的可视区域UI需要配

NGUI之UIScrollView对齐 转载自:

本文链接地址:https://www.jiuchutong.com/biancheng/378720.html 转载请保留说明!

上一篇:unity3d在线更新资源(2)(unity3d最新api)

下一篇:【Unity3d】System.IO.FileInfo Create 和 Delte方法找不到错误(unity system)

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络