EN

# 应用性能提升

良好的性能是保证用户拥有自然舒适的VR体验的关键因素。我们提供了一些可以优化奇遇VR应用的方法,供开发者参考。

首先,使用Unity Profile (opens new window) / 奇遇性能工具来获取CPU/GPU性能指标,确定应用运行效率是受限于CPU计算还是受限于GPU渲染。然后就可以有针对性的进行优化。

提示:Unity Profile可以直接显示CPU时间。如果CPU时间接近每帧时间(72 FPS意味着每帧渲染13.9毫秒),那么应用程序是受限于CPU的,否则是受限于GPU的。

# 1. CPU 优化

# 1.1 场景及资源优化

  • 避免在视野内放置过多的物体、高多边形模型
  • 每帧少于100,000个三角形或顶点
  • 每帧少于100个draw calls
  • 使用压缩的纹理格式,并合成场景中使用的多个纹理,以便批处理共享纹理。
  • 批处理Draw call (opens new window):
  1. 动态批处理:对于足够小的网格,Unity会将许多相似的顶点分组在一起,并一次性绘制它们
  2. 静态批处理:将静态(不移动的)游戏对象组合成大网格,并以更快的方式渲染它们
  • 优化脚本,降低代码、算法的复杂度
  • 避免不需要的交互和物理计算

# 1.2 渲染优化功能

  • 选择Single Pass.

# 1.3 推荐的工程配置

  • Scripting Backend: IL2CPP
  • Target Architectures: ARM64

# 2. GPU 优化

# 2.1 场景及资源优化

  • 尽量使用更高效的Unity mobile shader

  • 光照

  1. 尽可能避免使用实时照明和反射特效,优先采用烘焙贴图
  2. 尽量减少光照特效
  3. 光源数量控制在50个以内
  • 谨慎使用实时阴影特效
  • 粒子系统的数量控制在50以内
  • 尽量减少半透明材质的渲染数量

# 2.2 渲染优化功能

  • 使用注视点渲染并选择合适的等级
  • 设置RenderTexture缩放系数小于1,推荐使用0.7,最好不要低于0.6,否则会影像画质
  • 如果场景中静态模型数量较多,建议开启遮挡剔除 (opens new window),降低被渲染对象个数,从而降低每帧渲染时间。

# 2.3 推荐的质量配置

  • Pixel Light Count: 1
  • Anisotropic Textures: Per Texture
  • Anti Aliasing: 低于4x
  • Soft Particles: Disable
  • Real time Reflection Probes: Disable
  • Billboards Face Camera Position: Disable

# 3. 功耗优化

奇遇系统统一管控CPU、GPU资源和频率,保障应用的稳定运行。开发者可通过以下途径优化应用的功耗,确保用户体验。

# 3.1 场景及资源优化

  • 尽量降低纹理图片尺寸
  • 优化shader性能,可参考Unity提供的优化指南:https://docs.unity.cn/2020.3/Documentation/Manual/SL-ShaderPerformance.html
  • 推荐使用ogg、mp3格式的音频资源
  • 优化视频资源,比如编码格式、码率、分辨率等要素

# 3.2 推荐的工程配置

  • Texture Compression:ASTC