近些时间来,在VR行业中,以《消失的法老》为代表的VR大空间项目以及相关技术及硬件设备很是火热。我在工作期间接触并了解到了相关的技术及落地流程,为了更好地理解和运用大空间技术,我整理了这份文档,详细记录了技术要点、部署经验与开发流程,以备个人参考,也希望能帮助更多对大空间技术感兴趣的朋友快速入门。
我个人的解决方案是使用Pico4 UE(Ultra Enterprise) + Unity(开发引擎) + Photon(多人同步解决方案)来实现,如果有其他技术原理大致相同。
有兴趣的朋友也可以继续关注,后续我会陆续把很多技术要点分享出来。
文档使用教程及参考资源
参考 | |
---|---|
Pico大空间方案 | 文档中心 | PICO 企业服务 |
解读 | 大空间多人互动技术、大空间LBE、VR大空间什么意思?如何实现? - 知乎 |
一、大空间是什么?
大空间(Large-Scale VR)指的是VR技术通过SLAM(同步定位与地图构建)及空间定位技术,使VR内容与真实空间相结合,构建一个虚实融合的大型交互体验空间。用户可以自由在大空间内移动,实现高度沉浸式体验。经典的大空间项目如《消失的法老》就通过这一技术,实现了多人在现实空间内的虚拟探险互动。
Pico4UE(Ultra Enterprise)
设备链接:PICO 4 Ultra Enterprise VR-MR 一体机 | PICO
二、大空间技术栈
大空间技术栈主要包含以下几个方面:
-
空间定位技术(SLAM):通过摄像头实时扫描环境特征点,实现实时定位与地图构建。
-
Marker定位:通过在场地内布置特定Marker标记,提升绝对定位精度,减轻累计漂移问题。
-
多人同步技术:利用网络同步技术(如Photon),实现用户之间的位置同步。
-
交互技术:包括手势识别、物体交互等多元化交互形式。
-
串流技术:一体机、无线或有线串流,确保画面流畅度和性能表现。
空间定位技术(SLAM)
大空间定位核心使用的是 SLAM技术(Simultaneous Localization and Mapping,同步定位与地图构建),具体过程如下:
-
特征点提取:
- VR头显上的多个摄像头实时捕获环境图像,从中提取环境特征点(如纹理、边缘、色差等)。
-
地图构建与实时更新:
- SLAM算法实时构建空间地图,并根据头显摄像头不断捕获的特征点信息更新地图。
-
实时定位:
- 根据当前摄像头看到的图像和构建的地图进行比对,实时计算VR头显的三维位置和旋转角度。
-
Marker辅助修正:
- 为防止SLAM算法长期运行产生累计漂移,在空间特定位置放置Marker,通过快速扫描Marker进行误差校准。
-
高精度模式:
- 在场景中引入明确Marker标记,定期进行Marker扫描校准,大幅提高定位的绝对精度,确保定位漂移降至最低。
简单来说,大空间定位的实现是通过 视觉特征提取 → 地图构建 → 实时对比与定位 → Marker辅助纠正,这几个步骤循环进行,不断确保虚拟和真实世界精确同步。
Marker原理
Marker的下载和设置可以参考官网:文档中心 | PICO 企业服务
Marker是什么?
Marker 是一种特殊设计的视觉标记,用于增强SLAM(同步定位与地图构建)技术的精度。Marker通常是印刷在纸或其他材料上的特殊图案或二维码(如Aruco Marker)。
Marker原理:
Marker通过明确的图案(通常为黑白方块)提供清晰的视觉特征,VR头显的摄像头捕捉到Marker图案后,可快速准确地识别位置和方向。
头显扫描到Marker时,系统会实时计算头显相对Marker的位置和角度,从而校正SLAM定位算法中的累计漂移问题,提升地图的整体精度。
如何确定Marker精度?
Marker精度通常取决于:
-
Marker尺寸和设计清晰度:尺寸越大,图案越清晰,识别准确性越高。
-
距离和角度:距离越近、角度越正,识别精度越高。
-
光照条件:光线均匀适中,无强烈反光,Marker识别效果越佳。
精度的衡量方式一般为头显定位的累计漂移值,通常在有Marker的情况下,累计漂移可控制在1cm以内。
三、大空间部署要求
Pico官网给出的描述如下:
在亮度上:
- 确保墙壁、天花板和地板的表面有照明。环境应该明亮到适合读书的程度。
- 避免使用射灯或聚光灯光源。避免在游戏区域有阳光直射。
- 使用不带灯光频闪的光源,光源均匀分布。
结合我本身在部署中遇到的问题,总结出以下关键因素:
-
空间要求:安全围栏最大支持 100m * 100m,推荐多人间距离大于1.5m。
-
环境亮度:应明亮且均匀,避免阳光直射或反光材质。
-
环境纹理:地面及墙面需具备明显的深浅对比纹理,避免重复或过于相似的图案。
-
Marker布置:建议在入口处布置至少一个Marker,用于高精度模式以减少累计漂移。
-
设备选择:推荐使用PICO 4 Ultra Enterprise(4UE)或类似高性能头显(HTC View等),以获得最佳体验。
落地方案比对
VR大空间可采用一体机、无线串流、有线串流方案进行部署,个人比较倾向无限串流(开发周期使用) + 一体机部署(落地)
结合对大量大空间客户技术支持的经验,PICO官方最推荐采用一体机方案
方案 | 优势 | 劣势 |
---|---|---|
一体机方案 | - 极低的硬件成本,只需要采购头显+路由器+(本地)云端服务器即可搭建完整方案 - 运营稳定,不会受SteamVR、电脑系统、网络带宽波动、串流线材连接稳定性等问题的困扰 - 开发手势等功能更方便 | - 需要花时间来优化内容,画质和性能上要做一些取舍 |
无线串流方案 | - 串流方案,只要电脑配置高,可以运行画质更好的内容 - 相比有线串流,无需用户佩戴背包电脑,更轻便 | - 对网络非常敏感,需要搭建足够稳定的网络,否则会有卡顿、黑边等情况 - 由于网络信道的干扰问题,同一场地支持体验的人数有限 |
有线串流方案 | - 串流方案,只要电脑配置高,可以运行画质更好的内容 - 相比无线串流,对网络不敏感 | - 用户需要佩戴电脑,体验不好 - 串流线连接稳定性等原因,会直接影响到最终的运营效率 |
四、大空间开发及落地流程
1. 环境准备
-
确定场地大小及光线条件。
-
在场地内布置环境纹理图及Marker。
2. 创建虚拟地图
-
使用PICO头显,进入开发者模式开启“大空间”功能。
-
设定原点及正方向。
-
绘制安全边界(推荐自由绘制模式或顶点绘制模式)。
-
开启高精度模式并进行地图扫描,完成后确认地图创建成功。
3. 地图导入及同步
- 使用PICO企业设备管理平台批量导入地图,或通过U盘或电脑进行地图文件传输。
- 也可以使用APK工具在大空间基础上扫描,然后通过Unity编辑器工具导入Unity场景中直接开发。
4. Unity工程配置
- 新建Unity工程项目,下载Pico 企业版SDK以及XR相关插件。
- 基于PICO SDK进行开发,注意选择适合的定位模式(推荐floor模式)。
- 获取头显XR Origin位姿,确保虚拟世界和真实世界位置一一对应。
- 使用手势识别、眼动识别以及身体姿态识别。
- 集成Photon网络同步解决方案,实现多人互动。
5. 计数服务器部署
-
使用本地或云端服务器实现多人联机数据同步。
-
推荐Photon服务器插件或Pico自己的成熟解决方案。
6. 测试与优化
-
在真实环境中反复测试并优化定位精度、多人同步稳定性。
-
优化内容性能以确保流畅体验。
7. 落地运营
-
定期维护地图精度,确保体验持续稳定。
-
为运营制定头显续航及备用方案,推荐额外配备充电宝延长头显续航。