5.9 KiB
5.9 KiB
VR测试说明
📋 测试条件说明
🎮 VR测试的两种模式
1. 模拟模式(推荐用于开发和调试)
- 无需VR硬件
- 无需SteamVR
- 无需ALVR服务器
- 自动启用,当真实VR不可用时
- 模拟头盔和控制器追踪数据
- 立体渲染显示到窗口
- 适用于功能测试和开发
2. 真实VR模式(需要完整VR设备)
- 需要VR头盔
- 需要SteamVR运行
- 需要ALVR服务器(Quest无线)
- 真实的6DOF追踪
- 立体渲染到VR头盔
- 完整的VR交互体验
🔧 软件要求
必需依赖
# 安装VR相关依赖
pip install -r requirements/vr-requirements.txt
# 主要包含:
# - openvr>=1.26.7
# - psutil>=5.9.0
# - numpy>=1.21.0
# - Pillow>=9.0.1
系统要求
- Python 3.8+
- Panda3D
- PyQt5
- OpenGL支持的显卡
🎮 硬件要求(完整VR模式)
最低硬件要求
- 显卡: GTX 1060 / RX 580 或更好
- 内存: 8GB RAM
- 处理器: Intel i5-4590 / AMD FX 8350 或更好
- USB: 至少1个USB 3.0端口
支持的VR头盔
- Quest 2/3: 有线(USB-C)或无线(ALVR)
- Valve Index: DisplayPort + USB 3.0
- HTC Vive: HDMI + USB 3.0
- 其他OpenVR兼容设备
🌐 连接方式
有线连接
- Quest 2/3: USB-C数据线连接PC
- Valve Index: DisplayPort + USB 3.0
- HTC Vive: HDMI + USB 3.0
无线连接(推荐Quest)
- 下载ALVR服务器: GitHub
- 在PC上运行ALVR服务器
- 在Quest上安装ALVR客户端
- 连接到同一Wi-Fi网络(5GHz推荐)
🔄 启动顺序
完整VR模式启动顺序
- 连接VR头盔到PC
- 启动SteamVR
- (可选)启动ALVR服务器(Quest无线)
- 运行VR测试脚本
模拟模式启动顺序
- 直接运行VR测试脚本
- 系统会自动切换到模拟模式
📊 测试项目说明
1. 基本VR功能测试
- VR系统初始化
- 控制器检测
- 追踪数据获取
- 立体渲染测试
2. VR模拟模式测试
- 强制启用模拟模式
- 模拟数据更新
- 控制器输入模拟
- 立体渲染显示
3. ALVR串流测试
- ALVR服务器连接
- 串流质量设置
- 触觉反馈测试
- 串流开关控制
4. VR GUI控制面板
- 图形界面控制
- 实时状态监控
- 参数调整
- 系统开关
5. VR交互功能测试
- 控制器射线显示
- 手势识别
- 对象交互
- 输入处理
🚀 快速开始
开发和调试(推荐)
# 直接运行,会自动使用模拟模式
python vr_test.py
# 选择 "2. VR模拟模式测试"
完整VR测试
# 确保VR设备已连接并启动SteamVR
# 然后运行
python vr_test.py
# 选择 "1. 基本VR功能测试"
💡 故障排除
常见问题
1. OpenVR初始化失败
现象: 显示"OpenVR初始化失败" 解决方案:
- 检查SteamVR是否运行
- 确认VR头盔被系统识别
- 重启SteamVR和头盔
- 系统会自动切换到模拟模式
2. 控制器未检测到
现象: 控制器显示"未连接" 解决方案:
- 确保控制器已配对
- 检查控制器电量
- 在SteamVR中重新配对
- 模拟模式下会显示模拟控制器
3. ALVR连接失败
现象: ALVR串流测试失败 解决方案:
- 确保ALVR服务器正在运行
- 检查Quest上的ALVR客户端
- 确认PC和Quest在同一网络
- 使用5GHz Wi-Fi网络
4. 性能问题
现象: 帧率低或卡顿 解决方案:
- 降低渲染分辨率
- 关闭不必要的后台程序
- 检查显卡驱动更新
- 使用模拟模式进行开发
日志分析
测试过程中的详细日志可以帮助诊断问题:
✓表示成功⚠表示警告(非致命)✗表示失败🔧表示配置或调试信息
📈 性能优化建议
开发阶段
- 使用模拟模式进行功能开发
- 降低渲染分辨率提高帧率
- 关闭不必要的特效
- 使用性能分析工具
生产部署
- 使用真实VR模式
- 根据硬件配置调整质量
- 启用异步时间扭曲
- 优化渲染管线
🔍 调试技巧
1. 检查VR系统状态
# 在代码中添加调试信息
vr_info = world.getVRInfo()
print(f"VR模式: {vr_info['mode']}")
print(f"模拟模式: {vr_info['simulation_mode']}")
2. 监控性能
# 获取VR系统状态
status = world.getVRStatus()
print(f"VR启用: {status['vr_enabled']}")
print(f"控制器数量: {len(status['controllers'])}")
3. 测试特定功能
# 强制启用模拟模式
world.vr_manager.enable_simulation_mode()
# 更新模拟数据
world.vr_manager.update_simulation_data('head_pose', new_data)
📚 API参考
VR系统控制
world.initializeVR()- 初始化VR系统world.shutdownVR()- 关闭VR系统world.isVREnabled()- 检查VR状态world.getVRInfo()- 获取VR信息
模拟模式
world.vr_manager.enable_simulation_mode()- 启用模拟模式world.vr_manager.get_simulation_data()- 获取模拟数据world.vr_manager.update_simulation_data()- 更新模拟数据
ALVR串流
world.initializeALVR()- 初始化ALVRworld.startALVRStreaming()- 开始串流world.stopALVRStreaming()- 停止串流world.setALVRStreamQuality()- 设置质量
VR输入
world.startVRInput()- 启动输入处理world.showControllerRays()- 显示控制器射线world.getAllControllers()- 获取所有控制器world.getControllerState()- 获取控制器状态
🎯 总结
现在的VR测试系统具有以下优势:
- 自动适应: 自动在真实VR和模拟模式之间切换
- 开发友好: 无需VR硬件即可开发和测试
- 完整功能: 支持所有VR功能的测试
- 详细反馈: 提供清晰的状态信息和错误提示
- 灵活配置: 可根据需要调整各种参数
无论您是否拥有VR设备,都可以使用这个测试系统来验证VR功能的正确性。