如何知道游戏中不同型号GPU带宽的瓶颈

1)如何知道游戏中不同型号GPU带宽的瓶颈
​2)​Unity如何避免文字单字成行
3)如何检测部分安卓机型是否支持GPU Instance
4)如何筛选重复动画


这是第344篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术知识点,助力大家更全面地掌握和学习。

Performance

Q:游戏中的带宽可以用各种工具获取,但如何知道不同型号GPU的带宽瓶颈是多少呢?

当带宽到达多少时,会出现发热和降频的情况?这个可以通过计算得出吗?还是只能是一个经验数值?

A:CPU、 GPU或Bandwidth等都可能发热。

优化这些就只能是预留帧率,比如预留35%的性能,供散热Idle。比方说,目标帧率为30,那你可能至少要能渲染到40帧,这样差不多能保证30帧的效果。

感谢[email protected]@UWA问答社区提供了回答


Script

Q:请问在Unity中,如何避免文字单字成行?在手游审核中,不能单字成行。

比如下面这个:
“文字换
行。”

这个“行”,是不允许出现的。请问有什么可行方案吗?

A1:写个小工具,全局扫描游戏内文本,根据换行符分割,然后去掉标点符号,一个字的把来源和内容都筛出来,导一份日志提单给策划。审核需要那就必须改了。

感谢你相信光吗@UWA问答社区提供了回答

A2:或者从源头上调整,直接让策划控制字数。

感谢NG週@UWA问答社区提供了回答


Platform

Q:我游戏内部分资源使用了插件GPU Instancer(对GPU Instance的封装、剔除部分用的ComputerShader)。

在大部分手机上效果都是Ok的,但是有一些玩家反应说,他们的设备上显示不出来。

我就特意加了Log,并用SystemInfo.supportsInstancing做了一下判断,发现返回结果是True,输出的是:
SystemInfo.graphicsDeviceName = Adreno(TM) 650
SystemInfo.graphicsDeviceType = Vulkan

并且我问了一下,其中一个玩家的设备用的是联想Y700,还有一个是一加的9R,这些都是符合GPU Instance要求的。安卓版本也足够高,一个是11,一个是13。

理论上只要是满足ES3.1的机型都应该支持,主要是我现在不知道用什么判断当前机型是否支持,且“SystemInfo.supportsInstancing”这个判断不出来。

请问有同学有相关的经验么? 就是为什么有些设备无法使用GPU Instance?或者用什么办法可以判断出来这些呢?

A:也有可能是机型不支持Compute Shader。可以分别做Demo,找一些云真机测试一下。

感谢[email protected]@UWA问答社区提供了回答


Resource

Q:现有重复动画筛选的需求背景,即clipA和clipB重复,美术当时做了一份然后拷贝复制重命名了,怎么把这两个识别出来?

我的想法:反序列化解析通过Curve的Keyframe信息对比,但是有些动画有好几MB,数据信息量多,请问有更好的办法么?

A:建议使用MD5对比。

感谢野生西瓜@UWA问答社区提供了回答

封面图来源于网络


今天的分享就到这里。生有涯而知无涯,在漫漫的开发周期中,我们遇到的问题只是冰山一角,UWA社区愿伴你同行,一起探索分享。欢迎更多的开发者加入UWA社区。

UWA官网:www.uwa4d.com
UWA社区:community.uwa4d.com

 

你可能感兴趣的:(厚积薄发,Unity优化,游戏,Performance,Script,Platform,Resource)