三维虚拟场景的渲染方法和装置与流程

文档序号:11865996阅读:276来源:国知局
三维虚拟场景的渲染方法和装置与流程

本发明涉及计算机软件领域,特别涉及一种三维虚拟场景的渲染方法和装置。



背景技术:

在虚拟现实应用中,渲染帧率是影响用户体验的关键性因素,因此如何提高渲染画面的帧率成为亟待解决的问题。当渲染帧率较低时,常见的解决思路之一是从场景制作层面减少渲染的开销,另一是从渲染流程上入手。



技术实现要素:

为此,需要提供一种能够解决在虚拟现实场景中由于低帧率导致的帧间跳变的问题的技术方案。

为实现上述目的,发明人提供了一种三维虚拟场景的渲染方法,包括如下步骤:

启动图片帧插值渲染模式;

判断当前画面的渲染状态是否已完成,如是则将渲染完成的该帧画面直接输出到显示屏幕,否则:

生成中间帧并将中间帧输出到显示屏幕,所述生成中间帧具体包括:扩大上一帧渲染画面的渲染尺寸并预测虚拟现实设备的当前偏移数据,根据预测的虚拟现实设备的当前偏移数据从扩大渲染尺寸的上一帧渲染画面中截取生成中间帧。

进一步地,所述的三维虚拟场景的渲染方法中,所述步骤“预测虚拟现实设备的当前偏移数据”具体包括:

根据上一帧或上若干帧内虚拟现实设备在偏移方向上的加速度建立概率模型和误差函数以预测虚拟现实设备的当前偏移方向;

根据上一帧或上若干帧内虚拟现实设备在偏移方向上的加速度建立概率模型和误差函数以预测虚拟现实设备的当前偏移速度。

进一步地,所述的三维虚拟场景的渲染方法中,启动图片帧插值渲染模式之前还有一监测和判断的步骤:保持监测渲染画面的帧率,当画面的帧率不小于一预设阈值时画面保持以原分辨率进行渲染;当画面帧率小于预设阈值时启动图片帧插值渲染模式。

进一步地,所述的三维虚拟场景的渲染方法中,启动图片帧插值渲染模式之前还有一监测和判断的步骤:保持监测渲染画面的帧率,当画面的帧率变化幅度不大于一预设阈值时画面保持以原分辨率进行渲染;当画面的帧率变化幅度大于预设阈值时启动图片帧插值渲染模式。

进一步地,所述的三维虚拟场景的渲染方法中,所述步骤“扩大上一帧渲染画面的渲染尺寸”具体包括:根据硬件刷新率和虚拟显示设备的偏移速度确定对上一帧渲染画面的渲染尺寸的扩大水平。

发明人同时还提供了一种三维虚拟场景的渲染装置,包括启动单元、渲染状态判断单元、中间帧生成单元和输出单元;

所述启动单元用于启动图片帧插值渲染模式;

所述渲染状态判断单元用于判断当前画面的渲染状态是否已完成,当渲染状态判断单元判定当前画面的渲染状态已完成时输出单元将渲染完成的该帧画面直接输出到显示屏幕,否则:

中间帧生成单元生成中间帧,输出单元将中间帧输出到显示屏幕;中间帧生成单元生成中间帧具体包括:扩大上一帧渲染画面的渲染尺寸并预测虚拟现实设备的当前偏移数据,根据预测的虚拟现实设备的当前偏移数据从扩大渲染尺寸的上一帧渲染画面中截取生成中间帧。

进一步地,所述的三维虚拟场景的渲染装置中,中间帧生成单元包括偏移预测模块;所述偏移预测模块用于预测虚拟现实设备的当前偏移数据,具体包括:

根据上一帧或上若干帧内虚拟现实设备在偏移方向上的加速度建立概率模型和误差函数以预测虚拟现实设备的当前偏移方向;

根据上一帧或上若干帧内虚拟现实设备在偏移方向上的加速度建立概率模型和误差函数以预测虚拟现实设备的当前偏移速度。

进一步地,所述的三维虚拟场景的渲染装置还包括监控单元,用于控制启动单元启动图片帧插值渲染模式;具体包括:监控单元保持监测渲染画面的帧率,当画面的帧率不小于一预设阈值时画面保持以原分辨率进行渲染;当画面帧率小于预设阈值时控制启动单元启动图片帧插值渲染模式。

进一步地,所述的三维虚拟场景的渲染装置还包括监控单元,用于控制启动单元启动图片帧插值渲染模式;具体包括:监控单元保持监测渲染画面的帧率,当画面的帧率变化幅度不大于一预设阈值时画面保持以原分辨率进行渲染;当画面的帧率变化幅度大于预设阈值时控制启动单元启动图片帧插值渲染模式。

进一步地,所述的三维虚拟场景的渲染装置中,中间帧生成单元包括渲染扩大模块,用于扩大上一帧渲染画面的渲染尺寸,具体包括:根据硬件刷新率和虚拟显示设备的偏移速度确定对上一帧渲染画面的渲染尺寸的扩大水平。

区别于现有技术,上述技术方案将三维虚拟场景中动态物件与静态物件进行分离,利用静态物件可见性运动差异较小的特点,预先渲染出较大的静态画面,根据偏移量从合适的区域截取出视口大小的图片插入丢帧的渲染帧内,从而解决在虚拟现实场景中由于低帧率导致的帧间跳变的情况。

附图说明

图1为本发明一实施方式所述的三维虚拟场景的渲染方法的流程图;

图2为本发明一实施方式所述的三维虚拟场景的渲染装置的结构示意图。

附图标记说明:

1-启动单元

2-渲染状态判断单元

3-中间帧生成单元31-偏移预测模块32-渲染扩大模块

4-输出单元

5-监控单元

具体实施方式

为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。

请参阅图1,为本发明一实施方式所述的方法的流程图;所述方法包括如下步骤:

S1、启动图片帧插值渲染模式;

S2、判断当前画面的渲染状态是否已完成,如是则进入S3,否则进入S4:

S3、将渲染完成的该帧画面直接输出到显示屏幕;

S4、生成中间帧并将中间帧输出到显示屏幕。

具体而言,所述生成中间帧具体包括:扩大上一帧渲染画面的渲染尺寸并预测虚拟现实设备的当前偏移数据,根据预测的虚拟现实设备的当前偏移数据从扩大渲染尺寸的上一帧渲染画面中截取生成中间帧。

中间帧生成的意义主要在于,由于当前帧画面尚未渲染完成,无法获取到当前帧画面的数据,因此只能从上一帧渲染画面的数据入手。而在虚拟现实场景中,若保持虚拟现实设备不动,则对于用户来说即使帧率较低,也不会带来较大的不适感,但若是移动、旋转虚拟现实设备时,需要对原视野外的画面进行渲染,当帧率较低时,跳变的情况尤为明显。本发明试图通过扩大渲染画面的大小来解决这个问题,当上一帧画面渲染的视口较大时,即使当前帧需要移动、旋转虚拟现实设备,也可以根据设备的偏移值,计算上一帧画面上需要进行的偏移(包括旋转和位移),也正因此上一帧渲染的画面较大,所以有足够的数据作为当前中间帧画面生成的支撑。因此中间帧的生成同时需要预测虚拟现实设备的当前偏移数据以及扩大对上一帧的渲染范围(尺寸)。

在实时渲染的环境中,只能获取到上一帧及其之前虚拟现实设备所产生的偏移和速率,因此需要解决在当前帧的垂直同步发生前获取偏移的方向和速率的问题。偏移的方向和数值都是必要的,因为若没有偏移方向,而只有偏移值,那么需要对原渲染画面的上下左右各扩大偏移值大小的渲染画面,将造成巨大的性能开销。若能够对偏移方向进行预判,只扩大偏移方向上的渲染画面大小,将减少许多不必要的性能消耗。这些也就是S4所述步骤“预测虚拟现实设备的当前偏移数据”的工作,本发明的思路是基于在先数据进行偏移方向与移动速率获取:由于每帧之间只间隔十几毫秒到几十毫秒,因此可以通过当前帧之前的若干帧内虚拟现实设备的偏移方向和加速度来预判其在当前帧的运动方向和速率,从而更加精确地获取需要扩大渲染的区域的方向和大小。具体包括:

根据上一帧或上若干帧内虚拟现实设备在偏移方向上的加速度建立概率模型和误差函数以预测虚拟现实设备的当前偏移方向:若虚拟现实设备在某方向上进行加速运动,那么当前帧其继续沿着该方向运动的可能性极大;若在某方向上匀速运动时,那么当前帧其继续沿着该方向运动的可能性较大;若在某方向上减速运动时,那么当前帧其仍有可能沿着该方向运动,但可能性较小,且其运动方向有较大可能性在后续几帧时间内发生变化。通过当前帧前的数据建立概率模型和误差函数,当下一帧到来时统计当前帧的数据,与预估的值进行比较,并修改误差函数,当统计到的数据量较大时,便能够更精确地预判其当前帧的运动方向。

以及根据上一帧或上若干帧内虚拟现实设备在偏移方向上的加速度建立概率模型和误差函数以预测虚拟现实设备的当前偏移速度:原理类似于偏移方向的预测,通过当前帧前的加速度数据来预判其当前帧的移动速率,同样当统计到的数据量较大时,便能够更精确地预判当前帧的移动速率。

在一些实施方式中,S4所述步骤“扩大上一帧渲染画面的渲染尺寸”具体包括:根据硬件刷新率和虚拟显示设备的偏移速度确定对上一帧渲染画面的渲染尺寸的扩大水平。由于在帧率较低的情况下,渲染的负荷较大,因此对上一帧画面渲染的大小进行约束是必要的。扩大画面的大小到何种程度则是通过硬件刷新率及用户的偏移速率来确定,当硬件的刷新率为MHz时,其每帧所经历的时间为1000/M,该时间乘以用户的偏移速率可以得到其偏移值,以该偏移值为增加渲染区域的大小来扩大渲染的画面。

在某些实施方式中,所述的三维虚拟场景的渲染方法在步骤S1的启动图片帧插值渲染模式之前还有一监测和判断的步骤S0:保持监测渲染画面的帧率,当画面的帧率不小于一预设阈值时画面保持以原分辨率进行渲染;当画面帧率小于预设阈值时启动图片帧插值渲染模式。在另外一些实施方式中,监测和判断的标准有所差别,其步骤S0可以是:保持监测渲染画面的帧率,当画面的帧率变化幅度不大于一预设阈值时画面保持以原分辨率进行渲染;当画面的帧率变化幅度大于预设阈值时启动图片帧插值渲染模式。这些监控标准的意义主要在于,当画面帧率低于某预设阈值时,说明画面渲染帧率较低;当画面帧率出现大幅跳变时,即使其值始终大于预设的阈值,也会令用户出现眩晕等不适的感觉,意味着需要监控以便在出现这些情况时进行改善。

请参阅图2,为本发明一实施方式所述的三维虚拟场景的渲染装置的结构示意图;所述装置包括启动单元1、渲染状态判断单元2、中间帧生成单元3和输出单元4;

所述启动单元1用于启动图片帧插值渲染模式;

所述渲染状态判断单元2用于判断当前画面的渲染状态是否已完成,当渲染状态判断单元2判定当前画面的渲染状态已完成时输出单元4将渲染完成的该帧画面直接输出到显示屏幕,否则:

中间帧生成单元3生成中间帧,输出单元4将中间帧输出到显示屏幕;中间帧生成单元3生成中间帧具体包括:扩大上一帧渲染画面的渲染尺寸并预测虚拟现实设备的当前偏移数据,根据预测的虚拟现实设备的当前偏移数据从扩大渲染尺寸的上一帧渲染画面中截取生成中间帧。中间帧生成的意义主要在于,由于当前帧画面尚未渲染完成,无法获取到当前帧画面的数据,因此只能从上一帧渲染画面的数据入手。而在虚拟现实场景中,若保持虚拟现实设备不动,则对于用户来说即使帧率较低,也不会带来较大的不适感,但若是移动、旋转虚拟现实设备时,需要对原视野外的画面进行渲染,当帧率较低时,跳变的情况尤为明显。本发明试图通过扩大渲染画面的大小来解决这个问题,当上一帧画面渲染的视口较大时,即使当前帧需要移动、旋转虚拟现实设备,也可以根据设备的偏移值,计算上一帧画面上需要进行的偏移(包括旋转和位移),也正因此上一帧渲染的画面较大,所以有足够的数据作为当前中间帧画面生成的支撑。因此中间帧的生成同时需要预测虚拟现实设备的当前偏移数据以及扩大对上一帧的渲染范围(尺寸)。

在实时渲染的环境中,只能获取到上一帧及其之前虚拟现实设备所产生的偏移和速率,因此需要解决在当前帧的垂直同步发生前获取偏移的方向和速率的问题。偏移的方向和数值都是必要的,因为若没有偏移方向,而只有偏移值,那么需要对原渲染画面的上下左右各扩大偏移值大小的渲染画面,将造成巨大的性能开销。若能够对偏移方向进行预判,只扩大偏移方向上的渲染画面大小,将减少许多不必要的性能消耗。本发明的思路是基于在先数据进行偏移方向与移动速率获取:由于每帧之间只间隔十几毫秒到几十毫秒,因此可以通过当前帧之前的若干帧内虚拟现实设备的偏移方向和加速度来预判其在当前帧的运动方向和速率,从而更加精确地获取需要扩大渲染的区域的方向和大小。因此,某些实施方式中,中间帧生成单元3包括偏移预测模块31;所述偏移预测模块31用于预测虚拟现实设备的当前偏移数据,具体包括:

根据上一帧或上若干帧内虚拟现实设备在偏移方向上的加速度建立概率模型和误差函数以预测虚拟现实设备的当前偏移方向;若虚拟现实设备在某方向上进行加速运动,那么当前帧其继续沿着该方向运动的可能性极大;若在某方向上匀速运动时,那么当前帧其继续沿着该方向运动的可能性较大;若在某方向上减速运动时,那么当前帧其仍有可能沿着该方向运动,但可能性较小,且其运动方向有较大可能性在后续几帧时间内发生变化。通过当前帧前的数据建立概率模型和误差函数,当下一帧到来时统计当前帧的数据,与预估的值进行比较,并修改误差函数,当统计到的数据量较大时,便能够更精确地预判其当前帧的运动方向。

偏移预测模块31还将根据上一帧或上若干帧内虚拟现实设备在偏移方向上的加速度建立概率模型和误差函数以预测虚拟现实设备的当前偏移速度。原理类似于偏移方向的预测,通过当前帧前的加速度数据来预判其当前帧的移动速率,同样当统计到的数据量较大时,便能够更精确地预判当前帧的移动速率。

进一步地,所述的三维虚拟场景的渲染装置还包括监控单元5,用于控制启动单元1启动图片帧插值渲染模式;具体包括:监控单元5保持监测渲染画面的帧率,当画面的帧率不小于一预设阈值时画面保持以原分辨率进行渲染;当画面帧率小于预设阈值时控制启动单元1启动图片帧插值渲染模式。

在另一些实施方式中,监控单元5控制启动单元1启动图片帧插值渲染模式的方式具体包括:监控单元5保持监测渲染画面的帧率,当画面的帧率变化幅度不大于一预设阈值时画面保持以原分辨率进行渲染;当画面的帧率变化幅度大于预设阈值时控制启动单元1启动图片帧插值渲染模式。

上述两种监控标准的意义主要在于,当画面帧率低于某预设阈值时,说明画面渲染帧率较低;当画面帧率出现大幅跳变时,即使其值始终大于预设的阈值,也会令用户出现眩晕等不适的感觉,意味着需要监控以便在出现这些情况时进行改善。

在一些实施方式中,中间帧生成单元3还包括渲染扩大模块32,用于扩大上一帧渲染画面的渲染尺寸,具体包括:根据硬件刷新率和虚拟显示设备的偏移速度确定对上一帧渲染画面的渲染尺寸的扩大水平。由于在帧率较低的情况下,渲染的负荷较大,因此对上一帧画面渲染的大小进行约束是必要的。扩大画面的大小到何种程度则是通过硬件刷新率及用户的偏移速率来确定,当硬件的刷新率为MHz时,其每帧所经历的时间为1000/M,该时间乘以用户的偏移速率可以得到其偏移值,以该偏移值为增加渲染区域的大小来扩大渲染的画面。

区别于现有技术,上述技术方案将三维虚拟场景中动态物件与静态物件进行分离,利用静态物件可见性运动差异较小的特点,预先渲染出较大的静态画面,根据偏移量从合适的区域截取出视口大小的图片插入丢帧的渲染帧内,从而解决在虚拟现实场景中由于低帧率导致的帧间跳变的情况。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括……”或“包含……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的要素。此外,在本文中,“大于”、“小于”、“超过”等理解为不包括本数;“以上”、“以下”、“以内”等理解为包括本数。

本领域内的技术人员应明白,上述各实施例可提供为方法、装置、或计算机程序产品。这些实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。上述各实施例涉及的方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机设备可读取的存储介质中,用于执行上述各实施例方法所述的全部或部分步骤。所述计算机设备,包括但不限于:个人计算机、服务器、通用计算机、专用计算机、网络设备、嵌入式设备、可编程设备、智能移动终端、智能家居设备、穿戴式智能设备、车载智能设备等;所述的存储介质,包括但不限于:RAM、ROM、磁碟、磁带、光盘、闪存、U盘、移动硬盘、存储卡、记忆棒、网络服务器存储、网络云存储等。

上述各实施例是参照根据实施例所述的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到计算机设备的处理器以产生一个机器,使得通过计算机设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机设备以特定方式工作的计算机设备可读存储器中,使得存储在该计算机设备可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机设备上,使得在计算机设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已经对上述各实施例进行了描述,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改,所以以上所述仅为本发明的实施例,并非因此限制本发明的专利保护范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围之内。

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