我的 GearVR 应用程序(在 Unity 5.4 上开发)一直存在性能问题,所以我决定做一个小实验并设置最简单的场景来研究性能:
- 一个静态平面
- 一个静态立方体
- 两者都具有相同的材质:具有 8X8 单色纹理的移动无光照着色器
- 一个烘焙定向灯
- 默认最快质量设置
- 默认播放器设置保存启用 VR 和启用多线程渲染
在我的电脑上,当我查看分析器时,我得到以下配置文件:
关于您的期望:接近 4000 FPS。
然而,当我构建完全相同的场景并在我的 Galaxy S6 上运行它(使用 ETC2 GLES 3.0 纹理压缩)时,我得到了这个配置文件:
现在已经下降到大约60FPS。怎么回事?当我更深入地了解细节时,我发现绝大多数 CPU 使用时间都花在了等待 GPU 上:
然后,当我查看 GPU 使用情况时,我发现它花费了 99% 的时间来应用 GUITexture.draw:
问题是......在我的非常简单的场景中没有可怕的 GUI 纹理!我不明白这些。有人可以向我解释发生了什么以及如何减少 PC 和移动设备之间的性能差异吗?