Niagara_Advanced内容示例 4.2 Export Particle Data to Blueprint

在这里插入图片描述

粒子效果

从模拟位置不断地向外发射小球,当小球与地板发生碰撞时,会在屏幕坐上角相应地显示出一串文字,显示的是碰撞位置,此外,文字的颜色也各有不同。

Niagara蓝图部分

本例展示的是从粒子中获取数据拿到蓝图中使用,所以会有一个Actor蓝图负责处理Niagara System中传出的数据,以及一个Niagara System蓝图负责生成粒子、产生数据。

可以看到两个蓝图中都伴有非常详尽的注释,先看向Actor类蓝图。

Actor类中,主要实现两个函数:Begin Play和Receive Particle Data。Begin Play时是将自身作为参数设置到了Niagara一个名为“BpCallBackHandler”的变量里。

在这里插入图片描述

后者是一个接口事件(interface event),创建方法是进入类配置的细节面板,添加回调句柄到Implemented Interfaces中,然后右键Receive Particle Data,创建事件。

在这里插入图片描述

在这里插入图片描述

只有当有数据从粒子发出时才会调用这个事件。这里在这个事件内部,将粒子发出的结构体信息包进行了拆解,然后再在这些拆出来的数据基础上进行操作。

再进入到Niagara蓝图中,其中包含两个发射器,分别是CPU粒子发射器和GPU粒子发射器。后面一个小节我们具体看看数据是如何从Niagara流向Actor蓝图的。

在这里插入图片描述

效果实现分析

虽然说现在对CPU粒子和GPU粒子都支持数据向蓝图的流动,但是具体效果上,还是会产生些许的不同。蓝图的操作发生在CPU上,即都是在CPU某处寄存器中数据进行存和读,然后再拿到GPU去渲染出图;而GPU粒子的数据是存在GPU内存上的,需要通过一个回读过程(readback)再传回到CPU去处理,这一来一去会造成一个不可预料的延迟,即同一帧里,粒子已经到下一个位置了,而传到蓝图的数据还是前一帧或者前几帧的位置数据。这也是GPU粒子不采用CPU粒子碰撞而采用距离场或者深度缓冲等做法的原因——因为如果还把GPU数据传回到CPU去计算碰撞,粒子可能早就飞出不知道多远了。

还记得上文中提到,Actor类蓝图中在BeginPlay设置了一个Niagara变量,这个变量:

在这里插入图片描述

这个变量在模块Export Particle Data to Blueprint中作为回调句柄参数,其余被传输的数据包含有两个vector和一个scaler数据。将现在的这个模块翻译一下,就是在碰撞发生时(CollisionValid),延迟0.1s,将粒子位置、粒子颜色和0组成一个数据包,通过BPCallbackHandler将包发送到蓝图。

在这里插入图片描述

回到Actor类蓝图,这里的Data即是一帧内同时受到的多个数据包,后面的操作就是循环解压,将包里的信息展开成两个vector和一个scaler。

在这里插入图片描述

总结

本例的内容在实际中非常有用,比如说喷发的火山和玩家的交互等等。它对我更多的启发是关于内存方面的思考,即CPU内存到GPU内存,再回到CPU,以及这中间产生的消耗和时间,也让我意识到GPU粒子的局限。当然,技术在进步,也会有相应的优化技术出现以弥补缺陷,毕竟以后GPU粒子会越来越称为主流。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: 《niagara_4_developercourse_labexercises.pdf》是一份关于Niagara 4开发者课程实验练习的PDF文件。Niagara 4是特尔斯控制系统公司开发的一款用于建筑自动化的软件平台,旨在提供集成管理各种设备和技术的解决方案。这份文件可能包含了一系列实验练习,旨在帮助学习者掌握Niagara 4的开发和配置技巧。 这些实验练习可能涉及不同的主题,包括系统架构、设备配置、图形界面设计、数据收集与分析等。学习者可能需要按照指导进行一系列的实验任务,通过实践来熟悉Niagara 4的各项功能和工具。这些实验练习可以帮助学习者了解如何使用Niagara 4平台来创建自定义的控制策略、设置定时任务、监视和控制设备,以及收集和分析数据等。 通过完成这些实验练习,学习者可以获得对Niagara 4开发和配置过程的实际经验,并加深对系统的理解。这份文件可能包含了实验指南、示例代码、实验结果分析等各种信息,以便学习者能够按照指导顺利完成实验任务。 总之,《niagara_4_developercourse_labexercises.pdf》是一份提供Niagara 4开发者课程实验练习的文件,通过完成其中的实验任务,学习者可以提高他们在Niagara 4平台上开发和配置的能力。 ### 回答2: niagara_4_developercourse_labexercises.pdf 是一份开发者课程实验练习的文档。 这份文档主要是针对Niagara 4开发者课程中的实验练习而编写的。Niagara 4是一种基于Tridium公司的框架和平台,用于建立和管理建筑自动化系统。开发者课程旨在帮助开发人员深入了解Niagara 4的功能和特性,并提供实践的机会来掌握其开发技术。 在这份文档中,会列出一系列的实验练习,帮助开发者逐步学习和实践Niagara 4的开发过程。每个实验练习都会有详细的步骤和指导,包括设置环境、创建项目、编写代码等等。开发者需要按照文档的指示一步步地完成每个实验,同时还需要理解实验的目的和背景。 这份文档的目的是帮助开发者通过实践加深对Niagara 4的理解和掌握。通过每个实验的完成,开发者可以逐步提升其在Niagara 4开发方面的技能。实验的内容涵盖了不同的主题和技术,包括系统建模、设备接入、数据处理等等。 总之,niagara_4_developercourse_labexercises.pdf 是一份Niagara 4开发者课程的实验练习文档,通过实践完成每个实验,开发者可以逐步提升其在Niagara 4开发方面的能力和技术。 ### 回答3: "niagara_4_developercourse_labexercises.pdf" 是一个文件名,可能是一个包含关于 Niagara 4 开发者课程实验练习的 PDF 文件。 在这个文件中可能包含了一些与 Niagara 4 开发相关的实验练习,供开发人员使用。该 PDF 可能包含了一些说明、指导或教程,以帮助开发人员学习和实践 Niagara 4 系统的开发技术。这些实验练习可能涉及到创建和配置 Niagara 4 网络、开发自定义应用程序、编写 Niagara 4 控制程序等。 对于想要学习并使用 Niagara 4 技术的开发人员来说,这个文件应该是一个很有用的资源。通过完成其中的实验练习,开发人员可以加深对 Niagara 4 系统的理解,掌握相关的开发技能,并在实际项目中应用这些技能。 需要注意的是,为了更好地利用这个文件,开发人员可能需要先了解基本的 Niagara 4 系统知识和开发概念。此外,建议开发人员按照文件中的顺序逐个完成实验练习,以获得更好的学习效果。 总而言之,“niagara_4_developercourse_labexercises.pdf” 是一个帮助开发人员学习 Niagara 4 系统开发技术的实验练习文件,对于想要学习并应用 Niagara 4 的开发人员来说是一份有价值的资源。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Claude的羽毛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值