1)ParticleSystem中的Culling Mode对耗时有怎样的影响
2)关于API,OpenGL和Vulkan的疑问
3)SVC分别搜集Keyword,多次搜集与单独搜集Warmup内存比较
4)Occlusion Culling能否降低Culling耗时
这是第332篇UWA技术知识分享的推送,也是《厚积薄发 | 技术分享》第二回,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术知识点,助力大家更全面地掌握和学习。
Rendering
Q:请问ParticleSystem中的Culling Mode对耗时有怎样的影响?
A:当Culling Mode设定为Automatic,将Simulation Space修改为World,或者加了一些Module,都会导致屏幕外的ParticleSystem被Culling失效,从而导致耗时增加。所以尽量使用Pause的模式,而不要使用Automatic。
本质原因是World或者其它的Module会影响粒子系统的可预测性,这样会导致没法Culling。影响因素如下:具体参考:
#unitytips: ParticleSystem Performance - Culling | Unity Blog
感谢Xuan@UWA问答社区提供了回答
Rendering
Q:想问一下,下图中所说的这个可以打完包后在游戏内动态修改吗? 还是只能在这边设置修改?
另外,目前主流是动态选择API还是只设置OpenGL?因为发现高端机,自动选择Vulkan,会出现闪屏的问题,想问问目前主流是怎样的?
A:(1)这个应该不能在游戏内动态修改,Force OpenGL启动之类的方式也需要通过命令行来操作。
可以参考:
how can i set unity opengles version at runtime, not use playersetting.SetGraphicsAPIs - Unity Forum
(2)如果是确认了上面闪屏的问题是Vulkan导致的,那可以去掉自动API,把OpenGL设置成首选项,当然也可以直接去掉Vulkan。目前国内大部分中高端手机,2017年以后安卓7以上都是支持Vulkan的。
但要说主流的话,还是建议OpenGL的,因为若是Vulkan和OpenGL这两套驱动API,支持Vulkan的一定支持OpenGL。
该回答由UWA提供
Rendering
Q:SVC分别搜集Keyword,多次Warmup会导致内存比单独搜集且一次性Warmup内存更高吗?
A:Warmup变体会导致PSS内存上升,分开搜集后分开预热变体和搜集所有变体后一次预热增加的内存基本一致。当卸载SVC后内存下降。
逐个Warmup,然后帧卸载所有SVC。Warmup单个SVC,然后卸载SVC。
感谢Xuan@UWA问答社区提供了回答
Rendering
Occlusion Culling能否降低Culling耗时?
如果项目使用了多线程渲染且开启了Occlusion Culling,通常会导致子线程的压力过大导致整体Culling过高。
由于Occlusion Culling需要根据场景中的物体计算遮挡关系,因此开启Occlusion Culling虽然降低了渲染消耗,其本身的性能开销却也是值得注意的,并不一定适用于所有场景。这种情况建议开发者选择性地关闭一部分Occlusion Culling去测试一下渲染数据的整体消耗进行对比,再决定是否需要开启这个功能。
期待更多讨论,欢迎大家转至UWA社区交流:
UWA-社区
封面图来源于网络
今天的分享就到这里。生有涯而知无涯,在漫漫的开发周期中,我们遇到的问题只是冰山一角,UWA社区愿伴你同行,一起探索分享。欢迎更多的开发者加入UWA社区。
UWA官网:www.uwa4d.com
UWA社区:community.uwa4d.com