空间环境

当用户在完整空间中启动您的 Android XR 应用时,您可以将其呈现在直通模式下,或使用沉浸式虚拟空间覆盖用户的环境。您的应用可以根据内容或体验触发特定的环境。例如,当提到雷暴时,应用可以显示暴风雨环境;或者历史应用可以在解释角斗士时显示虚拟的罗马斗兽场。

环境是一种多功能的方式,可以自定义您的应用并增强沉浸感。在完整空间中,您可以完全灵活地创建您设想的体验。创建独特的视觉效果和音频以吸引用户,同时努力让他们感到舒适和安全。

空间环境的元素

环境可以包含深度、纹理和 3D 几何图形。在完整空间中,您可以提供自己的标准 gITF 格式的虚拟环境。了解如何添加空间环境

这些可选组件可以帮助您构建场景。选择一个,或将它们全部组合起来,以创建复杂的视觉体验。

Surrounding 3D geometry

周围的 3D 几何图形

您可以通过提供一个包含环境几何图形和 360° 图像纹理的 .gltf.glb 文件来创建沉浸式环境。您还应该包含一个从高动态范围 EXR 图像创建的基于图像的照明 (IBL) 文件,这对于 3D 对象上的真实照明和反射是必需的。

Additional 3D geometry

其他 3D 几何图形

为了增强空间感知,请战略性地在用户附近放置辅助几何图形。避免在用户 1.5 米范围内放置高于 0.9 米的物体,因为这可能导致与 UI 元素的深度冲突。

对于周围或额外的 3D 几何图形,Android XR 支持 .gltf.glb 文件扩展名。您可以从第三方工具(例如BlenderMayaSpline等)创建和导出这些文件格式。

创建安全舒适的体验

请遵循以下指南,创建用户可以安全舒适地探索的空间环境。

  • 添加清晰的视觉提示,让用户在完整空间和主空间之间快速切换。例如,您可以使用折叠内容展开内容图标作为按钮来触发转换。
  • 使物体与用户保持至少 1 米的距离,以避免碰撞。这为用户提供了足够的移动空间,同时避免了现实世界中的物理物体。
  • 您可以创建多个环境,并添加一个菜单供用户在它们之间切换。

优化性能

某些空间环境需要高性能,并需要优化以保持流畅的帧率、低延迟并避免用户不适。

考虑到立体渲染和实时交互的处理要求,我们建议遵循高效的 3D 模型设计并明智地使用纹理和着色器。这些指南可以帮助您创建视觉丰富且在各种设备上表现良好的 XR 体验。

优化文件

  • 多边形数量将直接影响性能,请尽可能进行优化。
  • 采用高效的网格结构,减少不必要的细节和重叠几何图形。
  • 通过简化复杂模型和使用纹理图集来减少绘制调用。尝试将多个纹理合并到一个文件中。
  • 使用高效的纹理压缩并减小资源大小,以防止 GPU 过载,并优化模型和纹理。建议的最佳性能资源大小约为 3D 壁纸或 glb 80 MB,音频文件 15 MB。
  • 使用 KTX2 纹理压缩来优化 GPU 性能。
  • 尽可能将照明信息烘焙到纹理中。

考虑 360° UI 安全区

保持在安全的色调范围内,没有可能与 UI 冲突或使用户疲劳的亮度峰值。

A spatial environment showing a safe tonal
range.

提高可访问性

确保 UI 在各个方向上都清晰可辨,尤其是在用户视野的中间水平带。避免可能分散注意力的复杂性或细节。

A person sitting in a chair in a spatial environment, with dashed lines
outlining their field of view.

舒适度设计

如果您正在使用中场大型 UI 面板,请考虑用户相对于它的位置。用户应该在屏幕浮动表面上方至少 5 英尺(约 1.5 米)处。这为舒适、居中地观看大型虚拟屏幕留下了足够的距离,而无需抬头。

A person standing in a rocky spatial environment with a large UI panel in
mid-field.