买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:歌尔光学科技有限公司
摘要:本发明公开了一种虚拟现实场景的绘制方法和装置及一种虚拟现实设备,该方法包括:设置特定频率的垂直同步信号控制绘制线程和渲染线程;估算渲染线程完成一帧虚拟现实场景渲染所用的时间;设置唤醒时刻,在该时刻唤醒渲染线程开始一帧虚拟现实场景的渲染,使渲染线程在垂直同步信号到达之前刚好完成一帧虚拟现实场景的渲染;渲染完成后渲染线程进入等待被唤醒状态;在垂直同步信号到达时,绘制线程将渲染线程已经渲染完成的虚拟现实场景发送到屏幕,完成一帧虚拟现实场景的绘制,本方案减小了渲染线程渲染完成一帧虚拟现实场景的时刻与绘制线程将该场景发送给屏幕的时刻的间隔,降低了渲染线程的无效等待时间,降低了延迟,提高了用户体验。
主权项:1.一种虚拟现实场景的绘制方法,其特征在于,包括:设置特定频率的垂直同步信号控制绘制线程和渲染线程;估算渲染线程完成一帧虚拟现实场景渲染所用的时间;设置唤醒时刻,在所述唤醒时刻唤醒渲染线程开始一帧虚拟现实场景的渲染,使渲染线程在垂直同步信号到达之前刚好完成一帧虚拟现实场景的渲染;渲染完成后渲染线程进入等待被唤醒状态;根据下一次垂直同步信号的到达时间点和当前估算出的渲染所用的时间计算出时间点t,将时间点t作为所述唤醒时刻;在垂直同步信号到达时,绘制线程将渲染线程已经渲染完成的虚拟现实场景发送到屏幕;其中,所述估算渲染线程完成一帧虚拟现实场景渲染所用的时间,具体包括:在渲染线程的渲染指令中插入fence同步信号;利用所述fence同步信号查询渲染线程渲染每一帧虚拟现实场景所用的时间;每隔预设的时间段,统计该时间段内渲染线程渲染一帧虚拟现实场景所用的最长时间,作为估算出的渲染线程完成一帧虚拟现实场景渲染所用的时间。
全文数据:一种虚拟现实场景的绘制方法和装置及一种虚拟现实设备技术领域[0001]本发明涉及虚拟现实技术领域,具体涉及一种虚拟现实场景的绘制方法和装置及一种虚拟现实设备。背景技术[0002]目前主流的虚拟现实场景的绘制流程都是采用Timewarp异步刷新的方式,绘制模式如图1所示,一般有渲染线程render和绘制线程timewarp两个线程,渲染线程的结果由绘制线程获取并送到屏幕上,由绘制线程根据垂直同步信号VSYNC来控制两个线程的运行。[0003]渲染线程线程完成一次绘制后,不是直接进行下次绘制,而是等待绘制线程的唤醒。绘制线程每次接收到垂直同步信号后,进行绘制,并唤醒渲染线程进行下一帧图像的渲染。以60hz的屏幕为例,二者每一次的绘制周期是16.67ms。[0004]该模式的缺点为:渲染线程每次绘制完以后都要处于等待状态,等待绘制线程的唤醒,若是渲染线程的绘制任务比较轻,就会在短时间内绘制完成,那么渲染好的图像就需要等待更长的时间才会被屏幕显示出来,一帧图像从渲染到屏幕显示出来的时间间隔越长,用户感受到的延迟就会越大,会带来眩晕等不良体验。发明内容[0005]本发明提供了一种虚拟现实场景的绘制方法和装置及一种虚拟现实设备,以降低渲染线程在绘制过程中的无效等待时间,降低延迟,提高用户体验。[0006]根据本发明的一个方面,本发明提供了一种虚拟现实场景的绘制方法,包括:[0007]设置特定频率的垂直同步信号控制绘制线程和渲染线程;[0008]估算渲染线程完成一帧虚拟现实场景渲染所用的时间;[0009]设置唤醒时刻,在所述唤醒时刻唤醒渲染线程开始一帧虚拟现实场景的渲染,使渲染线程在垂直同步信号到达之前刚好完成一帧虚拟现实场景的渲染;渲染完成后渲染线程进入等待被唤醒状态;[0010]在垂直同步信号到达时,绘制线程将渲染线程已经渲染完成的虚拟现实场景发送到屏幕。[0011]根据本发明的另一个方面,本发明提供了一种虚拟现实场景的绘制装置,包括垂直同步单元、渲染单元和绘制单元;[0012]所述垂直同步单元,用于向所述渲染单元和所述绘制单元发送特定频率的垂直同步信号;[0013]所述渲染单元,用于估算渲染线程完成一帧虚拟现实场景渲染所用的时间,设置唤醒时刻,在所述唤醒时刻唤醒渲染线程开始一帧虚拟现实场景的渲染,使渲染线程在垂直同步信号到达之前刚好完成一帧虚拟现实场景的渲染;控制渲染线程在渲染完成后进入等待被唤醒状态;[0014]所述绘制单元,用于在垂直同步信号到达时,将渲染线程已经渲染完成的虚拟现实场景发送到屏幕。[0015]根据本发明的又一个方面,本发明提供了一种虚拟现实设备,包括上述的虚拟现实场景的绘制装置。[0016]本发明的有益效果是:本发明实施例在渲染虚拟现实场景的过程中,根据垂直同步信号控制绘制线程和渲染线程,通过估算渲染线程完成一帧虚拟现实场景渲染所用的时间,并根据该时间设置渲染时刻,在该时刻唤醒渲染线程开始一帧虚拟现实场景的渲染,使渲染线程在垂直同步信号到达之前刚好完成一帧虚拟现实场景的渲染,在垂直同步信号到达时绘制线程将渲染线程已经渲染完成的虚拟现实场景发送到屏幕,由此减小了渲染线程渲染完成一帧虚拟现实场景的时刻与绘制线程将该场景发送给屏幕的时刻的间隔,有效的降低了渲染线程的无效等待时间,降低了延迟,提高了用户体验。附图说明[0017]图1是现有的主流虚拟现实场景的绘制方案的原理示意图;[0018]图2是本发明一个实施例提供的一种虚拟现实场景的绘制方法的流程图;[0019]图3是本发明一个实施例提供的一种虚拟现实场景的绘制方法的原理图;[0020]图4是本发明一个实施例提供的一种虚拟现实场景的绘制装置的功能框图;[0021]图5是本发明一个实施例提供的一种虚拟现实设备的功能框图。具体实施方式[0022]本发明的设计构思是:现有的虚拟现实场景的绘制流程中,渲染线程每次绘制完以后都要处于等待状态,等待绘制线程的唤醒,若是渲染线程的绘制任务比较轻,就会在短时间内绘制完成,那么渲染好的图像就需要等待更长的时间才会被屏幕显示出来,一帧图像从渲染到屏幕显示出来的时间间隔越长,用户感受到的延迟就会越大,会带来眩晕等不良体验。针对这种情况,本发明在渲染虚拟现实场景的过程中,根据垂直同步信号控制绘制线程和渲染线程,通过估算渲染线程完成一帧虚拟现实场景渲染所用的时间,并根据该时间设置渲染时刻,在该时刻唤醒渲染线程开始一帧虚拟现实场景的渲染,使渲染线程在垂直同步信号到达之前刚好完成一帧虚拟现实场景的渲染,在垂直同步信号到达时绘制线程将渲染线程己经渲染完成的虚拟现实场景发送到屏幕,由此减小了渲染线程渲染完成一帧虚拟现实场景的时刻与绘制线程将该场景发送给屏幕的时刻的间隔,有效的降低了渲染线程的无效等待时间,降低了延迟,提高了用户体验。[0023]实施例一[0024]图2是本发明一个实施例提供的一种虚拟现实场景的绘制方法的流程图,如图2所示,本实施例提供的虚拟现实场景的绘制方法包括:[0025]步骤S210:设置特定频率的垂直同步信号VSYNC控制绘制线程timewarp和渲染线程render〇[0026]步骤S220:估算渲染线程完成一帧虚拟现实场景渲染所用的时间。[0027]渲染一帧虚拟现实场景所用的时间与设备的硬件配置有关,例如绘制相同的场景,高端的显卡所需的渲染时间较短。另一方面,渲染一帧虚拟现实场景所用的时间还与渲染的场景有关,当场景比较复杂时,渲染所用的时间较长。[0028]为了能够估算出比较准确的渲染用时,优选实施例在程序运行期间动态获取并更新渲染用时的估计值:首先,在渲染线程的渲染指令中插入fence同步信号,利用fence同步信号查询渲染线程渲染每一帧虚拟现实场景所用的时间。然后每隔一段时间,统计该时间段内渲染线程渲染一帧虚拟现实场景所用的最长时间,作为估算出的渲染线程完成一帧虚拟现实场景渲染所用的时间。例如每隔一秒的时间统计一次过去一秒钟时间内渲染线程渲染一帧虚拟现实场景的最长时间T,以此来更新渲染用时的估计值,保证在该时间内,渲染线程可以完成一帧虚拟现实场景的渲染。由于本实施例中,渲染线程完成一帧虚拟现实场景渲染所用的时间是动态调整的,即使场景的复杂度发生变化使渲染的任务量增加或减少,估计值也可以根据渲染线程最近的工作情况动态调整,从而获取比较准确的渲染用时的估计值。[0029]步骤S230:设置唤醒时刻,在该时刻唤醒渲染线程开始一帧虚拟现实场景的渲染,使渲染线程在垂直同步信号到达之前刚好完成一帧虚拟现实场景的渲染;渲染完成后渲染线程进入等待被唤醒状态。[0030]优选地,可以以垂直同步信号到达的时间点为基准,提前估算出的渲染线程完成一帧虚拟现实场景渲染所用的时间T,所得到的时刻,作为唤醒时刻。如图3所示,根据下一次垂直同步信号到达时间点和当前估算出的渲染所用的时间T,可以算出一个时间点t,将时间点t作为渲染线程被唤醒的时间,因为此时唤醒渲染线程可以保证在下个垂直同步信号到来之前完成一帧虚拟现实场景的渲染,并在下个垂直同步信号到达时,绘制线程就会将该帧场景发送至屏幕,场景渲染完成的时刻与场景发送到屏幕的时刻之间的间隔最短,有效的降低了渲染线程的无效等待时间,一定程度的降低了由此带来的延迟。[0031]步骤S240:在垂直同步信号到达时,绘制线程将渲染线程已经渲染完成的虚拟现实场景发送到屏幕,完成一帧虚拟现实图像的显示。[0032]与图1中现有的绘制方案相比,本实施例的绘制线程在垂直同步信号到达时将渲染完成的虚拟现实场景发送到屏幕之后,并不是立即唤醒渲染线程开始下一帧场景的渲染,而是等待一段时间,直到图3中的时刻t才唤醒渲染线程开始渲染下一帧场景。如果在唤醒时刻t之前的时刻tl,渲染线程确实已经被唤醒,若在时刻tl立即开始一帧场景的渲染,则会在下一个垂直同步信号到来之前提前一段时间完成渲染任务,由此产生多余的一段延迟,因此在这种情况下选择则继续等待一段时间,直到时刻tl再进行渲染。如果在唤醒时刻t之后的时刻t2渲染线程被唤醒,则直接进行渲染,无需等待。[0033]本实施例在虚拟现实场景的绘制流程中通过控制渲染线程开始渲染的时间,有效的降低了渲染线程的无效等待时间,降低了延迟,提高了用户体验。[0034]实施例二[0035]图4是本发明一个实施例提供的一种虚拟现实场景的绘制装置的功能框图,如图4所示,本实施例提供的虚拟现实场景的绘制装置包括垂直同步单元410、渲染单元42〇和绘制单元430。[0036]垂直同步单元410向渲染单元420和绘制单元430发送特定频率的垂直同步信号。渲染单元420估算渲染线程完成一帧虚拟现实场景渲染所用的时间,并设置唤醒时刻,在该时刻唤醒渲染线程开始一帧虚拟现实场景的渲染,使渲染线程在垂直同步信号到达之前刚好完成一帧虚拟现实场景的渲染;以及控制渲染线程在渲染完成后进入等待被唤醒状态。绘制单元430在垂直同步信号到达时,将渲染线程已经渲染完成的虚拟现实场景发送到屏幕,完成一帧虚拟现实场景的绘制。[0037]优选实施例中,渲染单元420包括渲染用时估算模块421。渲染用时估算模块421在渲染线程的渲染指令中插入fence同步信号,利用fence同步信号查询渲染线程渲染每一帧虚拟现实场景所用的时间,并且每隔预设的时间,统计该时间段内渲染线程渲染一帧虚拟现实场景所用的最长时间,例如每隔一秒的时间统计一次过去一秒钟时间内渲染线程渲染一帧虚拟现实场景的最长时间T,作为估算出的渲染线程完成一帧虚拟现实场景渲染所用的时间。[0038]在另一个优选实施例中,420渲染单元还包括唤醒时刻设置模块422。用唤醒时刻设置模块422以垂直同步信号到达的时间点为基准,提前渲染用时估算模块421估算出的渲染线程完成一帧虚拟现实场景渲染所用的时间T,所得到的时刻,作为唤醒时刻,即如图3所示的时刻t。[0039]若在唤醒时刻t之前,例如时刻tl,渲染线程已经被唤醒,那么渲染单元420控制渲染线程等待直到唤醒时刻t,才开始一帧虚拟现实场景的渲染,防止在下一个垂直同步信号到来之前提前一段时间完成渲染任务,产生多余的一段延迟。如果在唤醒时刻t之后,例如时刻t2,渲染线程被唤醒,则直接进行渲染,无需等待。本实施例提供的虚拟现实场景的绘制装置可以有效的降低渲染线程的无效等待时间,降低延迟,提高用户体验。[0040]实施例三[0041]图5是本发明一个实施例提供的一种虚拟现实设备的功能框图,如图5所示,本实施例提供的虚拟现实设备500包括上述实施例二中的虚拟现实场景的绘制装置510。[0042]虚拟现实场景的绘制装置510在虚拟现实设备500渲染虚拟现实场景的过程中,根据垂直同步信号控制绘制线程和渲染线程,通过估算渲染线程完成一帧虚拟现实场景渲染所用的时间,并根据该时间设置渲染时刻,在该时刻唤醒渲染线程开始一帧虚拟现实场景的渲染,使渲染线程在垂直同步信号到达之前刚好完成一帧虚拟现实场景的渲染,在垂直同步信号到达时绘制线程将渲染线程已经渲染完成的虚拟现实场景发送到屏幕,由此减小了渲染线程渲染完成一帧虚拟现实场景的时刻与绘制线程将该场景发送给屏幕的时刻的间隔,有效的降低了渲染线程的无效等待时间,降低了虚拟现实设备500的延迟,提高了产品的用户体验。[0043]以上所述,仅为本发明的具体实施方式,在本发明的上述教导下,本领域技术人员可以在上述实施例的基础上进行其他的改进或变形。本领域技术人员应该明白,上述的具体描述只是更好的解释本发明的目的,本发明的保护范围应以权利要求的保护范围为准。
权利要求:1.一种虚拟现实场景的绘制方法,其特征在于,包括:设置特定频率的垂直同步信号控制绘制线程和渲染线程;估算渲染线程完成一帧虚拟现实场景渲染所用的时间;设置唤醒时刻,在所述唤醒时刻唤醒渲染线程开始一帧虚拟现实场景的渲染,使渲染线程在垂直同步信号到达之前刚好完成一帧虚拟现实场景的渲染;渲染完成后渲染线程进入等待被唤醒状态;在垂直同步信号到达时,绘制线程将渲染线程己经渲染完成的虚拟现实场景发送到屏幕。2.如权利要求1所述的方法,其特征在于,所述估算渲染线程完成一帧虚拟现实场景渲染所用的时间,具体包括:在潰染线程的植染指令中插入fence同步信号;利用所述fence同步信号查询渲染线程渲染每一帧虚拟现实场景所用的时间;每隔预设的时间,统计该时间段内渲染线程渲染一帧虚拟现实场景所用的最长时间,作为估算出的渲染线程完成一帧虚拟现实场景渲染所用的时间。3.如权利要求2所述的方法,其特征在于,所述设置唤醒时刻具体包括:以垂直同步信号到达的时间点为基准,提前估算出的渲染线程完成一帧虚拟现实场景渲染所用的时间,所得到的时刻,作为所述唤醒时刻。4.如权利要求1所述的方法,其特征在于,所述方法还包括:若在所述唤醒时刻之前,渲染线程已经被唤醒,则控制渲染线程等待直到所述唤醒时亥!J,才开始一帧虚拟现实场景的植染。5.—种虚拟现实场景的绘制装置,其特征在于,包括垂直同步单元、渲染单元和绘制单元;所述垂直同步单元,用于向所述渲染单元和所述绘制单元发送特定频率的垂直同步信号;所述渲染单元,用于估算渲染线程完成一帧虚拟现实场景渲染所用的时间,设置唤醒时刻,在所述唤醒时刻唤醒渲染线程开始一帧虚拟现实场景的渲染,使渲染线程在垂直同步信号到达之前刚好完成一帧虚拟现实场景的渲染;控制渲染线程在渲染完成后进入等待被唤醒状态;所述绘制单元,用于在垂直同步信号到达时,将渲染线程已经渲染完成的虚拟现实场景发送到屏幕。6.如权利要求5所述的装置,其特征在于,所述渲染单元包括渲染用时估算模块,用于:在渲染线程的渲染指令中插入fence同步信号;利用所述fence同步信号查询渲染线程渲染每一帧虚拟现实场景所用的时间;每隔预设的时间,统计该时间段内渲染线程渲染一帧虚拟现实场景所用的最长时间,作为估算出的渲染线程完成一帧虚拟现实场景渲染所用的时间。7.如权利要求6所述的装置,其特征在于,所述渲染单元还包括唤醒时刻设置模块,用于:以垂直同步信号到达的时间点为基准,提前所述渲染用时估算模块估算出的渲染线程完成一帧虚拟现实场景渲染所用的时间,所得到的时刻,作为所述唤醒时刻。8.如权利要求5所述的装置,其特征在于,所述渲染单元还用于,若在所述唤醒时刻之前,渲染线程已经被唤醒时,则控制渲染线程等待直到所述唤醒时刻,才开始一帧虚拟现实场景的植染。9.一种虚拟现实设备,其特征在于,包括如权利要求5-8任一项所述的虚拟现实场景的绘制装置。
百度查询: 歌尔光学科技有限公司 一种虚拟现实场景的绘制方法和装置及一种虚拟现实设备
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。