关于Unity粒子系统优化,你可能遇到这些问题
原文链接:https://blog.uwa4d.com/archives/QA_ParticleSystem-1.html
关键字
粒子系统合批
Q1:我们在UWA报告中看到有拼合粒子系统和未拼合粒子系统,请问如何拼合粒子系统?有没有什么规则呢?
粒子系统的Draw Call动态拼合与半透明物体的动态拼合机制相当(粒子基本都是半透明材质)。而对半透明物体,由于其渲染顺序的限制(必须从后向前渲染,以保证渲染结果的正确性),动态拼合只能对渲染顺序相邻且材质相同的物体有效。而在决定半透明物体的渲染顺序时,Unity首先会按Shader中的RenderQueue进行排序;其次(相同RenderQueue时),会根据每个半透明物件到屏幕的距离,距离大的优先渲染。
因此,需要尽可能地将相同材质的粒子系统放在比较接近的深度下,才能更多地使动态拼合生效。但通常由于相机的运动、粒子系统的分散分布等原因造成粒子系统之间的穿插,能够动态拼合的数量往往都是很少的,所以我们在粒子系统模块看到的开销分布通常类似该图,主要都是未拼合粒子系统造成。
该问题来自UWA问答社区,如您对该问题仍有疑问,可以转至社区进行进一步交流。 https://answer.uwa4d.com/question/58d4cad871d7683a3cc948b4
Q2:在Unity开发中,大规模使用粒子特效会有什么问题 ?如何去针对性的优化?
普遍来说,会造成Draw call高、渲染开销大、CPU高等问题。下图就是UWA性能诊断系统对粒子系统检测的几个注意点。
Q3:如下图,我们在Unity 5.3.0中使用粒子系统时会触发一个ParticleSystem.Geometryjob的操作,并且该操作十分消耗CPU,请问怎么解决?
该问题来自UWA问答社区,如您对该问题仍有疑问,可以转至社区进行进一步交流。 https://answer.uwa4d.com/question/58d4bf7a71d7683a3cc948ac该问题已经确认是Bug,且已在Unity 5.3.2中修复。
开发者需要关注下自己的开发版本,5.3.2以前类似情况的项目可以参考一下。
相关文章
- .Net 性能优化--缓存--内存缓存
- 关于架构优化和设计,架构师必须知道的事情
- 使用UWA GOT优化Unity性能和内存
- 【ANDROID游戏开发十五】关于ANDROID 游戏开发中 ONTOUCHEVENT() 触屏事件的性能优化笔记!
- 深入介绍Java中的锁[原理、锁优化、CAS、AQS]
- MySQL内核月报 2015.01-MySQL · 性能优化· 启用GTID场景的性能问题及优化
- MySQL规格列表(硬件优化上限)
- 关于 SAP 产品 UI 的搜索引擎优化 SEO - Search Engine Optimization
- 基于象鼻虫损害优化算法求解装箱问题问题(Matlab代码实现)
- 【状态估计】基于二进制粒子群优化 (BPSO) 求解最佳 PMU优化配置研究【IEEE30、39、57、118节点】(Matlab代码实现)
- 混合动力电动车优化调度与建模(发动机,电机,电池组等组件建模)(Matlab代码实现)
- 改进花朵授粉算法的无线传感器网络部署优化(Matlab代码实现)
- GaussDB(DWS)性能调优:indexscan导致的性能问题识别与优化
- 智能优化算法应用:基于麻雀搜索优化K-means图像分割算法 - 附代码
- 智能优化算法应用:基于GWO优化的二维最大熵图像阈值分割 - 附代码
- 智能优化算法:人工兔优化算法-附代码
- 一种优化局部搜索能力的灰狼算法 -附代码
- 淘宝在hbase中的应用和优化
- 关于SQL优化的几点说明