原文:http://oculusrift-blog.com/john-carmacks-message-of-latency/682/

延迟是OculusVR所面对的最大挑战之一,  它不仅会分散玩家体验游戏时的注意力, 还会导致晕动症, 所以找出它背后的原因并消除它是非常重要的。
  • 整个系统保持在50ms已经很快了, 但是还是可以感觉到延迟
  • 20ms是可接受的最大延迟
  • 传感器数据的推导预测可以缓解部分的系统延迟。但即使有一个非常复杂的人类头部运动模型, 也不能很好地处理开始运动和运动突变时的情况
  • 滤波和传输是固定延迟, 但是离散的传感器数据包也会带来一个可变的延迟, 因为渲染的帧率与传感器的帧率是不一致的
  • 早期的LCD在运动时有拖影, 尽管现在的工艺已经进步了很多, LCD的像素从一个值转变到另一个值大约仍要10ms, 专为3D游戏优化过的可以降低到一半以下
  • OLED的像素切换时间在1ms以下, 激光显示甚至与CRT一样快
  • 有一个不易察觉的延迟, 多数显示器显示一幅图像时是逐渐出现的, 就像从计算机中扫描出来一样。 这就导致了60Hz刷新率的屏幕底部比顶部晚了16ms
  • 这对于固定的显示器不是什么问题, 但是对于头戴式的显示器,它会引起画面左右割裂或者转头时的晃动。 这是因为原图像是即时生成的, 但不同部分却不是同一时间显示的。 这个现象在LCD头戴显示器上会因切换时间的问题被忽视, 但是在OLED头戴显示器上非常明显
  • 有一个非常有吸引力的立体渲染方向, 就是双眼的画面各由一个GPU渲染, 这样可以带来最好的性能和最小的延迟, 只是需要应用程序管理好两个独立的渲染上下文
  • 阻止GPU缓存的负面影响是会降低吞吐量, 造成高负载时的帧率下降
  • 多数的模拟并不直接依赖用户的输入,可能在一帧的延迟中并不明显。如果输入数据是在使用到时再采样,就会比在帧开始时保存下来延迟要低
  • 延迟帧调度(late frame scheduling)通常需要等待,浪费了一些性能。 如果你的帧率依赖video retrace而不是固定的时间片, 那么从显示驱动中获取当前的扫描输出位置会有帮助
  • 另一个降低延迟的方法是允许渲染层基于最新的采样数据修改游戏层传过来的参数(VIEW BYPASS)。简单地说, 可以计算出本次用户输入与上次采样的差值,用于修改游戏层提交给渲染层的视图矩阵
  • 差值处理是最小程度的侵入, 但也有一些情况是用户输入不能影响渲染的,如玩家死亡时的过场动画。或许VR游戏从设计上就应该避免在头戴显示器中出现不能响应的情况,但是依照传统游戏的惯例这种设计还是有很多的
  • 如果你十分了解渲染一帧所花的时间,那么一些额外的延迟可以通过整个渲染任务的延迟帧调度来节省下来,但这对于频繁变化的帧渲染时间并不是一件容易的事。然而一个后期处理任务(TIME WARPING)可以降低意料之中的一些时间, 这样就可以更加容易地进行延迟调度
  • 从你的角度尽可能使用最好的信息绘制了一帧后(已经应用了view bypass),不要急着直接显示出来, 开发者还可以再次获取最新的用户输入, 生成一个更新过的视图矩阵, 把渲染的画变换到更新过参数的位置上。 使用这个变换, 显示到屏幕上的画面就反映了最新的输入
  • view bypass和time wraping是互补的技术, 它们既可以独立使用也可以一起使用。time warping可以变换一个源图像的任意时间或位置到另一个, 一些视差和屏幕边缘的瑕疵又可以通过view bypass来弥补
  • 需要模拟状态变更的动作, 如切换开关或武器开火, 仍然需要大约32-48ms的延迟通过整个管线, 显示出对应的画面信息时的延迟并不会低于bypass优化过的16-32ms。而最重要的头部朝向反馈却可以在60Hz的刷新率下延迟控制在2-18ms。结合低延迟的传感器和显示屏, 甚至可以做到不可察觉。连续的time warping让延迟低于3ms成为了可能,为人机交互打开了一片未曾探索过的新天地
  • 传统的计算机交互并没有VR的延迟要求这么高, 但是敏感的人却可以说出20ms级别的鼠标反应差异, 所以这项技术对于非VR的应用也是值得推广的
  • 一个有趣的应用就是云游戏, 客户端发送操作信息给远程服务器, 并返回游戏的视频流。这为玩家提供了极大便利,但网络和压缩的延迟使得动作向的游戏体验比较差。view bypass和time warping都可以在服务器上应用,能够抵消相当大一部分网络延迟。再进一步,time wraping如果可以在客户端本地运行,理论上可以降低到与本地应用程序相同的水平,不过把time wraping限制在30或40ms比较好,避免与源图像的距离差异过大。

卡马克揭开VR延迟背后的真相相关推荐

  1. Oculus CTO卡马克:延迟背后的真相

    从延迟的角度来看,虚拟现实(Virtual Reality,VR)技术是一项最需要人在回路(human-in-the loop)的应用.对于高质量的VR体验而言,最重要的是用户头部物理运动与头盔显示器 ...

  2. Meta官方吐槽大会?Connect 2022卡马克演讲全文回顾

    在上周举行的Meta Connect期间,Reality Labs顾问CTO John Carmack(约翰·卡马克)按惯例发表了一年一度的脱稿演讲.我们知道,卡马克脱稿演讲是每年Connect大会的 ...

  3. 游戏界的扛把子、3D 游戏之父约翰•卡马克的传奇人生

    作者 | 年素清  责编 | 张文 出品 | 程序人生 (ID:coder _life) 约翰•卡马克(John D. Carmack II)是电脑游戏界的传奇人物,你可能没听过这个名字,但你肯定玩过 ...

  4. 网络营销推广怎么做 一封神奇的文案策划背后的真相

     网络营销推广怎么做 很多人觉得销售高手总有与众不同的魅力,他们是少数的精英人士,有着四天王的血统,转轮王的相貌,我们望尘莫及!其实这些概念都是误区,你知道吗?如果我在这里把这层神秘的面纱揭开,那么销 ...

  5. 约翰·卡马克和他的id Software

    上帝花了6天创造了这个世界,id software和它的创始人.引擎师约翰·卡马克(John Carmack),则用6款游戏创造了个人电脑的3D世界. 1992年,id做出了<德军总部>, ...

  6. 游戏界的“扛把子”,“3D 游戏之父”, 约翰•卡马克的传奇人生

    作者 | 年素清 责编 | 王晓曼 出品 | 程序人生 (ID:coder _life) 约翰•卡马克(John D. Carmack II)是电脑游戏界的传奇人物,你可能没听过这个名字,但你肯定玩过 ...

  7. 3D 游戏之父卡马克再创业:“我自己出得起 2000 万美元,但花投资人的钱会更有责任心”...

    整理 | 苏宓 出品 | CSDN(ID:CSDNnews) John Carmack,一代传奇游戏程序员,被誉为 3D 游戏之父. 近日,他在 Twitter 上透露,将再次进行创业,成立了一家新公 ...

  8. cf3月14服务器维护,CF3月14在线活动背后的真相详情

    穿越火线官方即将在3月14日为所有的小伙伴们准备一个3.14在线盛典好礼活动,大量黄金武器.英雄级武器以及稀有永久武器等着小伙伴们来领取.但是有论坛水友分析出这个活动背后的真相,一起随我们看看吧! C ...

  9. 厌倦 Meta 内斗与低效,​传奇大神卡马克愤然离职

    "这是我在 VR 领域十年的结束" 整理 | 何苗 出品 | CSDN(ID:CSDNnews) 上周五,前 Meta CTO.传奇程序员约翰·卡马克(John Carmack) ...

最新文章

  1. 分布式 - Jetty架构
  2. “load”: 不是“torch::jit”的成员
  3. Android之GPS定位详解
  4. Vue.js 组件注册
  5. mysql踢掉登录用户_centos 强制踢掉某登录用户的方法
  6. python的xpath用法介绍_python爬虫之xpath的基本使用详解
  7. Executor源码解读
  8. 【Spark】SparkStreaming-如何使用checkpoint
  9. utf8编码 java_Java UTF8编码
  10. poi导出excel写入公式_poi导出excel公式
  11. 网络安全实验室 基础题 解析
  12. 【蓝桥杯】大臣的旅费(C++) (DSF+树的最大直径)
  13. Swagger3 版本动态分组
  14. 快读快写模板【附O2优化】
  15. 128兆内存能运行的linux,128兆内存能干嘛?
  16. 乐嘉性格色彩-4色特性,学习感悟
  17. Round12—Huffman 树
  18. 如何快速把旧电脑数据转移到新电脑?
  19. cadence修改板框倒角_Allegro软件中如何对板框进行倒角及倒角不成功解决方法
  20. 海明威的《老人与海》人生感悟

热门文章

  1. 数据仓库(9)数仓缓慢变化维度数据的处理
  2. Nginx在CDN加速之后,获取用户真实IP做并发访问限制的方法
  3. 老子五千言(帛书版道德经)
  4. 多分类学习:OvO、OvR、ECOC
  5. oracle SQL update一次性修改多个字段,数据来源于另一张表
  6. iOS 给APP评分无法连接到App Store解决方法
  7. 【英语-同义词汇词组】advantage | ascendancy | predominance | preponderance | prepotency | superh的用法及区别
  8. ElasticSearch 2 (25) - 语言处理系列之同义词
  9. 专升本 计算机 公共课学习笔记(持续更新中...)
  10. java与ftp连接_建立与ftp服务器的连接——完成版(java)