UE4中关于利用粒子系统做轨迹描绘导致系统流畅性下降的问题

这篇具有很好参考价值的文章主要介绍了UE4中关于利用粒子系统做轨迹描绘导致系统流畅性下降的问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

UE4中关于利用粒子系统做轨迹描绘导致系统流畅性下降的问题

前言

之前在利用粒子系统实现轨迹描绘的时候,曾提出了“粒子积累后,粒子的产生是否会对系统的内存带来压力,导致系统运行越来越吃力?”的问题,当时的解决办法只是简单地减少粒子产生的频率,从而降低系统运行压力。本文围绕该问题展开一系列关于利用粒子系统实现物体轨迹描绘的相关问题。

前面两篇文章的链接如下:

虚幻引擎4利用粒子系统实现物体轨迹描绘_ADi_hhh的博客-CSDN博客

虚幻引擎4利用粒子系统实现物体轨迹描绘2- 消除轨迹_ADi_hhh的博客-CSDN博客

再次回顾该问题的原因是,在仿真中我使用了更多的粒子发射器来产生粒子,用以显示物体的轨迹。而我发现简单的延迟已经不能够满足我的要求–既能看清轨迹,又尽可能降低仿真系统的压力。因此,针对粒子系统的哪些东西影响了仿真系统的流畅性,提出了一些假设并进行了验证。

假设及验证

1. 过多的粒子发射器影响仿真系统

首先我们在粒子产生过程中也在不断地生成发射器,可能在ue中这是很愚蠢的做法。不过以我当时对虚幻引擎的了解,也只能采用这种方式产生粒子。那么自然而然我们也产生了很多”粒子发射器“,而这些粒子发射器在之后我们就不会用了,因此可能粒子发射器的数量太多了从而影响了仿真系统的流畅性。

UE4中关于利用粒子系统做轨迹描绘导致系统流畅性下降的问题,虚幻引擎,ue4,虚幻引擎,问题

验证:

因此,我在每个粒子产生后,经过一段时间就销毁对应粒子发射器,以期待降低粒子发射器对仿真系统流畅的影响。

UE4中关于利用粒子系统做轨迹描绘导致系统流畅性下降的问题,虚幻引擎,ue4,虚幻引擎,问题

但我们也应该注意到,本来粒子发射器就有”自动销毁“的设置。因此在我主动销毁粒子发射器后,系统的流畅性并没有显著的改变。

2. 粒子数目太多,降低粒子发射频率,同时增大粒子显示范围

显然,粒子随时间产生的越来越多,因此粒子数目一定是影响系统流畅的一个因素。但由于我希望看清楚轨迹,因此粒子数目在某种程度上是不能够过少的。但是如果我在降低粒子发射频率的同时增大粒子显示范围那?

恰好,粒子发射器可以设置粒子显示的范围,如下图所示。

UE4中关于利用粒子系统做轨迹描绘导致系统流畅性下降的问题,虚幻引擎,ue4,虚幻引擎,问题

验证:

增大延迟时间,同时增大”创建效果的范围“。

经过测试后,系统的流畅性有所提升,但是由于粒子数目减少,轨迹的显示效果并不佳,因此这也不是一个很好的方法。

3. 把信息输出到屏幕浪费了太多时间,导致系统流畅性变差

因为我在仿真中使用的py代码计算控制信息,并打印出来供我调试使用,但py的print是很浪费时间的。

UE4中关于利用粒子系统做轨迹描绘导致系统流畅性下降的问题,虚幻引擎,ue4,虚幻引擎,问题

因此可能是因为我在py端输出print,在ue端把信息输出到仿真过程中,浪费了时间,使得大量时间被用在这样的过程中,自然使得系统流畅性变差。

验证:

因此我尽可能地减少py端和ue端的信息输出,经过测试后,系统的流畅性有所提升,但提升不多。

4. 产生的粒子渲染使得系统压力越来越大,从而流畅性下降

因为我使用的是初学者内容中自带的几款粒子,如下图所示。

UE4中关于利用粒子系统做轨迹描绘导致系统流畅性下降的问题,虚幻引擎,ue4,虚幻引擎,问题

而这些粒子可能需要渲染,而不断地产生这样的粒子,从而导致系统性能下降。

验证:

经过不断修改粒子类型,发现,其中”P_Fire“的粒子严重影响系统的流畅性,可能系统需要针对该粒子消耗的资源比较多,而越来越多的该粒子产生,从而导致了系统的性能下降。同时发现”P_Fire“与其他的初学者粒子的信息也有所不同,可能这就是该粒子消耗资源比较多的原因。之后通过修改粒子类型,修改为我自己设计的简单粒子,系统的流畅性有着明显的提升。

UE4中关于利用粒子系统做轨迹描绘导致系统流畅性下降的问题,虚幻引擎,ue4,虚幻引擎,问题
fire粒子确实也比较逼真。
UE4中关于利用粒子系统做轨迹描绘导致系统流畅性下降的问题,虚幻引擎,ue4,虚幻引擎,问题

小结

本文通过几种假设再次解决了利用粒子系统做轨迹描绘导致系统流畅性下降的问题。不过还是能够说明粒子系统做轨迹描绘并不是虚幻引擎中的最佳选择,希望以后随着深入的了解能够实现更简单高效的方法。

注:本文中所说的仿真系统流畅性下降是仿真系统处理信息和传输信息的速度下降。

如果您觉得我写的不错,麻烦给我一个免费的赞!如果内容中有错误,也欢迎向我反馈。文章来源地址https://www.toymoban.com/news/detail-667562.html

到了这里,关于UE4中关于利用粒子系统做轨迹描绘导致系统流畅性下降的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • UE4/5Niagara粒子特效之拖尾渐变

    目录 开始操作 发射器一的制作 添加新的模块 ​编辑 让粒子长久存在 添加颜色 发射器二的制作 第三人称模板添加Niagara 效果  添加颜色  效果 隐藏第一个发射器 首先创建一个粒子系统,用Fountain这个模板: 将不需要的删除,剩下的就只有需要的初始化的东西,以及添加速

    2024年02月11日
    浏览(43)
  • UE4 导致AIMoveTo不生效的原因

       

    2024年02月10日
    浏览(33)
  • UE4/5Niagara粒子特效之Niagara_Particles官方案例:2.4->3.2

    UE4/5Niagara粒子特效之Niagara_Particles官方案例:1.1->1.4_多方通行8的博客-CSDN博客 UE4/5Niagara粒子特效之Niagara_Particles官方案例:1.5->2.3_多方通行8的博客-CSDN博客  这次的项目和之前又有很大的不同,它是由3个发射器组成的: 可以看到右边的两个发射器里面,都有一个事件处理

    2024年02月09日
    浏览(38)
  • UE4/5Niagara粒子特效之Niagara_Particles官方案例:1.5->2.3

    目录 之前的文章: 1.5 Blend Attributes by Value 发射器更新  粒子生成  粒子更新 2.1 Static Beams  ​编辑 发射器更新:  粒子生成  粒子更新 2.2 Dynamic Beams 没有开始模拟前的效果是: 开始模拟后的效果是: 发射器更新 粒子生成 ​编辑  粒子更新 2.3 Multiple Renderers  发射器更新

    2024年02月11日
    浏览(53)
  • UE4/5Niagara粒子特效之Niagara_Particles官方案例:3.3->4.3

    目录 3.3 Visibility Tag  左边的发射器: 发射器更新 粒子生成  粒子更新  右边的发射器 和左边发射器不同的地方 3.4 Texture Sampling  发射器更新  粒子生成 粒子更新 4.1Play Audio Per Particle  系统 第三个发射器 发射器更新  粒子生成  粒子更新 第二个发射器 发射器更新  粒子生

    2024年02月10日
    浏览(30)
  • UE4/5Niagara粒子特效之Niagara_Particles官方案例:1.1->1.4

    目录 1.1-Simple Sprite Emitter ​编辑 发射器更新 粒子生成 粒子更新 1.2-Simple Sprite Emitter 发射器更新   粒子生成  粒子更新 渲染 1.3-Simple GPU Emitter 属性 发射器更新   粒子生成  粒子更新 1.4-Sprite Facing  发射器更新 粒子生成  粒子更新 通过对官方案例的讲解来了解和使用Niag

    2024年02月11日
    浏览(53)
  • UE4 内存写坏导致异常崩溃问题记录

    经常出现进程崩溃,崩溃堆栈较为底层 原因基本上都是 read write memory 时触发了异常,盘查后初步怀疑是内存写坏了。 UE 支持各种内存分配器: TBB Ansi Jemalloc Stomp 还有自带的内存分配器: Binned Binned2 Binned3 可以参考文章 UE 中的内存分配器。 其中 Stomp 是引擎提供的排查内存写

    2023年04月21日
    浏览(49)
  • 利用blender为ue4动画添加根骨骼

    看教程是用3ds max为动画加根骨骼,但是我一直用的是blender(blender是真滴好用),懒得下载3ds max,在网上看了一些教程,记录一下怎么添加根骨骼。 第一步 导入fbx文件(记得导入时选择自动骨骼坐标系,这是为了骨骼位置整齐一点) 导入后记得按ctrl+a选旋转进行变换(如果

    2024年02月11日
    浏览(89)
  • UE4 材质学习 (02-利用UV来调整纹理)

    步骤: 1.在内容浏览器中新建一个材质 命名为uvTest    2.双击打开uvTest 随便将一个纹理(一种.tga格式的图片)拖入材质面板中:  3.创建如下节点并连接  4.选中 TextureCoordinate 节点,在细节面板中可以通过U平铺和V平铺两个参数来调整纹理的疏密。 比如,我将 U平铺和V平铺

    2024年02月12日
    浏览(32)
  • 在UE4蓝图中利用样条线组件(Spline)生成道路

    在场景中添加道路常用的有两种 一种是在三方建模软件(3Dmax Maya 等)建好后导入到UE中 第二种是在地形模式(Landscape)下设置地形的起伏形成道路或者做个 另一个还有“顶点绘制”,这个是给模型附加两种材质,再根据模型的顶点分布,显示一个隐藏一个,进而实现道路的

    2023年04月09日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包