一种用于虚拟现实的异步时间卷曲计算方法与流程

文档序号:11921983阅读:201来源:国知局
一种用于虚拟现实的异步时间卷曲计算方法与流程

本发明涉及一种时间卷曲计算方法,尤其是一种用于虚拟现实的异步时间卷曲计算方法。



背景技术:

虚拟现实(virtual reality,VR)技术是利用电脑模拟产生一个三维空间的虚拟世界,提供给用户关于视觉等感官的模拟,让用户仿佛身临其境,由于其逼真的效果,被广泛应用于教育、医学、交通等领域,引起越来越多的关注。然而,为了解决虚拟现实设备在使用中存在的晕动问题,在渲染内容的显示方面,对计算机以及显示屏等相关软硬件也提出了越来越高的要求。鉴于应用产生内容帧的时间不固定,越来越多不同的技术被用于保证用户的相对稳定和良好的体验。

目前为了降低传感器传输数据到显示屏显示图像的延时,减少晕动症产生的几率,刷新率达到90Hz的OLED显示屏幕在目前市售的虚拟现实头戴显示设备中被广泛采用,但受限于目前Windows系统的图形渲染架构以及显卡的硬件结构,很多解决方案依赖于内容帧的产生也要能够符合90Hz的屏幕,即需要在11.11ms之内完成渲染。另一方面,为了减少屏幕的颗粒感,2K分辨率的屏幕得到了广泛的使用,在如此高的分辨率下,要在11.11ms之内完成一帧内容的渲染,对于任何一个复杂度稍高的场景,都是不易达到的要求。

为了应对上述问题,常用的技术有时间卷曲(Time Warping)和再投影(Reprojection)技术。然而,受限于目前Windows系统的图形系统架构,所有的图形任务都是由3D引擎完成的,而目前的主流显卡,均只有一个3D引擎,因此时间卷曲和内容帧的渲染是串行执行的。此种同步的时间卷曲技术和再投影技术虽然可以让最后显示的内容更贴近传感器最新的坐标,但是仍然受制于内容帧产生的帧率,当内容帧的刷新率小于45Hz时,再投影技术的应用受到了很大限制。

因此本发明设计了一种异步时间卷曲(Asynchronous Time Warping,ATW)计算方法,绕过目前Windows操作系统限制,实现从CPU到显卡的整个工作流水线的全异步操作,保证整个渲染显示过程的稳定流畅,能够有效的解决显示延时较长而引起晕动症等问题,以此给用户提供良好的虚拟现实沉浸感。



技术实现要素:

本发明目的是:提供一种用于虚拟现实的异步时间卷曲计算方法,绕过目前Windows操作系统限制,实现从CPU到显卡的整个工作流水线的全异步操作,保证整个渲染显示过程的稳定流畅。

本发明的技术方案是:本方案根据LiquidVR底层技术,设计实现了一种异步时间卷曲的算法。在CPU(中央处理器)端利用CPU的多线程技术,有单独的CPU线程负责定时读取渲染完成的内容,创建一个基于计算引擎的工作上下文,根据每次垂直同步信号产生的时间,在下一次垂直同步信号产生之前的3ms至5ms,生成并分发时间卷曲的显卡工作任务,以保证经过时间卷曲渲染的内容能够适时显示到头戴显示设备中。在GPU(图像处理器)端通过LiquidVR接口,绕过Windows系统架构的限制,将时间卷曲任务分发到显卡的计算引擎上,独立于3D引擎,可以与内容的渲染同时工作,即时间卷曲操作和内容帧的渲染可以并行执行。

本发明技术关键点在于在CPU和GPU端都采用了异步的工作方式,因此本发明方案对共享内容的读写的标志量进行了严格定义,避免了内容渲染和虚拟现实合成两个线程同时操作关键变量,同时也防止GPU的3D引擎和计算引擎同时操作同一个图形资源,并且本方案中通过增加一个数据安全区来保护CPU线程中的互斥变量,用LiquidVR技术中的GPU屏障来保证显卡上的资源不会产生资源竞争。

异步时间卷曲与同步时间卷曲与再投影技术相比,在实现难度上有所增加。但是,异步时间卷曲能够提供相对最稳定、最流畅的用户体验,并且大大降低了对内容渲染速度的要求,推动了虚拟现实技术的应用;另一方面,即使内容渲染帧率达不到相应要求,异步时间卷曲技术也能够在很大程度上改善用户的虚拟现实体验。

与现有技术相比,本发明技术方案具有以下有益效果:本发明方案的异步时间卷曲技术绕过目前Windows系统的限制,实现从CPU到GPU整个工作流水线的全异步并行操作,保证整个渲染显示过程的稳定流畅,且通过设置GPU屏障和标志量,准确控制工作的时序和流程,避免资源竞争,以此给用户提供良好的虚拟现实沉浸感的体验。

附图说明

图1为同步时间卷曲技术实现流程图;

图2为再投影技术实现流程图;

图3为本发明技术方案异步时间卷曲实现流程图。

具体实施方式

如背景技术中所述,现有技术的时间卷曲方法在实际应用中仍然存在受制于内容帧产生的帧率、受限于GPU架构等问题。

在本发明方案中,虚拟现实合成端启动一个独立的CPU线程,并创建一个基于计算引擎的工作上下文,根据每次垂直同步信号产生的时间,提前生成并分发时间卷曲的显卡工作任务,以保证经过时间卷曲计算的渲染内容能够适时显示到头戴显示设备中。

为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。

图1为同步时间卷曲技术实现流程图;

步骤101:根据已采集到的虚拟现实设备姿态信息进行内容产生,如完成渲染内容1(步骤102)和渲染内容2(步骤103)步骤;

所述的渲染内容1和渲染内容2为根据不同的虚拟现实设备姿态信息所进行的内容渲染,因此,内容渲染过程所需时间不同;

所述的内容渲染耗时可分为三类:1.内容渲染耗时与时间卷曲计算耗时之和小于相邻垂直同步信号的时间差,2.内容渲染耗时与时间卷曲计算耗时之和大于相邻垂直同步信号的时间差但小于相邻垂直同步信号的时间差的两倍,3.内容渲染耗时与时间卷曲计算耗时之和大于相邻垂直同步信号的时间差的两倍;

可选的,当屏幕刷新率定为90Hz时,相邻垂直同步信号的时间差为11.11ms;

步骤104:虚拟现实合成操作,即将步骤101所产生的渲染内容根据当前即时采集的虚拟现实设备姿态信息进行时间卷曲计算;

在同步时间卷曲技术中,只有当所述内容产生步骤(步骤101)工作完成,才进行相应渲染内容(渲染内容1)的时间卷曲(步骤105)操作;

在同步时间卷曲技术中,所述内容产生步骤与时间卷曲计算步骤为串行操作;

步骤107:显示控制步骤,即在显示控制设备收到垂直同步信号(步骤110)后,完成所述虚拟现实内容的显示;

在同步时间卷曲技术中,如果显示控制设备收到所述垂直同步信号时,CPU和GPU已完成内容渲染(步骤102)和时间卷曲计算(步骤105)步骤,则在虚拟现实头戴显示设备上显示新内容(步骤108);

在同步时间卷曲技术中,如果显示控制设备收到所述垂直同步信号时,CPU和GPU未完成内容渲染(步骤103)和时间卷曲计算步骤,则在虚拟现实头戴显示设备上保持显示之前内容,等待下一个垂直同步信号,当收到下一个垂直同步信号时,如果CPU和GPU已完成内容渲染(步骤103)和时间卷曲计算(步骤106)步骤,则在虚拟现实头戴显示设备上显示新内容(步骤109)。

图2为再投影技术实现流程图;

步骤201:根据已采集到的虚拟现实设备姿态信息进行内容产生,如完成渲染内容1(步骤202)和渲染内容2(步骤203)步骤;

所述步骤202和步骤203的内容渲染所需时间不同;

步骤204:虚拟现实合成操作,即将步骤201所产生的渲染内容根据当前即时采集的虚拟现实设备姿态信息进行再投影计算;

所述再投影计算可分为两类:一类为预测再投影(如步骤205和步骤207),另一类为再投影(如步骤206和步骤208);

所述的虚拟现实合成操作会在GPU不繁忙的情况下,在收到一个垂直同步信号后立即预先进行一次预测再投影(步骤205),即根据当前的虚拟现实设备姿态信息,通过算法预测下一个垂直同步信号到来时虚拟现实设备可能的姿态,并预先对前一帧的渲染内容作相应变换,若在下一个垂直同步信号产生时,内容帧没有及时渲染完成(如步骤203中渲染内容2未在步骤212的垂直同步信号到来时渲染完成),则该预测帧会被显示在头显中(如步骤212中显示内容1-1)。这样,当内容渲染错过一个垂直同步信号时,依然可以给用户提供良好的体验。

但此再投影技术方案存在以下问题:第一,所显示的内容(如步骤212中显示内容1-1)是否与显示时虚拟现实设备的当前姿态相符合依赖于预测再投影算法的精确性,相比时间卷曲技术,再投影需要预测的时间更长,算法相对来说更为复杂;第二,如果内容渲染方面效率更低,耗时更长,连续错过两个垂直同步信号以后,预测再投影技术无法预测相隔垂直同步信号所需显示的内容,就会出现掉帧现象,影响虚拟现实体验的沉浸感。

在再投影技术中,所述预测再投影步骤(步骤205)工作与相应内容渲染步骤(步骤202中渲染内容1)与所述的相应内容的再投影(步骤206)操作为并行操作;

步骤209:显示控制步骤,即在显示控制设备收到垂直同步信号(步骤210、步骤211、步骤212、步骤213)后,完成所述虚拟现实内容的显示;

在再投影技术中,如果显示控制设备收到所述垂直同步信号时,CPU和GPU已完成内容渲染(步骤202)和再投影计算(步骤206)步骤,则在虚拟现实头戴显示设备上显示新内容(步骤211中显示内容1);如果显示控制设备收到所述垂直同步信号时,CPU和GPU未完成内容渲染(步骤203),则在虚拟现实头戴显示设备上显示经过预测再投影计算(步骤207)的渲染内容(步骤212中显示内容1-1),等待下一个垂直同步信号,当收到下一个垂直同步信号时,如果CPU和GPU已完成内容渲染(步骤203)和再投影计算(步骤208),则在虚拟现实头戴显示设备上显示新内容(步骤213中显示内容2);如果渲染内容2耗时过长,在步骤213中垂直同步信号到来时仍未完成渲染工作,则会出现掉帧现象,影响虚拟现实体验。

图3为本发明技术方案异步时间卷曲实现流程图;

步骤301:根据已采集到的虚拟现实设备姿态信息进行内容产生,如完成渲染内容1(步骤302)和渲染内容2(步骤303)步骤;

所述的渲染内容1和渲染内容2为根据不同的虚拟现实设备姿态信息所进行的内容渲染,因此,内容渲染过程所需时间不同;

可选的,当屏幕刷新率定为90Hz时,相邻垂直同步信号的时间差为11.11ms;

步骤304:虚拟现实合成操作,即将步骤301所产生的渲染内容根据当前即时采集的虚拟现实设备姿态信息进行时间卷曲计算;

在本发明异步时间卷曲技术中,所述时间卷曲计算(步骤305、步骤306、步骤307)与相应内容渲染步骤(步骤302中渲染内容1、步骤303中渲染内容2)为并行操作,即虚拟现实合成端启动一个独立的CPU线程,并创建一个基于计算引擎的工作上下文,根据每次垂直同步信号产生的时间,提前生成并分发时间卷曲的显卡工作任务,以保证经过时间卷曲计算的渲染内容能够适时显示到头戴显示设备中。

步骤308:显示控制步骤,即在显示控制设备收到垂直同步信号(步骤309、步骤310、步骤311、步骤312)后,完成所述虚拟现实内容的显示;

在异步时间卷曲技术中,如果显示控制设备收到所述垂直同步信号时,CPU和GPU已完成内容渲染(步骤302)和时间卷曲计算(步骤305)步骤,则在虚拟现实头戴显示设备上显示新内容(步骤309中显示内容1);如果显示控制设备收到所述垂直同步信号(步骤311)时,CPU和GPU未完成内容渲染(步骤303),则根据垂直同步信号到来前的预设时刻虚拟现实头戴显示设备的姿态信息,对前一帧渲染内容(步骤302中渲染内容1)进行时间卷曲计算,并显示相应内容(步骤311中显示内容1-1),等待下一个垂直同步信号,当收到下一个垂直同步信号(步骤312)时,如果CPU和GPU已完成内容渲染(步骤303)和时间卷曲计算(步骤307),则在虚拟现实头戴显示设备上显示新内容(步骤312中显示内容2);

本发明异步时间卷曲技术的优点在于步骤304与步骤301为并行操作,即在每个垂直同步信号到来前的预设时刻根据当前虚拟现实设备的姿态信息进行时间卷曲计算,而不受渲染内容产生的影响,因此所显示的内容(如步骤311中显示内容1-1)与显示时虚拟现实设备的当前姿态更加对应,大大降低了对内容渲染速度的要求,且如果内容渲染方面效率更低,耗时更长,连续错过多个垂直同步信号时,异步时间卷曲技术能够尽可能使所显示内容符合当前虚拟显示设备姿态,从而降低显示延时,增强虚拟现实沉浸感,可以在很大程度上改善用户的体验。

具体而言,本发明方案所公开的虚拟现实设备包括但不限于虚拟现实头戴显示设备与操作控制设备;

所述虚拟现实头戴显示设备包括但不限于虚拟现实头盔、虚拟现实眼镜;

所述虚拟现实操作控制设备包括但不限于虚拟现实操作手柄及各种操作外设;

以上所述,仅为本发明具体实施方式。本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求所界定的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1