三星 Gear VR 最佳方法

开发虚拟现实(VR)项目时,必须执行特定操作,以确保用户获得上佳的 VR 体验。 以下的“最佳方法”指南包含全部信息,可确保用户在使用三星 Gear Virtual Reality(VR)头戴设备和三星 Galaxy Note 4 智能手机上获得上佳的项目体验。

Gear VR 渲染选项

将 Gear VR 头戴设备和三星 Galaxy Note 4 智能手机结合可带来引人入胜的 VR 体验,但由于硬件受限,使用 Gear VR 头戴设备时 UE4 无法执行部分渲染功能。所受的限制多数与 移动设备 限制相似。 由于 Gear VR 头戴设备有特殊的渲染要求,必须额外考虑几点。 以下章节将讲述这些要求,以及它们对 Gear VR 项目产生的影响。

移动 HDR

移动 HDR 是高级的项目渲染功能,但请勿将其启用。 Gear VR 头戴设备不支持移动 HDR,应将其关闭。 启用此功能后,项目置入 Gear VR 头戴设备时将无法正常渲染。

后期处理

由于 Gear VR 头戴设备的渲染要求较高,许多后期处理功能均不支持。 以下是 Gear VR 头戴设备支持的后期处理功能。

后期处理 功能名称 描述
自动曝光 曝光偏差 用于增强或减弱场景的明亮度。

材质

Gear VR 项目材质的创建和交互方式与其他项目十分相似。 同样使用材质编辑器创建材质,同样使用材质编辑器中的诸多材质节点。 制作 Gear VR 材质时须遵守一些注意事项/限制,以确保制作的材质可在 Gear VR 头戴设备中正常使用。 例如,Gear VR 头戴设备只支持以下材质输入。

材质输入名称 描述
Base Color 定义材质整体颜色的基础色彩。
Roughness 定义材质的粗糙度/平滑度。
Metallic 定义材质的金属感。
Specular 定义材质的反射强度。
Normal 无需进行复杂建模而获得更多材质细节。
Emissive 使材质部分发出辉光,形成光线发射的效果。
Opacity 定义材质的透明度。
Opacity Mask 定义特定像素是否透明。

请注意,半透明和被遮罩的材质渲染开销较高,在智能手机上尤其如此。 应尽量使用 不透明材质 ,降低渲染开销。

材质光照模型

由于硬件受限,Gear VR 项目中仅可使用以下 材质光照模型

光照模型名称 描述
Default Lit 默认光照模型最为常用。此光照模型利用直接和间接光照,以及镜面反射。
Unlit 不照亮光照模型只输出 Emissive 颜色,适用于如火焰或发光物体等特效。

不照亮光照模型的开销较低,应在 Gear VR 项目中尽量多使用。

材质混合模式

材质混合模式定义当前材质输出与背景上已绘制内容的混合方式。 构建 Gear VR 头戴设备的内容时,可使用以下材质混合模式。

混合模式 描述
Opaque 对固体而言,不透明材质的开销最低。但其不具有半透明度。意味着将不会出现过度绘制,材质每个像素的渲染时间取决于 节点图表 的复杂度。
Masked 无需在材质的部分上绘制像素时可使用此模式。材质只在被遮罩的区域创建过度绘制。但材质为 100% 不透明或 100% 透明。被遮罩的区域越大,出现的过度绘制越多。同时意味着开销将增大。
Translucent 这是开销最高的 混合模式。它与 Masked 和 Opaque 相似,但会无视实际透明度对性能产生额外影响。
Additive Translucent 的替代品,开销更低。无需对像素进行分类即可直接添加到场景中。但这意味着它只能增加亮度。材质上的黑色像素对场景没有影响。
Modulated Translucent 的替代品,开销比 Additive 更低,但它的像素将随场景增加。意味着它只能使场景变暗。

使用 Modulate 混合模式时须禁用 Separate Translucency,否则材质无法正确编译。 T_Separate_Trans.png

材质设置">移动设备专用材质设置

Details 面板 下的 Main Material 节点 上可找到一个名为 Mobile 的部分。 此处的设置有助于减少移动设备上的材质渲染开销。

属性 描述
Fully Rough 启用后将保存大量着色器 ALU 指令和一个采样器。它可在禁用反射的同时有效保持整体反射能量。
Use Lightmap Directionality 禁用此属性后,来自灯光图的灯光将变为平面,但开销更低。

自定义 UV

使用 自定义 UV 可在顶点着色器(而非像素着色器)中执行特定着色器操作,避免出现附属纹理获取。 执行简单操作时(如进行 UV 修改略微提升纹理效果),利用它可对至关重要的性能进行有效弥补。 请尽量使用自定义 UV 进行 UV 修改,开发 Gear VR 内容时尤其如此。

自定义 UV 当前只应用于部分组件类型,如静态网格体、骨骼网格体、BSP、地形和网格体粒子。

反射

Gear VR 不支持屏幕空间反射(SSR),意味着只能生成来自关卡中 反射获取 Actors 的反射。 请注意,由于硬件受限,反射 actors 生成的反射保真度不高。

Gear VR 和资源设置

制作 Gear VR 项目的美术资源时有几个注意事项,以确保项目在 Gear VR 头戴设备上运行流畅。 以下章节讲述制作 Gear VR 项目美术资源时需注意的要点。

资源硬性限制

由于移动设备存在特定的硬件限制,创建资源时必须遵守以下要求。 如未严格遵守,可能导致项目无法正常使用。

  • 由于移动硬件缺少 32 位索引支持,所有网格体类型可拥有最多 65,000 个顶点,不能超过此数字。

  • 骨骼网格体可最多拥有 75 块骨头,不能超过此数字。

网格体注意事项 为 Gear VR 项目创建网格体时须牢记下列信息,以确保创建的内容在 Gear VR 头戴设备上可用。

  • 在 3D 网格体上尽量使用 材质 ID ,节约绘制调用的次数。

  • 尽量使用 静态网格体 LODs

  • 注意 3D 网格体多边形数量,尽量将其保持为 低多边形

  • 为所有静态模型设置另一个 UV 集,使其使用 灯光贴图

  • 尽量尝试使用 替代 Sprites 替换远景的静态网格体,降低渲染开销。

纹理注意事项 为 Gear VR 项目创建纹理时须牢记下列信息,确保创建的内容不会对项目整理性能产生不利影响。

  • 使用 ECT2 纹理压缩格式。

  • X 轴或 Y 轴上的纹理尺寸均不可大于 2048 像素。

  • 纹理尺寸必须为二的幂次方(例如 2、4、8、16、32、64、128、256、512、1024、2048)。

  • Gear VR 可将最大 512 MB 的纹理载入内存,但建议您将载入量控制在 128 MB 以内。

  • 尽量使用方形纹理,因为其内存使用效率更高。

  • 尽量尝试使用 纹理图集 ,减少内存中所需的纹理数量。

  • RGB 纹理遮罩/打包 可有效减少内存中的单一纹理。

  • 仅限使用移动平台支持的 TC_DefaultTC_NormalMap 压缩设置。

关卡注意事项

在 Gear VR 项目中,从关卡榨取最大性能是注重平衡的一个操作,调整到最佳状态耗时较长。 以下建议/操作有助于您快速锁定可能引起 Gear VR 性能问题的关卡区域。

  • 必须确认场景灯光已 构建 ,以便获得最佳性能。如屏幕上出现红色的 Lighting needs to be rebuilt 错误信息,则意味着需要重新构建灯光。

  • 将关卡中所有灯光设为 静态 ,因为其他灯光选项的渲染开销较高。

  • 检查关卡是否使用 预计算可见性 。如未使用,须将其添加至关卡,然后重新构建灯光将其在关卡的 World Settings 中启用。

  • 整个场景的绘制调用数不可大于 100。在设备上可通过 stat openglrhi 命令查看,在电脑上可通过 ES2 预览器的 stat d3d11rhi 命令查看。

  • 整个关卡的三角形数量不可大于 100,000。在设备上可通过 stat openglrhi 命令查看,在电脑上可通过 ES2 预览器的 stat d3d11rhi 命令查看。

  • 在关卡中须谨慎使用渲染开销极高的半透明和透明遮罩材质。

  • 经常对关卡执行 性能分析 ,以便及时发现性能问题。

Tags