欢迎光临小豌豆知识网!
当前位置:首页 > 物理技术 > 光学> 图像渲染方法、头戴式显示设备及存储介质独创技术42659字

图像渲染方法、头戴式显示设备及存储介质

2021-02-08 02:00:18

图像渲染方法、头戴式显示设备及存储介质

  技术领域

  本申请涉及图像处理技术领域,更具体的说,是涉及图像渲染方法、头戴式显示设备及存储介质。

  背景技术

  用户可以携带头戴式显示设备观看图像,目前头戴式显示设备显示图像延时严重,例如,用户仰视观看图像时,头戴式显示设备显示图像是俯视角度的图像。

  发明内容

  有鉴于此,本申请提供了一种图像渲染方法、头戴式显示设备及存储介质。

  为实现上述目的,本申请提供如下技术方案:

  一种图像渲染方法,包括:

  检测垂直同步信号;

  若检测到垂直同步信号,确定在渲染起始时刻的位姿数据,以及基于所述位姿数据渲染所述第一图像;

  其中,所述渲染起始时刻是基于待渲染的第一图像对应的预测渲染时长确定的,所述预测渲染时长是基于已渲染的至少一帧第二图像分别对应的实际渲染时长得到的;所述渲染起始时刻早于或等于特定时刻与所述预测渲染时长的差值;所述特定时刻是垂直同步信号的特定位置对应的时刻;

  在所述特定时刻得到渲染后的所述第一图像。

  在一可选实施方式中,还包括:

  获取所述至少一帧第二图像分别对应的实际渲染时长,所述至少一帧第二图像是指距离所述渲染起始时刻最近的已渲染的至少一帧图像;

  将所述至少一帧第二图像分别对应的实际渲染时长进行预设运算,以得到所述预测渲染时长。

  在一可选实施方式中,还包括:

  将所述至少一帧第二图像分别对应的实际渲染时长按照所述至少一帧第二图像分别对应的目标渲染起始时刻排序,得到排序后的所述至少一帧第二图像分别对应的实际渲染时长;所述至少一帧第二图像是指距离所述渲染起始时刻最近的已渲染的至少一帧图像;

  基于排序后的所述至少一帧第二图像分别对应的实际渲染时长,获得实际渲染时长的变化趋势信息;

  基于所述变化趋势信息,获得所述预测渲染时长。

  在一可选实施方式中,还包括:

  确定所述第二图像对应的目标渲染起始时刻以及渲染结束时刻,所述渲染结束时刻指渲染完成所述第二图像的结束时刻;

  基于所述第二图像对应的目标渲染起始时刻以及渲染结束时刻,获得所述第二图像的实际渲染时长。

  在一可选实施方式中,还包括:

  若检测到由第一场景切换至第二场景,记录在所述第二场景下已渲染的至少一帧第二图像分别对应的实际渲染时长;

  基于所述至少一帧第二图像分别对应的实际渲染时长,获取在所述第二场景下的所述第一图像的预测渲染时长。

  在一可选实施方式中,其中:

  所述预测渲染时长小于或等于所述垂直同步信号的周期/2,所述特定位置为所述垂直同步信号的周期/2的位置;

  所述图像渲染方法还包括:

  获取当前产生的所述垂直同步信号的目标数目;

  基于所述目标数目以及垂直同步信号的周期/2,确定所述特定时刻。

  一种头戴式显示设备,包括:

  处理模块,用于生成垂直同步信号;

  显示引擎,用于:

  检测所述垂直同步信号;

  若检测到所述垂直同步信号,确定在渲染起始时刻的位姿数据;

  其中,所述渲染起始时刻是基于待渲染的第一图像对应的预测渲染时长确定的,所述预测渲染时长是基于已渲染的至少一帧第二图像分别对应的实际渲染时长得到的;所述渲染起始时刻早于或等于特定时刻与所述预测渲染时长的差值;所述特定时刻是垂直同步信号的特定位置对应的时刻;

  在所述渲染起始时刻将所述位姿数据发送至渲染引擎;

  所述渲染引擎,用于若接收到所述位姿数据,基于所述位姿数据渲染所述第一图像;

  所述显示引擎,还用于:在所述特定时刻从所述渲染引擎中获得渲染后的所述第一图像。

  在一可选实施方式中,其中,

  所述显示引擎,还用于向所述渲染引擎发送询问所述第一图像是否渲染完毕的询问请求;

  所述渲染引擎,还用于若接收到所述询问请求,向所述显示引擎反馈表征所述第一图像是否渲染完毕的询问结果;

  所述显示引擎,还用于若接收到的询问结果表征所述第一图像渲染完毕,将接收到所述询问结果的时刻记录为所述第一图像渲染结束时刻。

  在一可选实施方式中,其中:

  所述处理模块,还用于从第一场景切换至第二场景;

  所述显示引擎还用于:基于所述第二场景对应的已渲染的至少一帧第二图像分别对应的实际渲染时长,获取所述第二场景对应的待渲染的所述第一图像的预测渲染时长。

  一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如上述任一所述的图像渲染方法包含的各个步骤。

  经由上述的技术方案可知,本申请实施例提供的图像渲染方法中,可以控制待渲染的第一图像的渲染起始时刻,该渲染起始时刻早于或等于特定时刻与第一图像的预测渲染时长的差值;其中,特定时刻是垂直同步信号的特定位置对应的时刻,在所述特定时刻需要得到渲染后的第一图像,由于渲染起始时刻早于或等于特定时刻与第一图像的预测渲染时长的差值,所以在垂直同步信号的特定位置对应的时刻到来时,可以得到第一图像,不会发生在垂直同步信号的特定位置对应的时刻到来时第一图像未渲染完毕的情况,从而无需等待下一垂直同步信号的特定位置对应的时刻到来时再次执行获取第一图像的操作,使得渲染起始时刻与特定时刻的差值较小,可以理解的是,渲染起始时刻与特定时刻的差值越小,渲染第一图像所基于的位姿数据和显示第一图像时的位姿数据就越接近,给用户的感觉就是头戴式显示设备显示的图像延时较小,甚至没有延时。

  附图说明

  为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

  图1为本申请实施例提供的头戴式显示设备的一种实现方式结构图;

  图2为本申请实施例提供的图像渲染时序示意图;

  图3为本申请实施例提供的图像渲染方法的一种实现方式的流程图;

  图4a为本申请实施例提供的确定渲染起始时刻的一种实现过程的示意图;

  图4b为本申请实施例提供的确定渲染起始时刻的另一种实现过程的示意图;

  图5为本申请实施例提供的多个已渲染第二图像的时序示意图;

  图6为本申请实施例提供的头戴式显示设备显示的三个已经渲染的第二图像的示意图;

  图7为本申请实施例提供的图像渲染方法的一种具体实现方式的流程图;

  图8为本申请实施例提供的头戴式显示设备的另一种实现方式的结构图。

  具体实施方式

  下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

  本申请提供了图像渲染方法、头戴式显示设备及存储介质。

  在对本申请实施例提供的图像渲染方法进行详细介绍之前,这里先对本申请实施例涉及的应用场景进行简单介绍。

  如图1所示,为本申请实施例提供的头戴式显示设备的一种实现方式结构图,头戴式显示设备包括处理模块11、显示引擎12以及渲染引擎13。

  可选的,处理模块11可以为中央处理器(CentralProcessing Unit,CPU),或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路,或者,是显卡。

  处理模块11用于生成垂直同步信号(Verticalsynchronization,Vsync)信号。

  垂直同步信号是加在两帧图像之间,垂直同步信号指示着前一帧图像处理结束,以及新一帧图像的处理开始,即若渲染引擎已经渲染完毕一帧图像,且需要渲染引擎渲染新的一帧图像,处理模块11会生成垂直同步信号。

  显示引擎12用于在检测到垂直同步信号后,可以将确定的位姿数据发送给渲染引擎13。

  可选的,位姿数据可以为头戴式显示设备的位姿数据。可选的,头戴式显示设备的位姿数据包括表征用户的视线方向的数据以及用户在现实环境中的三维坐标中的一种或多种。

  可选的,显示引擎12包括Warp线程,可以利用Warp线程检测垂直同步信号。

  渲染引擎13用于接收显示引擎12发送的位姿数据,基于位姿数据渲染得到第一图像。

  为了以示区分,本申请实施例中将待渲染的图像称为第一图像,将已经渲染完毕的图像称为第二图像。

  可选的,若头戴式显示设备为AR(Augmented Reality,增强现实)头戴式显示设备或MR(Mixed Reality,混合现实)头戴式显示设备,那么,头戴式显设备需要在现实环境中显示虚拟图像,以使得用户通过头戴式显示设备可以看到虚拟图像融入现实环境的景象。可选的,渲染引擎基于位姿数据渲染图像的过程,即为渲染引擎基于位姿数据调节待显示的虚拟图像的显示视角或者显示尺寸大小的过程。

  可选的,虚拟图像包括但不限于:文字图像、景物图像、动漫人物图像、现实环境中人物图像以及物体图像中的至少一种。

  可以理解的是,显示引擎显示第一图像的视角即为位姿数据(该位姿数据是渲染引擎渲染第一图像所需的位姿数据)包含的表征用户的视线方向的数据。

  显示引擎显示第一图像的大小与位姿数据(该位姿数据是渲染引擎渲染第一图像所需的位姿数据)包含的用户在现实环境的三维坐标相关。例如,用户在现实环境的三维坐标与虚拟图像的相对位置越远,第一图像的尺寸越小;用户在现实环境的三维坐标与虚拟图像的相对位置越近,第一图像的尺寸越大。

  显示引擎12还用于在垂直同步信号的特定位置对应的时刻,从渲染引擎13中获取第一图像。

  可选的,显示引擎12可以利用Warp线程对第一图像进行处理,以使得显示引擎12显示Warp线程处理后的第一图像。

  可选的,垂直同步信号的特定位置是指垂直同步信号的T/2位置,其中T为垂直同步信号的周期。上述T/2只是示例,垂直同步信号的特定位置可以为垂直同步信号中任一位置,例如,垂直同步信号的特定位置为垂直同步信号的1.5T/2位置,本申请实施例并不对垂直同步信号的特定位置进行限定。

  本申请实施例中,显示引擎仅在垂直同步信号的特定位置对应的时刻从渲染引擎13中获取第一图像。可以理解的是,渲染引擎可能在垂直同步信号的特定位置对应的时刻仍未渲染完毕第一图像,那么,显示引擎会等到下一垂直同步信号的特定位置对应的时刻从渲染引擎13中获取第一图像。使得显示引擎12出现空等现象。

  如图2所示,为本申请实施例提供的图像渲染时序示意图。

  可选的,垂直同步信号的波形可以为任意波形,图2中以垂直同步信号的波形为直线为例进行说明,本申请实施例并不对垂直同步信号的波形进行限定。

  图2中垂直同步信号的周期为T,图2中示出了两个垂直同步信号。假设垂直同步信号的特定位置是指垂直同步信号的T/2位置。

  假设显示引擎12在时间t1将时间t1对应的位姿数据传输给渲染引擎13,渲染引擎13基于位姿数据开始渲染第一图像,假设第一图像的渲染时长为t2-t1;显示引擎12在T/2时刻从渲染引擎获取第一图像,由于t2大于T/2,即在T/2时刻第一图像未渲染完毕,因此显示引擎12无法获得第一图像。

  图2中用网格填充的长方形表示渲染引擎13渲染第一图像的过程。

  显示引擎12等待下一周期的垂直同步信号的T/2对应的时刻即3T/2时刻,若3T/2时刻(图2中箭头指示的时刻)到来,显示引擎12再次从渲染引擎获取第一图像,由于第一图像已经渲染完毕,所以显示引擎12可以得到第一图像。

  图2中用向右倾斜的线条填充的长方形表征显示引擎12获取第一图像的过程。

  显示引擎12中的Warp线程对第一图像进行处理,以得到处理后的第一图像,并显示。

  图2中用竖线填充的长方形表征Warp线程对第一图像进行处理的过程。

  本申请实施例中,图2示出的渲染引擎13渲染第一图像的过程、显示引擎12获取第一图像的过程、Warp线程对第一图像进行处理的过程分别对应的时长仅为示例,本申请实施例并不限定三者分别对应的时长的大小关系。

  综上,显示引擎12的空等时间为3T/2-t2,可以理解的是,3T/2时刻对应的用户(或头戴式显示设备)的位姿数据与t1时刻对应的位姿数据可能不同,即在这段空等时间内,用户(或头戴式显示设备)的位姿数据可能发生变化,例如,t1时刻的位姿数据包括的表征用户的视线方向的数据为俯视,3T/2时刻的位姿数据包括的表征用户的视线方向的数据为平视,由于第一图像是基于t1时刻的位姿数据渲染得到的,但是在3T/2时刻以后显示的,导致用户(或头戴式显示设备)在平视的情况下,看到俯视情况下的第一图像。对于用户而言,头戴式显示设备将应该在t2时刻显示的图像,在3T/2时刻以后显示了,给用户的感觉就是头戴式显示设备显示的图像延时较长。

  针对于此,本申请实施例提供了一种图像渲染方法,该方法可以控制显示引擎将位姿数据发送给渲染引擎的时间,由于渲染引擎接收到位姿数据后,即刻进行第一图像的渲染,所以可以基于第一图像的预测渲染时长和垂直同步信号的特定位置对应的时刻,得到将位姿数据发送给渲染引擎的时间,从而保证在垂直同步信号的特定位置对应的时刻,第一图像渲染完毕,仍以图2为例,保证在T/2时刻之前第一图像渲染完毕,从而使得显示引擎处于空等的时长小于3T/2-t2。

  可以理解的是,显示引擎处于空等的时长越小,渲染引擎渲染第一图像所基于的位姿数据和显示引擎显示第一图像时的位姿数据就越接近,给用户的感觉就是头戴式显示设备显示的图像延时较小,甚至没有延时。

  结合图1和图2,下面对本申请实施例提供的图像渲染方法进行说明。

  如图3所示,为本申请实施例提供的图像渲染方法的一种实现方式的流程图,该图像渲染方法应用于如图1所示的头戴式显示设备,该方法包括:

  步骤S301:检测垂直同步信号。

  步骤S302:若检测到垂直同步信号,确定在渲染起始时刻的位姿数据,以及基于所述位姿数据渲染所述第一图像。

  其中,所述渲染起始时刻是基于待渲染的第一图像对应的预测渲染时长确定的,所述预测渲染时长是基于已渲染的至少一帧第二图像分别对应的实际渲染时长得到的;所述渲染起始时刻早于或等于特定时刻与所述预测渲染时长的差值;所述特定时刻是垂直同步信号的特定位置对应的时刻。

  可选的,假设垂直同步信号的特定位置为M*T,其中,M为大于0且小于1的任意数值,例如,M=1/2,第一图像对应的预测渲染时长可以小于或等于M*T,或者,第一图像对应的预测渲染时长可以大于M*T。

  如图4a所示,为本申请实施例提供的确定渲染起始时刻的一种实现过程的示意图。

  若第一图像的预测渲染时长小于或等于M*T,那么,渲染起始时刻t早于或等于特定时刻-第一图像的预测渲染时长,且,渲染起始时刻晚于或等于该垂直同步信号的起始时间t3,t3为大于或等于0的任意数值。如图4a所示t的取值期间为[t3,t4],t3为大于或等于0的任意数值,t4为大于0的任意数值。

  其中,t4=特定时刻-第一图像的预测渲染时长。

  可以理解的是,由于是在渲染起始时刻确定位姿数据的,在特定时刻得到第一图像的,所以特定时刻与渲染起始时刻的差值越小,头戴式显示设备的位姿数据发生变化的可能性越小,显示的第一图像的延时越小。因此,可选的,渲染起始时刻趋向于t4或等于t4。

  可选的,渲染起始时刻趋向于t4是指渲染起始时刻=t4-最小精度值。

  最小精度值是指执行图像渲染方法的设备,例如头戴式显示设备能够识别的最小数值。

  可选的,针对于第一图像的预测渲染时长小于或等于M*T的应用场景而言,步骤S301至步骤S303提及的垂直同步信号为同一个垂直同步信号。

  可选的,可基于当前产生的垂直同步信号的目标数目以及垂直同步信号的特定位置,确定特定时刻;若步骤S301提及的“垂直同步信号”为当前产生的第n个垂直同步信号,假设第一个垂直同步信号的起始时刻为0,那么,垂直同步信号的特定位置对应的特定时刻为:n*T+M*T。

  如图4b所示,为本申请实施例提供的确定渲染起始时刻的另一种实现过程的示意图。

  可以理解是,由于预测渲染时长大于M*T,所以即使是在垂直同步信号的初始时刻t3开始渲染第一图像,也无法在该垂直同步信号的M*T对应的时刻渲染完毕第一图像。因此,需要在下一个垂直同步信号的M*T对应的时刻之前渲染完毕第一图像。那么,渲染起始时刻t早于或等于特定时刻-第一图像的预测渲染时长=t3+T+M*T-第一图像的预测渲染时长,如图4b所示t的取值期间为[t3,t5]。其中,t5=t3+T+M*T-第一图像的预测渲染时长。

  可以理解的是,由于是在渲染起始时刻确定位姿数据的,在特定时刻得到第一图像的,所以特定时刻与渲染起始时刻的差值越小,头戴式显示设备的位姿数据发生变化的可能性越小,显示的第一图像的延时越小。因此,可选的,渲染起始时刻趋向于t5或等于t5。

  可选的,渲染起始时刻趋向于t5是指渲染起始时刻=t4-最小精度值。

  可选的,针对于第一图像的预测渲染时长大于M*T的应用场景而言,步骤S301提及的垂直同步信号与步骤S302中“若检测到垂直同步信号,在渲染起始时刻确定位姿数据”提及的垂直同步信号为同一个垂直同步信号,步骤S302中“特定时刻是垂直同步信号的特定位置对应的时刻”提及的垂直同步信号相对于步骤S301而言是下一个垂直同步信号。

  可选的,可基于当前产生的垂直同步信号的目标数目以及垂直同步信号的特定位置,确定特定时刻,若步骤S301提及的“垂直同步信号”为当前产生的第n个垂直同步信号,假设第一个垂直同步信号的起始时刻为0,那么,垂直同步信号的特定位置对应的特定时刻为:(n+1)*T+M*T。

  步骤S303:在所述特定时刻得到渲染后的所述第一图像。

  本申请实施例提供的图像渲染方法中,可以控制待渲染的第一图像的渲染起始时刻,该渲染起始时刻早于或等于特定时刻与第一图像的预测渲染时长的差值;其中,特定时刻是垂直同步信号的特定位置对应的时刻,在所述特定时刻需要得到渲染后的第一图像,由于渲染起始时刻早于或等于特定时刻与第一图像的预测渲染时长的差值,所以在垂直同步信号的特定位置对应的时刻到来时,可以得到第一图像,不会发生在垂直同步信号的特定位置对应的时刻到来时第一图像未渲染完毕的情况,从而无需等待下一垂直同步信号的特定位置对应的时刻到来时再次执行获取第一图像的操作,使得渲染起始时刻与特定时刻的差值较小,可以理解的是,渲染起始时刻与特定时刻的差值越小,渲染第一图像所基于的位姿数据和显示第一图像时的位姿数据就越接近,给用户的感觉就是头戴式显示设备显示的图像延时较小,甚至没有延时。

  在一可选实施例中,获得第一图像的预测渲染时长有多种实现方法,本申请实施例提供但不限于以下几种。

  第一种实现方式包括:

  步骤A1:获取所述至少一帧第二图像分别对应的实际渲染时长,所述至少一帧第二图像是指距离所述渲染起始时刻最近的已渲染的至少一帧图像。

  上述“至少一帧第二图像”的数目可以为一个或多个。

  如图5所示,为本申请实施例提供的多个已渲染第二图像的时序示意图。

  图5中是以特定位置为垂直同步信号的T/2位置,预测渲染时长小于T/2为例进行说明的。

  图5示出了5个垂直同步信号,假设渲染起始时刻为第5个垂直同步信号中的t4,那么距离渲染起始时刻由近及远的多帧图像依次为:图像54、图像53、图像52、图像51。可选的,至少一帧第二图像。

  可选的,“至少一帧第二图像”可以为图像54;或者,“至少一帧第二图像”包括图像54以及图像53;或者,“至少一帧第二图像”包括图像54、图像53以及图像52;或者,“至少一帧第二图像”包括图像54、图像53、图像52以及图像51。

  步骤A2:将所述至少一帧第二图像分别对应的实际渲染时长进行预设运算,以得到所述预测渲染时长。

  本申请实施例中在不同的情景中得到预测渲染时长的方式可能不同。下面以两种情景举例说明。

  第一种情景:头戴式显示设备显示的邻近的图像不会发生突变。

  可选的,本申请实施例提及的多个图像“邻近”是指头戴式显示设备显示的多个图像的时间相邻,如图5所示,图像54时间相邻的图像包括图像53;图像53时间相邻的图像包括图像52以及图像54;图像52时间相邻的图像包括图像53以及图像51;图像51时间相邻的图像包括图像52。

  可选的,本申请实施例提及的多个图像“邻近”是指头戴式显示设备显示的多个图像的位置相邻。如图6所示的头戴式显示设备显示的三个已经渲染的图像,分别为图像61、图像62以及图像63。

  图6中与图像62位置相邻的图像包括:图像61以及图像63。比如,用户携带头戴式显示设备直视前方可以看到图像62,用户携带头戴式显示设备向左侧看可以看到图像61,用户携带头戴式显示设备向右侧看可以看到图像63。

  可选的,本申请实施例提及的多个图像“邻近”包括时间相邻和位置相邻。

  通过图6可以看出邻近的图像不会发生突变,即邻近的两个图像至少局部区域包含的目标属于同种类型。例如,图像61和图像62都包含的目标是流水;图像62和图像62都包含的目标是高山。

  可选的,本申请实施例提及的目标可以包括景色、人物、文字、物体中至少一种。

  可选的,由于邻近的图像不会发生突变,所以邻近的图像的渲染时长相近。

  针对第一种情景,得到预测渲染时长的方法包括以下任一种:

  第一种:至少一帧第二图像分别对应的实际渲染时长加权求和得到的预测渲染时长。

  仍以图5为例,假设图像51的实际渲染时长为T0;图像52的实际渲染时长为T1;图像53的实际渲染时长为T2;图像54的实际渲染时长为T3。

  可选的,若“至少一帧第二图像”包括图像54、图像53以及图像52,预测渲染时长=T3*权重1+T2*权重2+T1*权重1。后续类似不再赘述。

  由于邻近图像不会发生突变,所以与渲染起始时刻距离越近的第二图像的实际渲染时长越接近待渲染的第一图像的实际渲染时长。可选的,与渲染起始时刻距离越远的已渲染完毕的第二图像对应的权重值越小。与渲染起始时刻距离越近的已渲染完毕的第二图像对应的权重值越大。

  第二种:预测渲染时长=与渲染起始时刻距离最近的第二图像的实际渲染时长。

  由于邻近图像不会发生突变,所以与渲染起始时刻距离越近的第二图像的实际渲染时长越接近待渲染的第一图像的实际渲染时长。可选的,若“至少一帧第二图像”包括图像54,那么,预测渲染时长=T3。此时预设运算可为与渲染起始时刻距离最近的第二图像的实际渲染时长与1的乘积的运算。

  第三种:预测渲染时长=与渲染起始时刻距离最近的第二图像的实际渲染时长+第一值。

  可选的,若至少一帧第二图像的数目为一,那么,预测渲染时长接近与渲染起始时刻距离最近的第二图像的实际渲染时长。

  可选的,尽管两个邻近图像不会发生突变,但是两个邻近图像的至少局部区域可能不同,导致第一图像对应的实际渲染时长小于或大于与渲染起始时刻距离最近的第二图像的实际渲染时长,为了保证在垂直同步信号的特定位置对应的时刻第一图像能够渲染完毕,若至少一帧第二图像的数目为一,那么,预测渲染时长=第二图像的实际渲染时长+第一值。

  第一值为任意正数。

  第二种情景:头戴式显示设备显示的时间邻近的图像可能会发生突变。

  下面举例对第二种情景进行说明。用户携带头戴式显示设备观看现实环境中的草地,头戴式显示设备可以显示包含河流的图像(假设该图像为图像53),突然用户携带头戴式显示设备看天空,头戴式显示设备可以显示包含飞禽的图像(假设该图像为图像54)。由于图像53和图像54无共同点,所以两个图像的实际渲染时长可能相差较大。

  综上,与渲染起始时刻最近的第二图像的实际渲染时长可能与第一图像的预测渲染时长相差较大,为例避免这种情况,本申请实施例提供了针对第二情景,得到预测渲染时长的方法,该方法包括以下任一种:第四种:求取至少一帧第二图像分别对应的实际渲染时长的平均值。

  在一可选实施例中,得到预测渲染时长的方法还可以包括:第五种:将上述第一种、第二种、第三种和第四种中至少两种方法分别得到的数值求取平均值。

  第二种实现方式包括:

  步骤B1:将所述至少一帧第二图像分别对应的实际渲染时长按照所述至少一帧第二图像分别对应的目标渲染起始时刻排序,得到排序后的所述至少一帧第二图像分别对应的实际渲染时长;所述至少一帧第二图像是指距离所述渲染起始时刻最近的已渲染的至少一帧图像。

  本申请实施例中,将第二图像对应的渲染起始时刻称为目标渲染起始时刻,以与第一图像的渲染起始时刻进行区分。

  仍以图5为例,假设至少一帧第二图像包括:图像51、图像52、图像53以及图像54。排序后的至少一帧第二图像依次为:图像54、图像53、图像52、图像51;排序后的至少一帧第二图像对应的实际渲染时长依次为:T3、T2、T1、T0。

  步骤B2:基于排序后的所述至少一帧第二图像分别对应的实际渲染时长,获得实际渲染时长的变化趋势信息。

  可选的,变化趋势信息可以包括:逐渐减小、逐渐增大、保持稳定中的任一种。

  可选的,逐渐增大是指时间相邻的两个第二图像的实际渲染时长的差值大于第一预设阈值,假设第一预设阈值为1ms,以图5为例,若T0=4ms,T1=5.2ms,T2=6.5ms,T3=7.8ms,那么,变化趋势为逐渐增大。

  可选的,逐渐减小是指时间相邻的两个第二图像的实际渲染时长的差值大于第二预设阈值,假设第二预设阈值为1ms(第一预设阈值和第二预设阈值可以相同可以不同),以图5为例,若T0=8.5ms,T1=6.8ms,T2=5.5ms,T3=4.3ms,那么,变化趋势为逐渐减小。

  可选的,保持稳定是指所述至少一帧第二图像分别对应的实际渲染时长中最大值和最小值的差值小于第三预设阈值(第三预设阈值可以与第二预设阈值相同,也可以不同),假设第三预设阈值为0.5ms,以图5为例,若T0=6ms,T1=6.1ms,T2=6.2ms,T3=6.2ms,变化趋势为保持稳定。

  本申请实施例提供的变化趋势信息并不限定于上述三种,例如,还可以包括整体趋势为逐渐减小或逐渐增大或保持稳定,但是有几个突变的数据等等。

  可选的,在上述第二种情景中可能出现变化趋势信息包括整体趋势为逐渐减小或逐渐增大或保持稳定,但是有至少一个突变的数据的情况。

  可选的,基于变化趋势信息可以确定处于第一种情景还是第二种情景,例如,若变化趋势信息包括保持稳定,或,逐渐减小,或,逐渐增大,那么,可能处于第一种情景,若变化趋势信息包括整体趋势为逐渐减小或逐渐增大或保持稳定,但是有至少一个突变的数据,可以能处于第二种情景。

  步骤B3:基于所述变化趋势信息,获得所述预测渲染时长。

  可选的,若变化趋势信息包括:逐渐减小,那么,可选的预测渲染时长=与渲染起始时刻最近的第二图像的实际渲染时长-第一预设阈值。

  可选的,若变化趋势信息包括:逐渐增大,那么,可选的预测渲染时长=与渲染起始时刻最近的第二图像的实际渲染时长+第二预设阈值。

  可选的,若变化趋势信息包括:保持稳定,那么,可选的预测渲染时长=与渲染起始时刻最近的第二图像的实际渲染时长+第三预设阈值。

  可选的,可以基于变化趋势信息确定所处情景,获得所述预测渲染时长,例如,若处于第一种情景,那么,可以基于针对第一种获得所述预测渲染时长的三种方式中任一种方法得到预测渲染时长。若处于第二种获得所述预测渲染时长,那么可以基于针对第二种获得所述预测渲染时长的两种方式中任一种方法得到预测渲染时长。

  在一可选实施例中,用户可以通过头戴式显示设备切换观看的场景,例如,由雪山场景变更为游乐场场景;或者,用户可以通过头戴式显示设备登陆不同应用程序,以使得用户可以通过切换应用程序达到切换场景的目的。

  可以理解的是,在场景切换后,前一场景的已渲染的第二图像分别对应的实际渲染时长可能与当前场景的待渲染的第一图像的预测渲染时长无关。例如,雪山场景中已渲染的多个第二图像分别对应的实际渲染时长可能与游乐场场景中待渲染的第一图像的预测渲染时长无关。若基于前一场景中已渲染的第二图像分别对应的实际渲染时长,得到当前场景中待渲染的第一图像的预测渲染时长,该预测渲染时长可能与第一图像的实际渲染时长有很大差距,导致不能保证在垂直同步信号的特定位置对应的时刻渲染完毕第一图像。

  针对于此,本申请实施例还提供了以下方法:

  步骤C1:若检测到由第一场景切换至第二场景,记录在所述第二场景下已渲染的至少一帧第二图像分别对应的实际渲染时长。

  步骤C2:基于所述至少一帧第二图像分别对应的实际渲染时长,获取在所述第二场景下的所述第一图像的预测渲染时长。

  综上,本申请实施例可以仅利用属于同一场景的已渲染的至少一个第二图像分别对应的实际渲染时长,得到该场景中待渲染的第一图像的预测渲染时长。

  在一可选实施例中,在场景切换后,若前一场景和当前场景可能比较相似,例如,前一场景为海边场景,当前场景为海上游乐园场景,那么,也可以基于前一场景中已渲染的至少一个第二图像分别对应的实际渲染时长,得到当前场景中待渲染的第一图像的预测渲染时长。或者,基于前一场景中已渲染的至少一个第二图像分别对应的实际渲染时长以及当前场景中已渲染的至少一个第二图像分别对应的实际渲染时长,得到当前场景中待渲染的第一图像的预测渲染时长。

  为了本领域技术人员更加理解本申请实施例提供的图像渲染方法,下面结合显示引擎和渲染引擎对图像渲染方法进行详细介绍。如图7所示,为本申请实施例提供的图像渲染方法的一种具体实现方式的流程图,该方法包括:

  步骤S701:显示引擎12的Warp线程检测垂直同步信号,若检测到垂直同步信号进入步骤S702;若未检测到垂直同步信号继续检测垂直同步信号。

  步骤S702:显示引擎12确定渲染起始时刻t6的位姿数据,并将位姿数据发送至渲染引擎。

  步骤S703:渲染引擎13接收到位姿数据后,基于位姿数据开始渲染第一图像。

  步骤S704:显示引擎12向渲染引擎13发送询问所述第一图像是否渲染完毕的询问请求。

  步骤S705:渲染引擎13向显示引擎12反馈的表征是否渲染完毕第一图像的询问结果。

  步骤S706:显示引擎12若接收到的询问结果表征所述第一图像渲染完毕,将接收到所述询问结果的时刻记录为所述第一图像渲染结束时刻t7。

  可选的,显示引擎可以每间隔预设时间,向渲染引擎发送询问所述第一图像是否渲染完毕的询问请求。

  可选的,若显示引擎12接收到的询问结果表征所述第一图像未渲染完毕,则返回步骤S704。

  步骤S707:显示引擎在垂直同步信号的特定位置对应的时刻到来时,从渲染引擎得到第一图像。

  步骤S708:显示引擎的Warp线程处理第一图像,显示引擎显示处理后的第一图像。

  步骤S709:显示引擎确定下一垂直同步信号中的渲染起始时刻=(n+1)*T+(M*T-(t7-t6)),返回步骤S701。

  假设当前垂直同步信号是第n个周期,n为大于或等于1的正整数。

  上述实施例中,第n+1个垂直同步信号的渲染起始时刻可以是在第n个垂直同步信号期间确定的。

  可选的,第n+1个垂直同步信号的渲染起始时刻可以是在第n+1个垂直同步信号期间确定的,只要在第n+1个垂直同步信号的渲染起始时刻之前确定完毕渲染起始时刻即可。

  可选的,获取第二图像的实际渲染时长的方法包括:步骤E1:确定所述第二图像对应的目标渲染起始时刻以及渲染结束时刻,所述渲染结束时刻指渲染完成所述第二图像的结束时刻;步骤E2:基于所述第二图像对应的目标渲染起始时刻以及渲染结束时刻,获得所述第二图像的实际渲染时长。

  可选的,第二图像的实际渲染时长=t7-t5。

  上述本申请公开的实施例中详细描述了方法,对于本申请的方法可采用多种形式的装置实现,因此本申请还公开了一种装置,下面给出具体的实施例进行详细说明。

  如图1所示的头戴式显示设备中显示引擎12可以用于执行以下操作:

  检测所述垂直同步信号;

  若检测到所述垂直同步信号,确定在渲染起始时刻的位姿数据;

  其中,所述渲染起始时刻是基于待渲染的第一图像对应的预测渲染时长确定的,所述预测渲染时长是基于已渲染的至少一帧第二图像分别对应的实际渲染时长得到的;所述渲染起始时刻早于或等于特定时刻与所述预测渲染时长的差值;所述特定时刻是垂直同步信号的特定位置对应的时刻;

  在所述渲染起始时刻将所述位姿数据发送至渲染引擎;

  所述渲染引擎13用于执行以下操作:若接收到所述位姿数据,基于所述位姿数据渲染所述第一图像;

  所述显示引擎12,还用于执行以下操作在所述特定时刻从所述渲染引擎中获得渲染后的所述第一图像。

  可选的,处理模块,还用于从第一场景切换至第二场景;

  所述显示引擎还用于:基于所述第二场景对应的已渲染的至少一帧第二图像分别对应的实际渲染时长,获取所述第二场景对应的待渲染的所述第一图像的预测渲染时长。

  渲染引擎可以执行上述图像渲染方法中相应步骤,这里不再赘述。

  显示引擎可以执行上述图像渲染方法中相应步骤,这里不再赘述。

  如图8所示,为本申请实施例提供的头戴式显示设备的另一种实现方式的结构图,该头戴式显示设备包括:

  存储器81,用于存储程序;

  处理器82,用于执行所述程序,所述程序具体用于:

  检测垂直同步信号;

  若检测到垂直同步信号,确定在渲染起始时刻的位姿数据,以及基于所述位姿数据渲染所述第一图像;

  其中,所述渲染起始时刻是基于待渲染的第一图像对应的预测渲染时长确定的,所述预测渲染时长是基于已渲染的至少一帧第二图像分别对应的实际渲染时长得到的;所述渲染起始时刻早于或等于特定时刻与所述预测渲染时长的差值;所述特定时刻是垂直同步信号的特定位置对应的时刻;

  在所述特定时刻得到渲染后的所述第一图像。

  处理器82可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit)。

  头戴式显示设备还可以包括通信接口83以及通信总线84,其中,存储器81、处理器82以及通信接口83通过通信总线84完成相互间的通信。

  本发明实施例还提供了一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如上述任一所述的图像渲染方法实施例中包含的各个步骤。

  需要说明的是,本说明书中的各个实施例中记载的特征可以相互替换或者组合。对于装置或系统类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

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

  结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

  对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

《图像渲染方法、头戴式显示设备及存储介质.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)