粒子效果

从中心点向上发射粒子,粒子的运动有向上的初速度以及向下的重力,同时粒子运动伴随着拖尾效果和以该运动中的粒子为中心的粒子迸发效果,像是一颗燃烧着的带着尾巴的流星划过。

Niagara蓝图部分

本例的核心——Niagara中的事件系统(Events)。虽说是目前仅支持CPU粒子,但是以Niagara发展的趋势来看,可见的将来GPU中的替代方案也很快会被完善起来。回到Events这里,事件需要有发出者和接收者(即文档中的Event Generators和Event Receivers)。简单来讲,就是接收者将自己注册到相应的事件中,当发出者发出信息后,事件集中的这些事件对其做出适当的响应。

效果实现分析

本身的这个粒子喷泉的效果还是比较简单的,只需要一个有向上分量的初速度(Add Velocity in Cone),以及重力即可。(写在负责生成事件的Emitter里)

比较关键的是下面的一个功能模块——Generate Location Event,它会生成一个位置事件发送到接收方。EventCondition就是字面意思,即生不成成这个事件,是一个布尔量,当然也可以动态得去调控(比如我写个公式进去,当然暂时还没必要搞得复杂);Event Send Rate代表每秒发射(Event)的次数,越高的话,接收方获得的数据就越频繁,当然效果就会越精确,越低的话,效果就会相对而言没有那么精确,这二者之间的平衡与调控,就是经验和创造力的体现了。

此外有一个点还需要注意,Generate Location Event需要去读Particle.ID这个属性,需要在Emitter Properties中手动打开。

来到接收方,注意这里有两个接收方Emitter,分别对应了拖尾和子粒子。事件接收方粒子发射器的构建方法是:添加Event Handler(事件处理器),其自带一个Event Handler Properties用来调控事件接收器基本属性,如监控哪一个发射器中的哪一个事件、生成具体多少的粒子(代替了之前的Spawn Rate或者是Burst Spawn)等等。此外还需要添加Receive Location Event来具体接受响应的事件并作简单处理(拿到位置、速度等等属性),如是否继承传来事件的粒子的速度等等。

当然通过事件拿到的属性还是相对有限的,如图

总结

事件系统在逻辑编程中也是重要的一部分,是属于性能优化的重要部分,它可以系统免于去做每帧的检测(Unity的Update,UE4的Tick)。这里CPU无法被GPU取代的原因我可以大概分析一下,就是即便是在CPU粒子中,EmitterUpdate的工作依旧是CPU在做,通过事件而做的spawn即是代替了这一部分的工作,而在GPU中是没有办法去监听GPU粒子的事件的(除非是为它单独定制一块寄存器?),因而这个部分的粒子只能采用CPU的。

Niagara内容示例 2.4 Location Events相关推荐

  1. Niagara内容示例 4.3 Mesh Orientation vs. Rotational Force

    粒子效果 有三竖列的粒子,都在绕某个轴进行旋转.根据下面的文本提示来看,应该是每堆粒子的旋转操作的赋予方式不同,分别是直接操作网格体朝向(Mesh Orientation),操作旋转的速度(Rotat ...

  2. Niagara内容示例 4.1 Play Audio Per Paticle

    粒子效果 中间的圆环粒子旋转,同时伴有音效,音效和旋转速度有着一定的关联.同时会不时得发射出一些sprite粒子,有红蓝两种颜色.红色粒子不受重力,但是受到明显的阻力影响,当期运动速度小到一定程度后( ...

  3. Niagara内容示例 2.2 Dynamic Beam

    粒子效果 从向着一个方向生成条带,条带沿着某个轴在旋转,类似于舞蹈演员表演的条带舞. Niagara蓝图部分 蓝图中文字介绍少了很多-不过起码说清了一件事,就是Ribbon Renderer条带渲染器 ...

  4. Niagara内容示例 2.6 Collision

    粒子效果 可以看到有三种粒子:绿色粒子,蓝色粒子和橘黄色粒子,这三种粒子都会与场景中的球体和地板发生碰撞.另外橘黄色小粒子是绿色粒子发生撞击后从绿色粒子上迸发出来的. Niagara蓝图部分 该例子使 ...

  5. 学习Cascade粒子系统:观察内容示例所展示的特性

    目标 内容示例中有展示粒子特效的场景: 目标是观察场景中几个范例想要展示的是粒子系统的哪个功能,并尝试了解如何操作.需要注意的是:由于并没有实际用资源复现一遍,所以很可能有疏漏之处,即有些效果的实现还 ...

  6. js动态改变下拉菜单内容示例 .

    <HTML><HEAD><TITLE>动态改变下拉菜单内容示例</TITLE></HEAD><SCRIPT LANGUAGE=java ...

  7. python用方括号提取字符中的数值_Python使用re模块正则提取字符串中括号内的内容示例...

    Python使用re模块正则提取字符串中括号内的内容示例 本文实例讲述了Python使用re模块正则提取字符串中括号内的内容操作.分享给大家供大家参考,具体如下: 直接上代码吧: # -*- codi ...

  8. python爬去新浪微博_Python爬虫爬取新浪微博内容示例【基于代理IP】

    Python爬虫爬取新浪微博内容示例[基于代理IP] 发布时间:2020-09-07 10:08:14 来源:脚本之家 阅读:120 本文实例讲述了Python爬虫爬取新浪微博内容.分享给大家供大家参 ...

  9. Python使用re模块正则提取字符串中括号内的内容示例

    Python使用re模块正则提取字符串中括号内的内容示例 这篇文章主要介绍了Python使用re模块正则提取字符串中括号内的内容,结合实例形式分析了Python使用re模块进行针对括号内容的正则匹配操 ...

最新文章

  1. 在centos6.4下安装python3.5
  2. 人生,是一种无法抗拒的前进
  3. Drools 规则语言详解(上)
  4. 常用软件滤波算法---摘自:FeoTech
  5. 密码学系列之:memory-bound函数
  6. Rx:4-[编外篇] .NET4里的Concurrent Collections
  7. 树莓派安装python3.5_一树 - 神奇宝贝百科,关于宝可梦的百科全书
  8. vue项目动态设置浏览器标题title两种方法
  9. html鼠标可拖动窗体,javascript div 弹出可拖动窗口
  10. dede采集过滤规则
  11. Camera--(7)手机双摄像头原理及产业解析
  12. 《Wireshark数据包分析实战(第2版)》目录—导读
  13. LeetCode 力扣 算法题解 1109. 航班预订统计(Corporate Flight Bookings) n 个航班,它们分别从 1 到 n 进行编号,请返回每个航班预定的座位总数。
  14. 流氓软件与“强奸文化”
  15. [转]90后准程序员写给前辈们的一封…
  16. OpenCV实践之路——使用imread()函数读取图片的六种正确姿势
  17. 时代不同了,CPU至少要4核了
  18. remote: HTTP Basic: Access denied fatal: Authentication failed
  19. ios利用正则表达式判断手机号码格式是否正确
  20. 第三届全国大学生算法设计与编程挑战赛个人银首——>金奖

热门文章

  1. linux系统不定时黑屏设置,显示屏不定时黑屏,
  2. Git上传代码到云仓库
  3. crystalreport 水晶报表设置首页不显示页码
  4. 石头T6、浦桑尼克M7MAX和科沃斯T5扫地机横评,应该怎么选?
  5. mybatisplus分页之Page
  6. 【2020年高被引学者】 吴佳俊 斯坦福大学
  7. 数据结构——基础知识
  8. Spring Boot 集成 Flyway 实现数据库版本控制
  9. 网站PHP框架之Laravel5.5(十二)使用Seeder方式向数据库填充数据
  10. webrtc M66 android 端实现屏幕共享功能