图像渲染方法、装置以及存储介质制造方法及图纸

技术编号:36952650 阅读:6 留言:0更新日期:2023-03-22 19:13
本公开涉及一种图像渲染方法、装置以及存储介质,所述方法应用于虚拟现实设备,所述方法包括:根据第一线程生成当前帧图像的渲染命令,并将所述当前帧图像的渲染命令发送给第二线程,所述当前帧图像是待渲染的多帧图像中的任一帧图像;根据所述第二线程对所述当前帧图像的渲染命令进行处理,得到所述当前帧图像的渲染结果。本公开可以有效减少单帧图像的平均渲染时间,提高渲染帧率,从而提升虚拟现实设备的使用感受。备的使用感受。备的使用感受。

【技术实现步骤摘要】
图像渲染方法、装置以及存储介质


[0001]本公开涉及图像处理
,尤其涉及一种图像渲染方法、装置以及存储介质。

技术介绍

[0002]OpenXR是一个针对XR应用程序接口,当前VR(Virtual Reality,虚拟现实)设备上支持此应用程序接口,且业界也推广其作为VR设备上的标准接口。OpenXR为用户提供了三种接口作为渲染帧之间的同步,分别为xrWaitFrame、xrBeginFrame、xrEndFrame。其中,xrWaitFrame判断上一帧结果是否完成,xrBeginFrame代表此帧可以开始进行绘制,xrEndFrame代表此帧绘制完成,且这三种接口具有线程一致性。
[0003]相关技术中,基于OpenXR的虚拟现实设备的图像渲染过程通过单一线程执行,导致图像渲染效率差。

技术实现思路

[0004]为克服相关技术中存在的问题,本公开提供一种图像渲染方法、装置以及存储介质。
[0005]根据本公开实施例的第一方面,提供一种图像渲染方法,应用于虚拟现实设备,所述方法包括:
[0006]根据第一线程生成当前帧图像的渲染命令,并将所述当前帧图像的渲染命令发送给第二线程,所述当前帧图像是待渲染的多帧图像中的任一帧图像;
[0007]根据所述第二线程对所述当前帧图像的渲染命令进行处理,得到所述当前帧图像的渲染结果。
[0008]可选地,所述方法还包括:
[0009]重复执行以下步骤:在根据所述第二线程对所述当前帧图像的渲染命令进行处理的过程中,确定下一次渲染的当前帧图像,并执行上述生成所述当前帧图像的所述渲染命令至得到所述当前帧图像的所述渲染结果的步骤,直至所述当前帧图像为所述多帧图像中的最后一帧图像,得到所述多帧图像的渲染结果。
[0010]可选地,在所述将所述当前帧图像的渲染命令发送给第二线程之前,所述方法还包括:
[0011]根据所述第一线程调用等待接口检查所述当前帧图像的上一帧图像是否渲染完成;
[0012]在所述第一线程接收到所述等待接口返回的渲染完成信息的情况下,调用启动接口,以启动所述第二线程,所述渲染完成信息用于反映所述上一帧图像已渲染完成;
[0013]将所述当前帧图像的渲染命令发送给所述第二线程。
[0014]可选地,所述根据所述第二线程对所述当前帧图像的渲染命令进行处理,得到所述当前帧图像的渲染结果,包括:
[0015]根据所述第二线程调用所述当前帧图像的渲染命令,并在所述当前帧图像的渲染
命令调用完毕的情况下,得到所述当前帧图像的渲染结果。
[0016]可选地,所述在所述当前帧图像的渲染命令调用完毕的情况下,得到所述当前帧图像的渲染结果,包括:
[0017]在所述当前帧图像的渲染命令调用完毕的情况下,调用OpenXR应用程序接口中的xrEndFrame接口,得到所述当前帧图像的渲染结果。
[0018]可选地,所述根据第一线程生成当前帧图像的渲染命令,包括:
[0019]根据所述第一线程执行与所述当前帧图像相关的CPU端的预设计算得到GPU命令,并对所述GPU命令进行打包处理,生成所述当前帧图像的渲染命令。
[0020]可选地,所述等待接口是OpenXR应用程序接口中的xrWaitFrame接口,所述启动接口是所述OpenXR应用程序接口中的xrBeginFrame接口。
[0021]根据本公开实施例的第二方面,提供一种图像渲染装置,应用于虚拟现实设备,所述装置包括:
[0022]生成模块,被配置为根据第一线程生成当前帧图像的渲染命令,并将所述当前帧图像的渲染命令发送给第二线程,所述当前帧图像是待渲染的多帧图像中的任一帧图像;
[0023]渲染模块,被配置为根据所述第二线程对所述当前帧图像的渲染命令进行处理,得到所述当前帧图像的渲染结果。
[0024]根据本公开实施例的第三方面,提供一种图像渲染装置,包括:
[0025]处理器;
[0026]用于存储处理器可执行指令的存储器;
[0027]其中,所述处理器被配置为:
[0028]根据第一线程生成当前帧图像的渲染命令,并将所述当前帧图像的渲染命令发送给第二线程,所述当前帧图像是待渲染的多帧图像中的任一帧图像;
[0029]根据所述第二线程对所述当前帧图像的渲染命令进行处理,得到所述当前帧图像的渲染结果。
[0030]根据本公开实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序指令,该程序指令被处理器执行时实现本公开第一方面所提供的图像渲染方法的步骤。
[0031]本公开的实施例提供的技术方案可以包括以下有益效果:通过将虚拟现实设备的渲染过程分为两个线程去执行,其中,第一线程用于生成当前图像帧的渲染命令以及将渲染命令发送给第二线程,即第一线程负责当前帧图像的CPU端的相关计算和GPU命令的打包;第二线程用于对当前帧图像的渲染命令进行处理,即第二线程负责执行第一线程打包好的GPU命令。由此,本公开将虚拟现实设备的图像渲染涉及的CPU和GPU的运算分成两个线程去完成,可以有效减少单帧图像的平均渲染时间,提高渲染帧率,从而提升虚拟现实设备的使用感受。
[0032]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
[0033]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施
例,并与说明书一起用于解释本公开的原理。
[0034]图1是根据一示例性实施例示出的一种图像渲染方法的流程图。
[0035]图2是根据一示例性实施例示出的一种图像渲染装置的框图。
[0036]图3是根据一示例性实施例示出的一种用于图像渲染的装置的框图。
具体实施方式
[0037]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
[0038]正如
技术介绍
所言,相关技术中,基于OpenXR的虚拟现实设备的图像渲染过程通过单一线程执行,因此,图像渲染效率低下。特别是在虚拟现实设备上,需要较高渲染质量和帧率,此种方案在时间上造成了较大的浪费,处理速度较慢,帧率较低,容易让使用者在使用虚拟现实设备时产生眩晕感。
[0039]图1是根据一示例性实施例示出的一种图像渲染方法的流程图,该图像渲染方法应用于虚拟现实设备,如图1所示,该图像渲染方法可以包括以下步骤。
[0040]步骤110,根据第一线程生成当前帧图像的渲染命令,并将当前帧图像的渲染命令发送给第二线程,当前帧图像是待渲染的多帧图像中的任一帧图像。
[0041]在一些实施例中,虚拟现实设备可以是本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种图像渲染方法,其特征在于,应用于虚拟现实设备,所述方法包括:根据第一线程生成当前帧图像的渲染命令,并将所述当前帧图像的渲染命令发送给第二线程,所述当前帧图像是待渲染的多帧图像中的任一帧图像;根据所述第二线程对所述当前帧图像的渲染命令进行处理,得到所述当前帧图像的渲染结果。2.根据权利要求1所述的图像渲染方法,其特征在于,所述方法还包括:重复执行以下步骤:在根据所述第二线程对所述当前帧图像的渲染命令进行处理的过程中,确定下一次渲染的当前帧图像,并执行上述生成所述当前帧图像的所述渲染命令至得到所述当前帧图像的所述渲染结果的步骤,直至所述当前帧图像为所述多帧图像中的最后一帧图像,得到所述多帧图像的渲染结果。3.根据权利要求1或2所述的图像渲染方法,其特征在于,在所述将所述当前帧图像的渲染命令发送给第二线程之前,所述方法还包括:根据所述第一线程调用等待接口检查所述当前帧图像的上一帧图像是否渲染完成;在所述第一线程接收到所述等待接口返回的渲染完成信息的情况下,调用启动接口,以启动所述第二线程,所述渲染完成信息用于反映所述上一帧图像已渲染完成;将所述当前帧图像的渲染命令发送给所述第二线程。4.根据权利要求1或2所述的图像渲染方法,其特征在于,所述根据所述第二线程对所述当前帧图像的渲染命令进行处理,得到所述当前帧图像的渲染结果,包括:根据所述第二线程调用所述当前帧图像的渲染命令,并在所述当前帧图像的渲染命令调用完毕的情况下,得到所述当前帧图像的渲染结果。5.根据权利要求4所述的图像渲染方法,其特征在于,所述在所述当前帧图像的渲染命令调用完毕的情况下,得到所述当前帧图像...

【专利技术属性】
技术研发人员:阎法典尹林拿
申请(专利权)人:粒界上海信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1