1) 默认画质的机型适配方案
2) Unity TempBuffer 的出处如何查看
3) Active 和 Deactive 耗时高的物体优化方式
4) 自定义 Shader 在场景烘焙光照贴图后材质变黑
UWA 问答社区:answer.uwa4d.com
UWA QQ 群 2:793972859(原群已满员)
Q:我们现在的方案是按照 CPU 性能分档来做的,不过机器性能分档还和 GPU/分辨率等相关,我们的分档和 UWA 提交测试时的机器分档就不一样。请教下大家是怎么做的?
A:个人认为没有必要死板的遵循某一准则,比如某些公司的标准中以高通的 SoC 型号的数字来分档,大于某个数字的就算第一档,但其实近两年新出的一些中端芯片综合性能已经明显高于几年前的旗舰芯片。
所以我们团队在做这个功能时,主要遵循的规则是:在满足研发/发行的强制要求的前提下,结合项目类型及性能瓶颈点,为每一个设备在帧数达标的前提下选取其能接受的最高画质。
以下举两个例子说明:
例如一些较老的使用高通 810 的机器,这一代芯片发热较严重,虽然在一些公司的标准中属于一档机,但由于经常会降频,所以我们只会将其设置成中等画质。
例如 OPPO R9 等一些较老的联发科的芯片,在实际测试中性能表现很糟糕,所以相比同年发布的同级别高通芯片,会特意将其降低一档。
在我们项目中实际分级时,分为 5 档。前面说了要尽量细致地照顾到所有机器,所以我们维护了一张表格,根据不同机器的参数将其映射到 5 档里面。
iOS 设备,主要根据其 Device Model 来划分,iOS 由于设备量很少,基本通过其型号就能预估出大概的性能范围,具体的 DeviceModel 信息网上资料很多,可以参考:https://stackoverflow.com/questions/26028918/how-to-determine-the-current-iphone-device-model
Android 设备主要根据其 GPU 型号来划分,我们主要参考:https://www.techcenturion.com/mobile-gpu-rankings
根据这个帖子中给出的评分初步整理,然后结合实际测试运行下来的情况进行微调。
另外分级中的每档的具体设置,需要具体项目具体分析,基本上主要的设置无非就是分辨率、屏幕后处理、材质精度、阴影设置、LOD 设置等等。
感谢范君@UWA问答社区提供了回答
Q:请问这些 TempBuffer 的出处从哪里可以查看呢?
A:我们是在每次 GetTemporary 的时候,把返回的 RenderTexture 的名字改掉,这样在这里显示的就是改过的名字。重灾区还是在后处理上,bloom 和 depth of field 要重点关注。
感谢王宇@UWA问答社区提供了回答
Q:对于 Active 和 Deactive 耗时高的物体优化方式是移出摄像机范围吗?
A:首先可以在 UWA 的线上测评服务中测一下目前的 Activate 和 Deactivate 的具体数据。
如果您项目发现两项相差过大(如 Activate 次数是 1W,Deactivate 次数是 1K),说明本身有很多操作是无用操作,可以通过报告下方的列表查看具体是对什么 GameObject 进行了 Activate/Deactivate 操作。
通过对比差异就可以判断哪些 GameObject 存在无用操作。对于这类问题,建议在代码里用 bool 变量记录状态,不要直接用 SetActive 或 activeSelf 等 API,其耗时影响会比较大。
对于确实需要频繁显示/隐藏的物体,尤其是 UI 组件(常见的如战斗内的 UI 血条),建议采用移出屏幕、修改 Scale、修改透明度等方式替代 SetActive 操作。具体相关案例在我们之前的直播和案例精讲中都有提到。
该回答回由 UWA 提供
Q:自定义的 Shader 在场景烘焙光照贴图后:
我们也找了一些资料,讲 Custom Shader 烘焙光照的问题,看了下他们的处理方法,就是在指定下材质的 Shader,但是很少有资料讲到这种情况的正式制作流程应该是怎样的,还有就是它的底层原理,不知道大家是否有相关的处理经验和材料呢?感谢!
A:可以按照下图中的参数设置一下 Graphics Settings 的 Shader Stripping 试一下效果。
这里会把 Lightmap 相关的 Keyword 剔除。也可以只勾选项目实际用到的 Lightmap 模式,相应的 Shader 变体会少一点。
该回答回由 UWA 提供
今天的分享就到这里。当然,生有涯而知无涯。在漫漫的开发周期中,您看到的这些问题也许都只是冰山一角,我们早已在 UWA 问答网站上准备了更多的技术话题等你一起来探索和分享。欢迎热爱进步的你加入,也许你的方法恰能解别人的燃眉之急;而他山之 “石”,也能攻你之 “玉”。