VR中的”延迟”, 特指”Motion-To-Photon Latency”, 指的是从用户运动开始到相应画面显示到屏幕上所花的时间.
这中间经过了大概这么几个步骤:
- 传感器采集运动输入数据
- 采集到的数据进行过滤并通过线缆传输到主机
- 游戏引擎根据获取的输入数据更新逻辑和渲染视口
- 提交到驱动并由驱动发送到显卡进行渲染
- 把渲染的结果提交到屏幕, 像素进行颜色的切换
- 用户在屏幕上看到相应的画面
当然, 实际上还有很多细节问题, 比如屏幕上的像素并不是同一时间切换的, 可能面上面的那行先切换, 再一行行更新到最下面的, 在这里就不纠结这些细节了.
这其中的每一个步骤都会产生一定的延迟, 而目前公认的大众能接受的延迟是20ms以下, 这基本上可以做为衡量一个VR头显是不是合格的一个标准. 虽然20ms是非常短的时间, 但通过努力还是可以达到的, 主要有这么几个思路:
硬件层面的优化
- 提升传感器的采样频率, 减少刷新率与传感器频率的同步等待时间消耗
- 提升传感器的精度, 减少对采样数据进行稳定性过滤产生的延迟
- 采用有线传输也有一部分原因是出于延迟的考虑
- 屏幕使用OLED替代LCD, 减少像素颜色切换的时间
- 提升屏幕刷新率, 主流的屏幕是60Hz, 那每帧就是16.67ms; 如果提升到90Hz, 那每帧就是11.11ms
大部分的手机VR产品在延迟上都是不合格的, 最明显的表现就是转头时的画面不连续/抖动/残影等:
- 市面上的手机采用OLED屏的还是少数, 比如iPhone配个VR壳子那延迟就很感人
- 如果依赖手机的陀螺仪进行转向模拟, 其精度和频率远远达不到要求
-