EG/demo/VR测试说明.md
2025-07-16 10:19:34 +08:00

5.9 KiB
Raw Blame History

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兼容设备

🌐 连接方式

有线连接

  1. Quest 2/3: USB-C数据线连接PC
  2. Valve Index: DisplayPort + USB 3.0
  3. HTC Vive: HDMI + USB 3.0

无线连接推荐Quest

  1. 下载ALVR服务器: GitHub
  2. 在PC上运行ALVR服务器
  3. 在Quest上安装ALVR客户端
  4. 连接到同一Wi-Fi网络5GHz推荐

🔄 启动顺序

完整VR模式启动顺序

  1. 连接VR头盔到PC
  2. 启动SteamVR
  3. 可选启动ALVR服务器Quest无线
  4. 运行VR测试脚本

模拟模式启动顺序

  1. 直接运行VR测试脚本
  2. 系统会自动切换到模拟模式

📊 测试项目说明

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. 性能问题

现象: 帧率低或卡顿 解决方案:

  • 降低渲染分辨率
  • 关闭不必要的后台程序
  • 检查显卡驱动更新
  • 使用模拟模式进行开发

日志分析

测试过程中的详细日志可以帮助诊断问题:

  • 表示成功
  • 表示警告(非致命)
  • 表示失败
  • 🔧 表示配置或调试信息

📈 性能优化建议

开发阶段

  1. 使用模拟模式进行功能开发
  2. 降低渲染分辨率提高帧率
  3. 关闭不必要的特效
  4. 使用性能分析工具

生产部署

  1. 使用真实VR模式
  2. 根据硬件配置调整质量
  3. 启用异步时间扭曲
  4. 优化渲染管线

🔍 调试技巧

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() - 初始化ALVR
  • world.startALVRStreaming() - 开始串流
  • world.stopALVRStreaming() - 停止串流
  • world.setALVRStreamQuality() - 设置质量

VR输入

  • world.startVRInput() - 启动输入处理
  • world.showControllerRays() - 显示控制器射线
  • world.getAllControllers() - 获取所有控制器
  • world.getControllerState() - 获取控制器状态

🎯 总结

现在的VR测试系统具有以下优势

  1. 自动适应: 自动在真实VR和模拟模式之间切换
  2. 开发友好: 无需VR硬件即可开发和测试
  3. 完整功能: 支持所有VR功能的测试
  4. 详细反馈: 提供清晰的状态信息和错误提示
  5. 灵活配置: 可根据需要调整各种参数

无论您是否拥有VR设备都可以使用这个测试系统来验证VR功能的正确性。