Particle System

原创 2015年11月17日 21:30:30

Unity的Particle System真是让人又爱又恨,爱的是能做出很多想要的效果,恨的是一些参数未开放,无法在运行时动态调整,同时它的性能也是个问题。


先耐心地看这样一个案例。

需求:在一个不规则多边形区域内生成雾扩散的效果。

要求:雾扩散的范围和浓度需要和设定的值挂钩;雾的颜色可动态改变;雾不能扩散出多边形区域。


拿到这个需求单的时候,我第一个想到的做法是Particle System,因为雾、云、火焰等通常都是用particle实现的。但由于经验不足,没想到后边尽是坑啊~


坑1: Shape相关的参数不能在运行时调整

本来想通过改变shape中的radius等参数来实现emit area的缩放,然而,Unity竟然没有开放相关接口改变这些参数。

解决方法1:

通过不断和需求方协商(或者叫斗争or撕b),决定转换一下思路,用多边形区域的particle浓度来体现数值上的变化。当然,后来因为效果问题,由近一步做了调整,比如在一个区域内设置多个发散点,通过改变StartLifeTime来调整particle覆盖的区域。


坑2: Shape - Mesh发射粒子

通过编辑多边形形状的mesh,将其应用到particle的shape中,即使用Mesh的方式发射粒子。换句话说,就是在mesh上的点or三角面上生成粒子,这样做以后,就能看到一片乌黑的雾覆盖在了一个特定区域内。然而,要实现不同shape-mesh的发射方式,就得针对每个mesh做一个particle system object,而且要根据mesh的不同,搭配不同的参数。

解决方法2:

打算通过uv动画来做雾漂移的效果。(待验证)


坑3: Shape -Mesh粒子数

要和数值吻合,如果要高浓度覆盖一片较大的区域,就需要很多的粒子(MaxParticles 10000 per Particle System),在真机上一跑就卡的不行了!

解决方法3:

打算通过uv动画来取代mesh粒子。(待验证)


坑4: Collision

Unity Manual上也说了,如果要用collision,会很慢,be wise。但我很不明智地尝试使用collision来将粒子限制在一个区域内,性能是个坑。此外,要利用particle collision让粒子在碰到collider以后就消失,需要设置几个参数。1)World 2)Dampen设为1。3)Bounce设为0。4)LifeTimeLoss设为1.

解决方法4:

减少粒子数,或者干脆不要用粒子效果。(也就是还没想出来)


罗列了一些坑,以儆效尤。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Particle system study section 1

Preview: 1.The particle system exist the phenomenon of scaling with camera viewpoint. 2.Change the...

Cesium学习笔记(十):粒子系统(Particle System)

粒子系统是Cesium1.35最新的更新,让我们一起来看看吧
  • UmGsoil
  • UmGsoil
  • 2017年08月01日 16:32
  • 346

Unity3D深入浅出 - 粒子系统(Particle System)

粒子系统是在三维控件渲染出来的二维图像,主要用于烟,火,水滴,落叶等效果。一个粒子系统由例子发射器、粒子动画器和粒子渲染器三个独立的部分组成。该文章出自【狗刨学习网】       U...
  • Carl180
  • Carl180
  • 2015年02月01日 23:24
  • 1332

Unity3D:粒子特效(Particle System)播放序列帧动画

转自:http://jingyan.baidu.com/article/f96699bbb1a0d6894f3c1b77.html 本篇教程为基础篇,针对U3D入门新手,讲解粒子系统播...

Particle System.unitypackage

  • 2016年04月29日 14:14
  • 632KB
  • 下载

QML官方教程——Using the Qt Quick Particle System

附网址:http://qt-project.org/doc/qt-5/qtquick-effects-particles.html

Particle System

  • 2013年11月10日 13:53
  • 67KB
  • 下载

Unity Particle System

新建一个物体,添加三类组件(构成理子系统) 1.Particle Emitter 2.Particle Animator 3.Particle Render 粒子发射器有两种Ellipsoid...

ogre particle system script分析

particle_system tutorial { quota 2000//设置这个系统在某一时刻所允许包含的最多粒子数 //例子系统使用的材质,此系统中的全部粒子使用相同的材质每一个粒子可以通...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Particle System
举报原因:
原因补充:

(最多只允许输入30个字)