unity模块切换_Unity小技巧:粒子系统性能-剔除(转)

本文介绍了Unity中粒子系统性能优化的策略,特别是程序化模式和剔除技术。程序化模式允许在粒子系统不可见时停止更新以节省性能,但当受到外部影响如脚本变更或碰撞模块时,程序化模式会失效。自定义剔除通过CullingGroup实现,可以在不影响视觉效果的情况下提高性能,但需权衡粒子的静止状态。
摘要由CSDN通过智能技术生成

马上注册,加入CGJOY,让你轻松玩转CGJOY。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

只有在系统行为可以被预测时才能使用剔除。

开启一个模块不仅会影响这个模块的开销,而且可能由于从程序化的模块切换为非程序化的模式而影响到整个系统的开销。

通过脚本改变的值将不会被剔除。

使用自定义的剔除可以提供性能上的优势,但只有开发人员才能判断是否适合。需要考虑特效类型,玩家是否会注意到在它们不可见时动画停止了,以及是否可以预测影响的区域?

程序化模式

每个粒子系统都有两种执行模式,程序化和非程序化。

程序化模式下可以知道粒子系统在任意时间的状态(无论过去还是将来),但是非程序化系统中这些都是不可预测的。这意味着可以将程序化系统在任何时刻快进(或回退)到任意位置。

当粒子系统处于所有相机的范围之外时,它将被剔除。这种情况出现时,程序化系统会停止更新。当粒子系统重新可见时它将快进到新的时刻。非程序化的系统则无法这样做,即使是不可见时它也必须持续更新系统,因为它是不可预测的。

举个例子,下面的系统是可预测的。它位于本地坐标系中,所以粒子系统的位移无关紧要,粒子系统不受例如碰撞、触发器或者风之类的外力影响。这意味着可以计算出粒子系统生存周期的边界(黄色边框),并且可以安全地将其在不可见的时候剔除。

1.gif (253.11 KB, 下载次数: 2)</

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值