如何解决VRlol延迟高网速没问题问题

VR究竟怎么了?VR三大困境亟待解决_ZNDS资讯
VR究竟怎么了?VR三大困境亟待解决
  导读:VR已经被很多人看做是一场资本的狂欢和舆论的炒作,以往被抬高身价的VR企业没有资本愿意再投钱进去。  自2015年以来,几乎到了“逢电子展必VR展”,但是令人遗憾的是,每次的VR展现形式来来去去也不过是过山车,竞技游戏和模拟看房,看得多了也就没有新鲜感了。用户的体验感也间接体现了市场对VR的冷淡反应,身在电子行业的笔者也好久没听人说起VR了,那VR究竟怎么了?  究其根本无非是VR市场的软硬件未达到资本和用户的期待。  如今VR已经被很多人看做是一场资本的狂欢和舆论的炒作,以往被抬高身价的VR企业没有资本愿意再投钱进去,比如今年国内VR行业出尽风头的暴风魔镜,在下半年进行大规模裁员,而且是团队人员几乎减半的裁员规模。  VR发展现在遇到的瓶颈期  VR虽然暂时遇冷,但是会在今年可能迎来一个回弹期,2016年是VR硬件产业发展的元年,VR硬件配置可以带来较为优秀的佩戴体验,接下来就是在激烈竞争中存活下来的VR产品开始优化内容的时间了。  就目前的VR市场,底层硬件市场基本已经成熟,VR设备的成像质量和使用体验得到很大的改善,分辨率、视角、延迟等多个方面都得到了有效解决。上千万的产量不在话下,整个硬件产业链开始逐渐成熟,而且硬件标准逐渐成型。  VR游戏内容比较单一  VR内容的制作难度不小,而且需要有好的硬件作为支持。内容的制作过程相对复杂,VR游戏在此前几乎没有人开发过,大家都在追逐资本的青睐,真正踏踏实实做VR内容的团队少之又少。在未来的一年里,VR如果想要获得发展的春天,最佳的切入点就是在VR内容方面多下功夫,这样才能让人们更好的体验VR所带来的真实体验。  实际VR体验并不好  可VR内容方面的发展到现在依旧是很缓慢的,造成这种情况的原因一方面是因为人才的稀缺,另一方的原因就是成本较高。要知道VR内容的生产是很烧钱的,所以很多厂商更愿意往硬件方面投入,都不太敢在内容上做太多的投入。
Copyright &一些VR渲染延迟优化方法
VR中的”延迟”, 特指”Motion-To-Photon Latency”, 指的是从用户运动开始到相应画面显示到屏幕上所花的时间.
这中间经过了大概这么几个步骤:
传感器采集运动输入数据采集到的数据进行过滤并通过线缆传输到主机游戏引擎根据获取的输入数据更新逻辑和渲染视口提交到驱动并由驱动发送到显卡进行渲染把渲染的结果提交到屏幕, 像素进行颜色的切换用户在屏幕上看到相应的画面
当然, 实际上还有很多细节问题, 比如屏幕上的像素并不是同一时间切换的, 可能面上面的那行先切换, 再一行行更新到最下面的, 在这里就不纠结这些细节了.
这其中的每一个步骤都会产生一定的延迟, 而目前公认的大众能接受的延迟是20ms以下, 这基本上可以做为衡量一个VR头显是不是合格的一个标准. 虽然20ms是非常短的时间, 但通过努力还是可以达到的, 主要有这么几个思路:
硬件层面的优化
提升传感器的采样频率, 减少刷新率与传感器频率的同步等待时间消耗提升传感器的精度, 减少对采样数据进行稳定性过滤产生的延迟采用有线传输也有一部分原因是出于延迟的考虑屏幕使用OLED替代LCD, 减少像素颜色切换的时间提升屏幕刷新率, 主流的屏幕是60Hz, 那每帧就是16.67 如果提升到90Hz, 那每帧就是11.11ms
大部分的手机VR产品在延迟上都是不合格的, 最明显的表现就是转头时的画面不连续/抖动/残影等:
市面上的手机采用OLED屏的还是少数, 比如iPhone配个VR壳子那延迟就很感人如果依赖手机的陀螺仪进行转向模拟, 其精度和频率远远达不到要求手机屏幕目前都是60Hz的刷新率, 在延迟上本身就受限刷新率的提升
假设刷新率为60Hz, 并不是代表每帧就有16.67ms的延迟, 而是说屏幕图像每16.67ms才更新一次, 渲染选项中的”垂直同步”的概念就是来源于此. 这就对我们提交渲染画面的时机要求非常高, 如下图:
为了方便计算, 这里先假设传感器, 传输, 屏幕像素切换的延迟都为0
假设我们在每帧开始的时候(上一次垂直同步结束)采样一次传感器数据, 在垂直同步之前完成提交, 那延迟就是16.67ms如果当前帧无法在16.67ms内完成渲染, 比如花了17ms, 那么就会拖到下一帧进行提交, 屏幕上显示的画面就还是上一次的图像, 这时候的延迟就变成了16.67*2=33.33ms
这就对VR的渲染提出了非常高的要求:
FPS必须达到刷新率的要求, 90Hz就是90Hz, 80FPS是不行的, 会被垂直同步拖累成45FPSFPS必须保证稳定, 偶尔掉一两帧在VR中的感觉非常明显, 可能某个物体的位置已经差了几十个像素了
以Oculus Rift(消费版)为例, 的屏幕分辨率, 90Hz的刷新率, 再加上因为变形所需要的UpSampling, 实际的渲染画面就是Hz, 这性能压力几乎与4k@60Hz相当. 所以, 单纯的提升刷新率和分辨率, 目前来说渲染能力还是跟不上. 不过既然有了性能需求, 硬件厂商才有前进动力, 对整个行业生态来说, 是件好事.
引擎层面的优化
除了拼命优化降低每帧画面的渲染时间外, 引擎层面还可以通过一些策略进行优化, 关键的思路就是: 能不能把采样传感器数据的时间点尽量延后, 让它与垂直同步的时间点尽量靠近?
这里我们仍然假设60Hz, 每帧时间16.67ms(约17ms), 忽略硬件延迟
如果在游戏逻辑过程中(1ms时)采样传感器数据, 那延迟大约就是16ms
如果在渲染线程进行绘制之前(5ms时), 重新再采样一下传感器数据, 修正一下视口信息(不会对游戏逻辑产生影响), 那延迟就缩短到了约12ms
做过渲染优化的人都知道, 提交D3D Command后, 需要等待GPU执行完毕, 这部分时间在整帧时间中的占比还是相当高的. 那有没有办法在渲染完成之后, 提交到屏幕之前再次采样一次传感器数据呢? 如果像下图那样的话, 延迟可以缩短到3ms!!!
这就是Timewarp的主要思想, 我们来看看它是怎么实现的
了解过延迟渲染的人应该都知道, 我们可以利用ZBuffer的深度数据, 逆向推导出屏幕上每个像素的世界坐标
这就意味着, 我们可以把所有像素变换到世界空间, 再根据新的摄像机位置, 重新计算每个像素的屏幕坐标, 生成一幅新的图像:
可以看到之前被遮挡区域的像素是缺失的, 因为我们的摄像机位置变化了. 那如果摄像机位置不变, 仅仅是朝向变了呢? 这样就不存在像素可见性的变化了:
Timewarp正是利用了这个特性, 在保证位置不变的情况下, 把渲染完的画面根据最新获取的传感器朝向信息计算出一帧新的画面, 再提交到显示屏. 由于角度变化非常小, 所以边缘不会出大面积的像素缺失情况.
Oculus的Demo中可以停止渲染新的画面, 完全由单帧图像计算出各个朝向的新画面:
也就是说, 只要角度变化不是非常大(上图为了演示效果偏转的角度很大了), 可以通过这项技术”凭空渲染”出下一帧的图像, SONY的PSVR正是利用这一点, 把60FPS的画面Reproject成了120FPS.
Timewarp只能处理头部转向, 不能处理头部移动的情况, 而且一旦错过了垂直同步的时机, 一样需要等待下一次垂直同步才能显示出来. 那能不能在每次垂直同步之前, 强制进行一次Timewarp呢? 那就需要驱动来开个后门了…
驱动层面的优化
假设垂直同步时, 当前帧还没有渲染完毕, 这时如果要进行Timewarp的话, 就需要驱动提供一种高优先级的异步调用, 这就是异步Timewarp的由来: Timewarp操作与场景渲染并行执行, 如果没有新的渲染画面, 就继续使用上一帧的画面进行Timewarp.
这可以在一定程度上补偿FPS不达标造成的延迟问题, GearVR中正是应用了这项技术, 保证了手机VR的体验.
当然, PC上使用项技术还是有一些限制:
必须是Fermi, Kepler, Maxwell(或更新)核心的GPUGPU是以DrawCall为单位调度的, 所以耗时太长的DrawCall是插入不了Timewarp绘制操作的需要最新的Oculus和NVIDIA驱动支持
异步Timewarp并不是说FPS低于标准还能流畅跑, 这只是一种补救措施, 所以优化仍然要好好做-_-
驱动方面还有一些其它的优化空间, 比如强制提交渲染队列:
如果驱动中缓存了3帧, 那延迟优化就白做了…
另外就是大家耳熟能详的Back Buffer(Double Buffer Rendering), 其实也会增加一点延迟, 不如省掉这一步, 即Front Buffer Rendering, 或者叫Direct Mode:
VR渲染需要左右眼两幅不同的画面,现在的大部分引擎都是暴力的直接渲染两遍,这样做想想性能也很难达到75FPS(或90FPS)
以Oculus DK2为例,FPS,加上Super Sampling就变成了(UE4默认135%)FPS
如果是Oculus的消费者版本和HTC Vive,分辨率和刷新率更是提升到了FPS, 推荐配置是GTX980
以140%的Super Sampling为标准的话,只是Color Buffer每秒的数据量就有.4x1.4x90x4 byte ≈ 1.7GB
这还没算Post Processing里的N多张Render Target和Deferred Rendering的GBuffer、Light Buffer
性能永远是VR渲染的最具有挑战的部分,本着能省一点是一点的思路,VR的渲染优化我总结了这么一些:
虽然VR渲染需要左右两幅画面, 但是有很多效果是不需要画两次的:
Shadow Map部分的ReflectionOcclusion Query大多数Post Processing
API层面的优化, 有这么几个思路:
如果实现了多线程的渲染,一般会有一个Command Buffer,直接分别以不同的View提交两次针对每个物体分别提交两次, 相比上面这个State切换开销会节省一些使用Geometry Shader直接把Mesh分成左右眼的,drawcall不会翻倍了。但是坑爹的GS性能不咋地使用Instancing一次drawcall绘制两个Viewport, 跟GS类似,但性能大约是GS的3倍
这只是减少一些API调用、State切换还有Vertex处理的消耗,那瓶颈最大的Pixel处理的消耗怎么减少呢?
Valve使用一个Stencil Mesh, 剔除了17%的像素
NVIDIA的GameWorks也提供了一种方法, 叫Multi-Resolution Shading,大概的思路就是边缘的像素经过变形后会损失一些,另外人眼对视线中心的像素更敏感,所以周围一圈可以降低分辨率来渲染。通过这种方式可以节省25%到50的像素
硬件方面,NVIDIA和AMD都推出了双GPU渲染的支持,即每块GPU渲染一只眼睛的画面。嗯,这一定是个阴谋,他们肯定在偷着乐:这下显卡不愁卖了
SONY的PS VR在PS4的机能下实现了120FPS。听起来不可思议,实际是60FPS通过reproject插值出中间帧,跟Killzone的 和Oculus的Timewrap差不多原理
参考资料:
转自:http://blog.csdn.net/xoyojank/article/details/
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!PlayStation VR性能仍需优化 索尼正解决系统延迟问题
15:42:22来源:游迅网编辑:
& &索尼虚拟现实设备PlayStation VR即将于明年和我们见面,这款索尼&黑科技&也引起了很多玩家的关注。当然目前PlayStation VR还有诸多性能方面的问题需要优化,比如系统延迟部分。
& &PlayStation VR:
& &SCE美国开发服务和支援团队Ram Madhavan在麻省波士顿举行的Unity Technologies 2015会议上,一个名为&和PlayStation VR一起拥抱虚拟现实&的讲坛中提到了玩家和开发者将会感受到该设备会在系统延时方面进行改善,特别是在头部追踪时(他提到了当玩家转头时,HMD将会飞速追踪玩家的动作)&系统延迟,玩家会在18毫秒内完成, 但我们还没有完成,&他表示,&我相信在临近发行时还会有更多的改善。&
& &PlayStation VR即将于明年上半年发行,虽然目前具体的发行日期和价格还没有公布。整个套装包括5.7寸,1080p的OLED显示屏,刷新率达到120Hz,能够将60FPS运行的作品内容以120FPS在HMD上投射。同时该设备利用9个LED和PlayStation Camera的协助下,可以进行360度全方位追踪,并提供100度左右的视角。
女生寝室楼对面是男生寝室。这晚刚入夜,万籁俱寂,忽然听到男寝室中传来某男生高喊:王宁,我爱你!!霎时间对面楼层的女人们炸开了锅,纷纷羡慕。正当此时,却又听到另外一个男人大喊:刚刚谁喊哥的名字?!世界顿时安静了……
求签:跟闺蜜发信息说:明天我们去爬山吧?到山顶的庙里还能求个签。闺蜜问我:那你想求什么签?女:我想求大凶,你呢,你想求什么签?闺蜜:我,大吉吧!我……
近日,著名解说“护国法师”JOKER在直播时,无意中谈到了“国服吃鸡的事情”,谈到了《绝地求生》国服一再拖延上线的原因。
就在刚刚没多久,《绝地求生》官方发布了“正式服维护公告”,此次更新将于北京时间3月13日上午10点进行停机维护。表情系统将上线。下面一起来了解下详情。
原定于在昨晚九点开战的《绝地求生》第二届“诸神之战”,因收到了腾讯的律师函,被要求立即停办,同时负责举办的外挂群也被迫解散。
今天,《绝地求生》正式服进行了第七轮更新,主要上线了游戏内的好友功能和表情系统,以及一些新的Steam游戏成就。之前我们介绍了那些新增的游戏成就,现在就让我们一起开看下表情系统吧!
《绝地求生》大火之后,相关的周边也成了人们哄抢的对象,例如比较出名的平底锅、三级头、能量饮料等等配件,成为了一些吃鸡玩家的装逼必备产品。
近日,网上突然爆出了一些《绝地求生》新装备的信息,尤其是信号枪和超级空投这两个,可以说是颇受吃鸡玩家的关注。但就在网友们议论纷纷的时候,蓝洞又给大家来了个惊喜。
育碧的《孤岛惊魂》系列可以说是一款旅游兼消灭反派的作品,而新作《孤岛惊魂5》把背景设在了美国的一个田园小镇。这里的人信奉的是基督教,所以反派也是个疯狂的异教徒。
这两天的《绝地求生》真是很不消停,基本上处于更新维护中。这不,刚停机维护不久。现在,官方又发出了通告,称为了更新反外挂措施,将于3月15日上午10点再次停机维护。
《绝地求生》虽然是现在最火爆的游戏,但其开发商却堪称是最锉的!变相锁区,更新导致游戏崩溃,可以说根本没有一个游戏开发商的威严和能力,只能不断的对玩家道歉!再这样下去,《绝地求生》就要成下一个H1Z1。
今天,SE正式公布了古墓丽影系列新作《古墓丽影:暗影》,与此同时还放出了该片的首个先导预告。《古墓丽影:暗影》将会在9月14日正式发售,将登陆Xbox One、PS4和PC。4月27号将会放出详细内容。
48小时热点资讯
热门手游推荐Sina Visitor System内容字号:
段落设置:
字体设置:
精准搜索请尝试:
VR为何会延迟?Oculus首席科学家解惑
来源:作者:90Hz责编:汐元
延迟的角度来看,VR&技术是一项最需要“人在环中(Human-In-Loop)”的应用。对于高质量的&VR&体验而言,最重要的是用户头部物理移动与&HMD&上实时刷新图像到达用户眼睛之间的延迟时间。人类的感官系统在一定范围内能感知到视觉和听觉中相对较小的延迟,但是当绝对延迟控制大约&20ms&以内的时候,这些延迟几乎就不可察觉了。目前互动式的&3D&系统造成的延迟要比这个数字高上几倍,但如果不断调试同一组硬件的话我们终究会满足要求。——John Carmack延迟问题是&Oculus VR&所面对的主要问题,当然这也是&VR&整体需要解决主要问题。延迟能够影响沉浸式体验,也能够造成玩家的呕吐和不适应,所以找出造成这一问题的所在和解决方法是十分重要的。为什么会有延迟?整个系统的延迟控制在&50ms&就会感觉相对不错,但还是能感觉到。当延迟低于&20ms,人就无法感知出来了,这可以说是&VR&最佳体验的标准。信号传递有延迟预测传感器数据可以被用于减缓一些系统延迟,但即使是最精准的人类头部移动模型,在用户实际使用的时候,还是会有预测不准的时候。滤波和通讯所带来的延迟是持续存在的,但大多数传感器不同步的刷新会引入了一个可变延迟,或者说当渲染的帧率与传感器的刷新率不同的时候,也会造成延迟的不规律波动。屏幕刷新有延迟早期的&LCD&屏幕在画面滚动和变化的时候,因会有几十毫秒的残影而饱受诟病,但在过去二十年里,这一技术有了长足的进步。LCD&每一个像素点的转换时间取决于色彩变化的程度,一块优秀的面板的转换时间能控制在大约&10ms&之内,而为&3D&显示和游戏而优化过的显示器能减少一半左右的切换时间。一些不常见的显示技术比&LCD&面板的刷新速度更高;OLED&子像素的刷新时间低于&1ms,而激光显示屏和&CRT&反应一样及时。另一个不易察觉的延迟是:大多数显示器是逐行显示图像的,而显示器的图像是从计算机里读取的,但由于计算机自身的原因,会导致帧率为&60fps&显示器上,屏幕底部的画面要比顶部的刷新时间慢16ms&左右。在静止的屏幕上,这根本算不上问题。然而在&HMD&里,因为源图像是即时渲染出的,但不同的部分显示在屏幕上的时间是不同的,所以它可能造成图像的左边或右边被裁剪掉;或转动头部时,图像出现晃动。这个效应在使用&LCD&屏幕的&HMD&上不易察觉,但在刷新更快的&OLED&屏幕的&HMD&上却更容易显现出来。如何降低延迟?双&GPU&立体渲染可降延迟立体渲染降低延迟的一个诱人的解决方案是:将图形处理系统分拆成两个,并分别配备一个&GPU,每个&GPU&只需单独渲染一只眼睛的图像,这样可以达到最佳的性能表现和最低的延迟,其代价是要求设备能够管理两个相互独立的渲染内容的缓存。但它的问题是如果设备无法维持两个&GPU&的缓存,设备的数据吞吐性能会下降,在缓存过载的情况下,还会导致帧率更严重地下降。合理安排数据采样大多数模拟输入的任务不直接依赖于用户的输入数据,换而言之,这一数据的输入对一帧的延迟并不敏感。如果在需要用户输入的数据时采样,而不是在一开始就离线缓存输入数据,则能减少总体的延迟。(这种方法被称之为&late frame scheduling,延迟帧调度)late frame scheduling&也是一种解决方案,但其缺点在于它使得调度需求非常紧凑——通常情况下,late frame scheduling&需要一定的时间,并会造成电力浪费。不过如果你的帧率是由视频回扫决定的,而不是随机读取视频片段,那么通过图片驱动辅助确定目前需要扫描输出的准确位置,也会有助于降低延迟。避免渲染全部重新编码另一个与&late frame scheduling&一样,可以降低延迟的方法是:允许渲染编码根据底层的游戏编码,以及用户输入的最新样本,修正输入到渲染编码中的参数(这种方法称之为&View bypass)。对比用户前后输入样本,设备可以确定出哪一个是用户输入的变量。而变量可以被用于修正游戏提交给渲染编码的视觉矩阵。这种变量处理的方式可以最小化处理的复杂程度,不过游戏中也经常会有无需用户输入的渲染场景,比如经典镜头的剪辑或者玩家死亡的情形。一个为&VR&而生的游戏应该是否应该避免这样的情形尚有争议,因为在&HMD&里一个无法响应的视角是会让人感到迷惑或者不快,但在传统游戏设定里会有很多这样的场景,这样的场景很常见。合理安排每一帧的渲染时间如果我们能知道渲染一帧具体需要花费多长时间,那么一些额外的延迟可以通过整个渲染任务的&late frame scheduling&来节省下来,但这显然不实际,因为渲染时间难以预估。但渲染好的图像后是可以往后安排处理任务的,并且能争取到一段可预测的时间,从而使得&late fram scheduling&更容易。(这一方法被称之为&time warp)绘制出一副高质量的图像之后(使用过&View bypass),这幅图像不是直接呈现出来,而是让开发者继续抓取用户输入的最新的数据,生成更新的视觉参数,然后计算出与输入数据相匹配的已渲染图像需要变形成什么样,放置在什么位置。经过这一次转换之后,渲染变形后的图像能与与用户实际操作后应该看到的图像更相符。三种方案合体,突破“最低延迟”“view bypass”和“time warping”是两种互补的技术,它们既可以单独使用,也能够共同使用。time warping&可以将源图像的任意时间和位置变形成另一个,但是由于尽可能使用最新渲染出的图像,内部视差和屏幕边缘的细节会丢失,而&view bypass&渲染则可以帮助提供这部分细节。动作状态改变的操作,比如按下开关或者扣动扳机,通过线缆传输信号,延迟依然只能控制到大概在32-48ms&之间,但不可能低于使用过&view bypass&技术的&16-32ms&延迟。通过&bypass&的优化,关键的头部转动反馈在&60hz&的屏幕刷新率下,延迟能够保证控制在&2-18ms之间。如果结合低延时传感器和屏幕,人们甚至觉察不到延时。连续不断的&time warp&有可能将延迟降到&3ms&以下,这可能踏入人类和计算机都未曾探索过的领域。跳出VR,新技术依然作用强大传统的电脑交互界面大体上都没有&VR&所需的那么低的延迟,但是敏感的用户能够感觉出&20ms&或更低延迟之间的差异,这使得这项技术还能被用于&VR&之外的领域。一个比较有趣的应用场景是云游戏——用户通过简单的客服端或者应用发送至远程服务器,然后服务器持续不断地回传游戏的视频流。这能给予用户难以想象的便利——但是由于受到网络和压缩延迟的限制,这也降低了游戏的体验。View bypass&和&time warping&两者也能在服务器中起到作用,帮助减少由网络造成的很大一部分延迟。如果云端游戏客户端能设计的足够精巧,那么&time warping&完全可以储存在本地客户端里,但是它可能会明智地将减少的总延迟时间控制在&30-40ms&之间,避免与源图像之间差异过大。
软媒旗下软件:
IT之家,软媒旗下科技门户网站 - 爱科技,爱这里。
Copyright (C) , All Rights Reserved.}

我要回帖

更多关于 如何解决网络延迟问题 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信