性能分析器性能分析其可以让你了解游戏中每帧渲染的时间开销, 并通过处理器渲染内存音频物理和网络进行分项显示执行性能测试时, 了解性能分析器, 找到需要优化的方面非常重要 帧调试器 使用帧调试器可以让你冻结任意帧的反馈, 进入每个单独的 Draw Call 以检查场景构建的过程, 并找到那些需要优化的位置从中你可以找到那些对无需渲染对象进行的渲染操作, 从而极大的帮助降低每帧的 Draw Call 数 VR 优化基础 优化是一个内涵丰富的领域, 包含了多方面的知识, 需要对每种目标平台和工程单独考虑在此, 我们列出不同的兴趣点以便于深入阅读 In general, existing optimisation techniques carry over well into VR development, so existing knowledge can often be applied. 一般来说, 已有的优化技术可以照搬到 VR 开发中去, 因此既有优化知识通常是可以复用的 几何体 移去 VR 场景中永不可见的几何体表面, 不要为不可见的东西浪费宝贵的渲染资源如: 靠墙放置的柜子的背面是不可见的, 那么我们就无需在模型中为其建立几何表面 尽可能简化几何网格, 根据目标发布平台采取增加纹理提高细节, 使用视差贴图或曲面细分的技术, 虽然这会对性能造成影响, 也可能无法适用于或根本不能用于你的目标发布平台
遮挡绘制 Overdraw 面板可以让你看到那些绘制在别的物体之前 (上) 的物体, 遮挡绘制会导致 GPU 时间的浪费优化时应考虑尽最大可能减少遮挡绘制的数量可以在场景视图中使用打开它
细节级别 细节级别渲染能减少距离摄像机较远的游戏物体需要渲染的三角形数量只要游戏物体不是同时出现在摄像机附近, 通过添加 LOD 组件并为距离摄像机较远的游戏物体指定精度较低的网格模型组, LOD 就能降低对硬件设备的负载并提高渲染性能 使用可以自动为大部分游戏资源进行 LOD 预处理
Draw Call 批处理 尽可能使用静态批处理或动态批处理的来批处理 Draw Call 调用, 这可以大幅度增加游戏性能可以查看 Unity 指南进行学习 光照贴图 尽可能削减动态光照而使用烘焙得到光照效果, 避免使用 光线探测 对场景中某点的光照进行取样并将其应用于动态物体上, 执行速度较快, 通常能获得很好的视觉效果 反射探测 存储了周围环境的立方体贴图从而获得真实的反射, 反射探测会显著影响游戏性能请注意实时的反射探测速度很慢目前还无法应用于 VR 中 遮挡剔除 遮挡剔除关闭了对不可见物体的渲染例如, 房门关闭无法看到室内情形时根本无需渲染另一间屋子 能否实现遮挡剔除取决于游戏项目要求和其目标平台, 但是遮挡剔除可以极大的提高性能 抗锯齿 抗锯齿能够平滑图像并减少其上的锯齿边缘, VR 非常依赖抗锯齿技术如果你使用正向渲染, 可以考虑在, 对于 Gear VR 你应该总是确保打开了该设置 纹理 通常, 你会在项目中大量使用, 并减少单个纹理和材质的使用 为了简化和加速这个过程, 可以用 MeshBaker 进行纹理网格以及材质的烘焙以提高游戏的性能 Holden from Turbo Button 公司在 Oculus Connect 2 上有关于 的讨论 注意: VR 中法线贴图的效果一般不佳, 因此应尽量避免使用如果想得到更多关于纹理的信息也请访问 着色器 尽可能多的使用基本着色器在 Gear VR 上, 尽可能多使用计算代价低廉的 Mobile > Unlit (Supports Lightmap) 着色器, 也可以用它进行场景的光照贴图 全屏效果 全屏效果的运算代价高昂, 在 Gear VR 上应尽量避免使用 质量设置 质量设置决定了游戏视觉质量的各个方面修改这些参数以获得游戏性能与视觉效果间的平衡 渲染规模 修改会在清晰度和性能之间进行平衡, 欲获得更多这方面信息和例子可以参考我们的文章
异步加载 你可能会考虑将游戏分解到不同的场景中来提高游戏性能, 如果你确定要这样做, 要小心处置加载下一场景时对头部带来的追踪停滞, 因为这会导致眩晕 为了帮助解决该问题, 你可能需要在使用异步的加载下一场景时创建一个具有头部运动追踪的加载界面 例子场景中用到的优化技巧 我们已经在例子场景中应用了一系列优化技巧以保证它们同时能在 Gear VR 和 DK2 上高效运行 由于要将同样的工程部署在不同平台上, 我们以最低硬件配置为目标; 此时就是 Gear VR 啦, 我们选择低精度艺术风格, 仅仅依靠一些基本颜色来实现物品在环境中的突出显示 菜单场景的优化 和其他所有的场景一样, 使用低精度资源并关闭实时光源 在菜单面板上使用了一个名为 SeparableAlpha 的自定义着色器, 该着色器能够为图片序列单独定义α通道这样, 一些帧就不需要α通道的信息了这样既减小了文件的大小, 又消除了一些图片边缘的锯齿 在 Flyer 场景中使用了雾效果以保证生成的物体不会突然出现在视野中, 降低了视野距离以减少需要渲染的游戏对象数量 降低流星物体的顶点数, 这样就可以使用来减少 DrawCall 数量了 创建对象池实现对激光流星和门等游戏物体的重用, 减少代价高昂的调用的使用频度 这里特别提一下 Flyer 飞行器的反射材质, 通过使用 Detail Map 栏中的第二个 UV 通道的小块的颜色样本进行优化, 从而降低了纹理的总体大小 迷宫场景的优化 对迷宫环境进行了光照贴图, 这样运行时就能获得更好的性能, 特别是在使用性能较差的移动设备的 Gear VR 上此外就是使用无需实时光照和最小化特效的简单场景 Shooter180 (Target Gallery) 和 Shooter360 (Target Arena)场景的优化 至于另外一个游戏, 我们在场景中重用了低精度艺术风格并针对目标物体建立了对象缓冲池, 也使用了减少顶点数以进行动态批处理操作的方法 至此, 你应当对 VR 优化中涉及的各方面知识都有了一定的了解, 如: 用 Unity 自带的工具进行性能分析以及一些提高帧率的好技巧
来源: http://lib.csdn.net/article/vr/36945