图像渲染方法、装置、终端、存储介质及程序产品与流程

文档序号:32222184发布日期:2022-11-16 10:41阅读:89来源:国知局
图像渲染方法、装置、终端、存储介质及程序产品与流程

1.本技术实施例涉及图像渲染技术领域,特别涉及一种图像渲染方法、装置、终端、存储介质及程序产品。


背景技术:

2.随着移动终端技术的不断发展以及流量成本的不断降低,终端应用也呈现出百花齐放的发展态势。尤其是一些以往只能在个人电脑上使用的应用程序,目前都可以实现在移动终端上进行使用。典型地例如一些以往只能在个人电脑上运行的游戏应用,尤其是三维(3 dimension,3d)游戏应用,目前都能实现在移动终端上运行。
3.然而,目前在终端上运行的3d应用,应用画面的图像质量较差。


技术实现要素:

4.本技术实施例提供了一种图像渲染方法、装置、终端、存储介质及程序产品。所述技术方案如下:
5.一方面,本技术实施例提供了一种图像渲染方法,所述方法应用于终端,所述终端包括虚拟环境渲染引擎和光追处理引擎,所述方法包括:
6.通过所述光追处理引擎接收所述虚拟环境渲染引擎发送的目标lod值,所述目标lod值表示待渲染图像中目标场景物体对应物体模型的细节级别;
7.基于所述目标lod值,通过所述光追处理引擎对所述目标场景物体进行光追计算,得到所述目标场景物体对应的目标光追数据;
8.通过所述光追处理引擎向所述虚拟环境渲染引擎发送所述目标光追数据,以使所述虚拟环境渲染引擎基于所述目标光追数据渲染所述目标场景物体。
9.另一方面,本技术实施例提供了一种图像渲染装置,所述装置应用于终端,所述终端包括虚拟环境渲染引擎和光追处理引擎,所述装置包括:
10.接收模块,用于通过所述光追处理引擎接收所述虚拟环境渲染引擎发送的目标lod值,所述目标lod值表示待渲染图像中目标场景物体对应物体模型的细节级别;
11.光追计算模块,用于基于所述目标lod值,通过所述光追处理引擎对所述目标场景物体进行光追计算,得到所述目标场景物体对应的目标光追数据;
12.第一发送模块,用于通过所述光追处理引擎向所述虚拟环境渲染引擎发送所述目标光追数据,以使所述虚拟环境渲染引擎基于所述目标光追数据渲染所述目标场景物体。
13.另一方面,本技术实施例提供了一种终端,所述终端包括:处理器和存储器,所述存储器存储有至少一条指令,所述至少一条指令用于被所述处理器加载并执行以实现如上述方面所述的图像渲染方法。
14.另一方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条程序代码,所述程序代码由处理器加载并执行以实现如上述方面所述的图像渲染方法。
15.另一方面,本技术实施例提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。终端的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该终端执行上述方面的各种可选实现方式中提供的图像渲染方法。
16.本技术实施例提供的技术方案可以带来如下有益效果:
17.本技术实施例中,通过在终端中额外设置光追处理引擎,由光追处理引擎进行光线追踪渲染,提供光追渲染效果;既可以在虚拟环境渲染引擎不具备光追渲染能力的情况下为3d画面提供光追渲染效果,也可以在不修改虚拟环境渲染引擎内部代码,或不了解虚拟环境渲染引擎内部代码的情况下,通过对光追处理引擎进行升级开发,优化虚拟环境渲染引擎的图像渲染能力。此外,通过虚拟环境渲染引擎将待渲染目标场景物体的目标lod值实时传输至光追处理引擎,由光追处理引擎基于目标lod值进行光追计算,可以使得光追处理引擎计算出的目标光追数据符合目标场景物体当前的细节级别需求,提高光追计算的准确性。
附图说明
18.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
19.图1示出了本技术一个示例性实施例提供的图像渲染方法的流程图;
20.图2示出了本技术一个示例性实施例提供的图像渲染方法的流程图;
21.图3示出了本技术一个示例性实施例示出的相机视口和场景物体之间的关系示意图;
22.图4示出了本技术一个示例性实施例提供的图像渲染方法的流程图;
23.图5示出了本技术一个示例性实施例提供的图像渲染方法的流程图;
24.图6示出了本技术一个示例性实施例示出的完整图像渲染流程图;
25.图7示出了本技术一个实施例提供的图像渲染装置的结构框图;
26.图8示出了本技术一个示例性实施例提供的终端的结构方框图。
具体实施方式
27.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
28.请参考图1,其示出了本技术一个示例性实施例提供的图像渲染方法的流程图,本技术实施例以该方法应用于终端为例进行说明,该方法包括:
29.步骤101,通过光追处理引擎接收虚拟环境渲染引擎发送的目标lod值,目标lod值表示待渲染图像中目标场景物体对应物体模型的细节级别。
30.在3d应用程序(比如,3d游戏和3d动画)中,需要在终端的二维显示屏幕中显示3d物体。为了使得3d应用中所显示的场景物体更符合真实世界,通过对图像中的场景物体进行光线追踪渲染(简称:光追渲染或光追),以模拟真实世界中的阴影、反射、折射以及环境
光遮蔽等效果。然而由于光追运算量较大,一些虚拟环境渲染引擎不具备光追计算能力。
31.本技术实施例提供的图像渲染方法,可以在虚拟环境渲染引擎不具备光追计算能力的情况下,为3d应用程序提供光追渲染效果。通过在终端中单独设置一个光追处理引擎,该光追处理引擎独立于虚拟环境渲染引擎存在,例如以插件的形式装载在终端,该光追处理引擎具有光线追踪计算或光追渲染功能,可以对场景物体进行光追计算。也即本技术实施例中的终端中设置有虚拟环境渲染引擎和光追处理引擎,该虚拟环境渲染引擎可以具备光追计算能力,也可以不具备光追计算能力;光追处理引擎具备光追计算能力。在虚拟环境渲染引擎不具备光追计算能力的情况下,可以通过光追处理引擎为3d应用提供光追渲染功能,当虚拟环境渲染引擎具备光追计算能力的情况下,可以在不对虚拟环境渲染引擎内部代码进行更改的情况下,直接对光追处理引擎进行升级更新,以进一步提高3d应用的光追渲染效果。
32.在3d应用的图像渲染场景中,场景物体在显示环境中所处的位置和重要度,决定场景物体渲染的资源分配,比如,若场景物体1距离相机非常远,该场景物体1能够被看到的细节会大量减少,若场景物体1距离相机非常近,该场景物体1能够被看到的细节会大量增加,则为了避免同一场景物体在显示环境中处于不同位置时均需要渲染该场景物体的全部细节,应用设计人员或动画设计人员会根据不同距离上对场景物体所显示细节的需要,为同一场景物体针对性的设计出不同细节级别的物体模型,且不同细节级别的物体模型可以使用不同lod(levelof detail,细节层次)值来区分。比如,lod值为0的物体模型的细节级别(精细度)高于lod值为1的物体模型的细节级别(精细度),也即lod值为0的物体模型包括更多的物体细节。
33.由于3d应用中同一场景物体在环境中的不同显示位置处可能对应不同细节级别的lod值,而不同lod值对应不同细节级别的物体模型,而物体模型的不同也会影响光追渲染的细节度。因此,为了提高光追处理引擎对场景物体进行光追渲染的准确性,在一种可能的实施方式中,应用运行过程中需要虚拟环境渲染引擎实时判断目标场景物体对应的目标lod值,并将目标lod值实时传输给光追处理引擎,对应的光追处理引擎可以接收虚拟环境渲染引擎发送的目标lod值,以便光追处理引擎可以基于目标lod值选择匹配的物体模型进行光追渲染。
34.其中,目标lod值表示待渲染图像中目标场景物体对应物体模型的细节级别,且细节级别越高,lod值越小。
35.步骤102,基于目标lod值,通过光追处理引擎对目标场景物体进行光追计算,得到目标场景物体对应的目标光追数据。
36.在一种可能的实施方式中,当光追处理引擎接收到虚拟环境渲染引擎传输的目标lod值后,即可以基于该目标lod值确定当前目标场景物体对应物体模型的细节级别,并选择该目标场景物体对应细节级别的物体模型进行光追计算,以得到目标场景物体对应的目标光追数据。
37.可选的,目标光追数据可以包括:目标场景物体对应的阴影、反射、折射以及环境光遮蔽等渲染参数。
38.可选的,光追处理引擎中可以预先存储有目标场景物体对应各个细节级别的物体模型,且不同细节级别的物体模型与其对应的lod值相关联,使得应用运行过程中,光追处
理引擎可以基于接收到的目标lod值索引到对应的物体模型,进而基于该物体模型对目标场景物体进行光追计算。
39.步骤103,通过光追处理引擎向虚拟环境渲染引擎发送目标光追数据,以使虚拟环境渲染引擎基于目标光追数据渲染目标场景物体。
40.为了使得待渲染图像中的目标场景物体具备光追渲染效果,在一种可能的实施方式中,当光追处理引擎对目标场景物体进行光追计算得到目标光追数据后,可以将目标光追数据发送给虚拟环境渲染引擎,以便虚拟环境渲染引擎可以基于目标光追数据渲染目标场景物体,使得图像中的目标场景无图具备光追渲染效果。
41.可选的,当图像渲染模式为全光追时,可以只根据光追处理引擎返回的目标光追数据进行图像渲染。当图像渲染模式为混合光追时,可以根据光追引擎返回的目标光追数据和虚拟环境渲染引擎中生成的图像渲染参数进行混合渲染。比如,若虚拟环境渲染引擎采用光栅化渲染方式,则虚拟环境渲染引擎将目标光追数据和光栅化渲染数据进行合并,得到最终的混合渲染效果。
42.综上所述,本技术实施例中,通过在终端中额外设置光追处理引擎,由光追处理引擎进行光线追踪渲染,提供光追渲染效果;既可以在虚拟环境渲染引擎不具备光追渲染能力的情况下为3d画面提供光追渲染效果,也可以在不修改虚拟环境渲染引擎内部代码,或不了解虚拟环境渲染引擎内部代码的情况下,通过对光追处理引擎进行升级开发,优化虚拟环境渲染引擎的图像渲染能力。此外,通过虚拟环境渲染引擎将待渲染目标场景物体的目标lod值实时传输至光追处理引擎,由光追处理引擎基于目标lod值进行光追计算,可以使得光追处理引擎计算出的目标光追数据符合目标场景物体当前的细节级别需求,提高光追计算的准确性。
43.场景物体的细节级别是实时变化的,为了避免虚拟环境渲染引擎需要实时将场景物体的物体模型传输至光追处理引擎,带来较大的传输成本。本实施例中,可以在应用初始运行开始,一次性将场景物体对应各个细节级别的物体模型传输给光追处理引擎,则在后续应用运行过程中,无需传输物体模型等资源参数,仅需要传输目标lod值,即可以实现对场景物体进行光追渲染。
44.请参考图2,其示出了本技术一个示例性实施例提供的图像渲染方法的流程图,本技术实施例以该方法应用于终端为例进行说明,该方法包括:
45.步骤201,通过虚拟环境渲染引擎将目标场景物体的目标场景信息发送给光追处理引擎,目标场景信息至少包括目标场景物体对应的至少一个候选物体模型、候选物体模型对应的候选lod值以及光源信息。
46.为了避免后续在应用运行过程中需要实时传输场景物体模型和光源信息等场景资源,所带来的传输成本,在一种可能的实施方式中,虚拟环境渲染引擎在应用运行初始即将目标场景物体对应的所有目标场景信息一次性传输给光追处理引擎,对应的,光追处理引擎接收该目标场景信息并存储,以便后续应用运行过程中基于该目标场景信息进行光追计算。
47.该目标场景信息主要包括光追处理引擎进行光追渲染所需要的场景信息,其可以包括目标场景物体对应不同细节级别的候选物体模型、各个候选物体模型对应的候选lod值、光源信息等。
48.步骤202,通过光追处理引擎接收虚拟环境渲染引擎发送的目标lod值,目标lod值表示待渲染图像中目标场景物体对应物体模型的细节级别。
49.由于在应用初始阶段已经将目标场景物体对应的目标场景信息发送给光追处理引擎,则在应用运行阶段,虚拟环境渲染引擎仅需要将实时确定的目标lod值发送给光追处理引擎,对应光追处理引擎即可以基于接收到的目标lod值从自身处查找到对应的目标物体模型和其他场景信息,进行光追计算,而无需在应用运行过程中传输场景物体模型和其他场景信息,减少了实时数据传输量,降低了数据传输成本。
50.由于同一场景物体在应用运行的不同阶段可能位于虚拟环境中的不同位置,对应需要渲染不同细节级别的物体模型,则为了使得光追处理引擎可以明确当前所需渲染的物体模型,虚拟环境渲染引擎需要实时计算目标场景物体距离主相机视口处的距离,以确定出对应的目标lod值传输给光追处理引擎。对应在一个示例性的例子中,步骤202可以包括步骤202a~步骤202d。
51.步骤202a,在应用运行过程中,通过虚拟环境渲染引擎实时获取目标场景物体距离目标光源的目标距离。
52.在应用运行过程中目标场景物体采用何种细节程度的物体模型进行渲染,取决于目标场景物体在当前环境中所处位置,主要是目标场景物体距离主相机视口的距离。对应在应用运行过程中,虚拟环境渲染引擎需要实时获取目标场景物体距离目标相机视口的目标距离,以确定该目标场景物体需要采用何种细节级别的物体模型进行渲染。
53.其中,目标主相机视口是定义用户与场景的相对位置和朝向。示意性的,如图3所示,其示出了本技术一个示例性实施例示出的相机视口和场景物体之间的关系示意图。图3所示的场景中包含有场景物体301和场景物体302,场景物体301相比于场景物体302距离相机视口303的距离较近,则对应场景物体301中的细节层次高于场景物体302的细节层次。
54.可选的,目标主相机时刻的位置可以发生改变。
55.步骤202b,基于目标距离和第一目标关系,确定目标场景物体对应的目标lod值,第一目标关系指示距离范围和lod值的对应关系。
56.其中,终端中设置有距离范围和lod值的对应关系。示意性的,距离范围和lod值之间的关系可以如表一所示。
57.表一
58.距离范围lod值a1~a2lod1a2~a3lod2a3~a4lod3
59.在一种可能的实施方式中,当虚拟环境渲染引擎获取到当前目标场景物体距离主相机视口的目标距离后,即可以基于目标距离和候选距离范围之间的关系,确定出目标距离所处的目标距离范围,进而基于目标距离范围所关联的lod值,确定出当前目标场景物体对应的目标lod值。比如,若目标距离位于a1~a2的距离范围内,则确定出目标场景无图对应的目标lod值为lod1。
60.步骤202c,通过虚拟环境渲染引擎向光追处理引擎发送目标lod值。
61.当虚拟环境渲染引擎确定出当前场景物体对应的目标lod值后,即可以将目标lod
值传输给光追处理引擎,由光追处理引擎基于目标lod值进行光追计算。
62.步骤202d,通过光追处理引擎接收目标lod值。
63.对应光追处理引擎接收到虚拟环境渲染引擎发送的目标lod值。
64.步骤203,从光追处理引擎处查找与目标lod值匹配的目标场景物体的目标物体模型。
65.由于光追处理引擎中预先存储有目标场景物体对应的全部目标场景信息,比如,存储有目标场景物体对应不同细节级别的候选物体模型,因此,在一种可能的实施方式中,当光追处理引擎接收到目标lod值后,即可以基于目标lod值进行查找,以查找与目标lod值匹配的候选lod值,并将该候选lod值对应的候选物体模型,确定为目标场景物体对应的目标物体模型,该目标物体模型即当前渲染目标场景无图所需细节级别的物体模型。
66.步骤204,基于目标物体模型,通过光追处理引擎对目标场景物体进行光追计算,得到目标场景物体对应的目标光追数据。
67.当光追处理引擎基于目标lod值索引到对应需要进行光追计算的目标物体模型后,即可以基于目标物体模型和其他场景资源,对目标场景物体进行光追计算,以得到目标场景物体对应的目标光追数据。
68.步骤205,通过光追处理引擎向虚拟环境渲染引擎发送目标光追数据,以使虚拟环境渲染引擎基于目标光追数据渲染目标场景物体。
69.步骤205的实施方式可以参考步骤103,本实施例在此不做赘述。
70.本实施例中,通过预先将目标场景物体对应的全部目标场景信息一次性传输给光追处理引擎,使得后续在应用运行过程中仅需要实时传输目标lod值,而无需实时传输其他场景信息,可以降低应用运行过程中的数据传输成本。
71.在一种可能的应用场景中,若目标场景物体对应的lod值较大,即目标场景物体对应的细节级别较低时,表示目标场景物体在环境中的重要度较低,且距离主相机视口较远,对应用户对其的关注度会较小,即使对该目标场景物体进行光追计算,用户可能也并不会关注这类目标场景物体的画面效果是否逼真。则为了进一步降低光追计算量,可以基于目标lod值有选择的对目标场景物体进行光追计算。
72.请参考图4,其示出了本技术一个示例性实施例提供的图像渲染方法的流程图,本技术实施例以该方法应用于终端为例进行说明,该方法包括:
73.步骤401,通过光追处理引擎接收虚拟环境渲染引擎发送的目标lod值,目标lod值表示待渲染图像中目标场景物体对应物体模型的细节级别。
74.步骤401的实施方式可以参考上文实施例,本实施例在此不做赘述。
75.步骤402,在目标lod值低于lod阈值的情况下,基于目标lod值,通过光追处理引擎对目标场景物体进行光追计算,得到目标场景物体对应的目标光追数据。
76.为了避免对细节级别较低的场景物体进行无意义的光追渲染,在一种可能的实施方式中,设置有lod阈值,仅对细节级别较高的场景物体进行光追渲染,而无需对细节级别较低的场景物体进行光追渲染。对应当光追处理引擎接收到目标lod值后,可以比较目标lod值与lod阈值,若目标lod值低于lod阈值,表示当前目标场景物体对应的细节级别较高,需要对其进行光追渲染,则光追处理引擎基于目标lod值索引其对应的目标物体模型,并对目标场景物体进行光追计算,以得到目标光追数据。
77.可选的,为了兼顾终端运行状态和渲染效果,比如,若终端负载较低时,为了进一步提高渲染效果,可以无需执行有选择的进行光追渲染的过程,实时对目标场景物体进行光追渲染。对应在一种可能的实施方式中,光追处理引擎可以实时获取终端当前的终端运行状态,若终端运行状态满足目标运行条件的情况下,表示终端运行状态较好,无需节省光追计算量,光追处理引擎可以直接基于目标lod值,对目标场景物体进行光追计算,得到目标场景物体对应的目标光追数据。
78.可选的,若终端运行状态不满足目标运行条件的情况下,表示终端运行状态较差,可以通过节省无意义的光追渲染,避免对终端造成更大的处理压力。对应在一种可能的实施方式中,当光追处理引擎确定终端运行状态不满足目标运行条件的情况下,表示终端运行状态较差,需要降低光追计算量,则光追处理引擎可以比较目标lod值和lod阈值的关系,有选择的进行光追计算,也即仅在目标lod值低于lod阈值的情况下,基于目标lod值对目标场景物体进行光追计算。
79.其中,终端运行状态可以包括终端温度、终端负载以及终端电量中的至少一种。对应目标运行条件可以是:终端温度低于温度阈值,终端负载低于负载阈值,终端电量高于电量阈值。
80.以终端运行状态是终端温度为例,若终端温度低于温度阈值时,满足目标运行条件,表示终端当前运行状态较好,不存在运算量较大的后台程序,则可以实时基于目标lod值进行光追渲染;反之,若终端温度高于温度阈值,不满足目标运行条件,表示终端当前运行有运算量较大的后台程序,则为了避免为终端增加较大的光追计算量,光追处理引擎可以基于目标lod值进行有选择的光追计算。
81.以终端运行状态为终端负载为例,若终端负载低于负载阈值,满足目标运行条件,可以实时基于目标lod值进行光追渲染;反之,若终端负载高于负载阈值,不满足目标运行条件,则为了避免增加终端负载,基于目标lod值进行有选择的光追计算。
82.以终端运行状态为终端电量为例,若终端电量高于电量阈值,满足目标运行条件,表示终端当前电量充足,可以支撑较大的光追计算量,则可以实时基于目标lod值进行光追渲染;反之,若终端电量低于电量阈值,不满足目标运行条件,则表示终端当前电量较低,无法支撑较大的光追计算量,为了避免对终端电量造成较大的压力,光追处理引擎可以基于目标lod值进行有选择的光追计算。
83.可选的,在实际应用过程中,可以选择终端运行状态的至少一种作为判断是否执行步骤402的依据,比如,当终端运行状态中的至少一种运行状态满足目标运行条件,则执行基于目标lod值,通过光追处理引擎对目标场景物体进行光追计算的步骤;当终端运行状态中的各个运行状态均不满足目标运行条件,则执行步骤402。
84.可选的,也可以设置当终端运行状态中的全部运行状态均满足目标运行条件,则执行基于目标lod值,通过光追处理引擎对目标场景物体进行光追计算的步骤;当终端运行状态中存在一种运行状态不满足目标运行条件,则执行步骤402。
85.步骤403,在目标lod值高于lod阈值的情况下,停止通过光追处理引擎对目标场景物体进行光追计算。
86.可选的,若目标lod值高于lod阈值,则表示当前目标场景物体对应的细节级别较低,为了节省光追计算量,可以无需对目标场景物体进行光追计算。
87.可选的,当光追处理引擎并未对目标场景物体进行光追计算后,可以向虚拟环境渲染引擎返回空值,以便虚拟环境渲染引擎基于自身输出的渲染参数进行图像渲染。
88.可选的,在其他可能的实施方式中,为了避免不必要的lod值传输过程,当虚拟环境渲染引擎确定目标lod值高于lod阈值的情况下,可以无需将目标lod值发送给光追处理引擎,对应的光追处理引擎也就无需对目标场景物体进行光追计算。
89.步骤404,通过光追处理引擎向虚拟环境渲染引擎发送目标光追数据,以使虚拟环境渲染引擎基于目标光追数据渲染目标场景物体。
90.步骤404的实施方式可以参考上文实施例,本实施例在此不做赘述。
91.本实施例中,通过比较目标lod值与lod阈值,设置仅在目标lod值低于lod阈值的情况下,对目标场景物体进行光追渲染,可以避免对细节级别较低的场景物体进行无意义的光追渲染,通过有选择的进行光追渲染,可以在保证画面渲染效果的同时,降低光追计算量。此外,通过获取终端当前的运行状态与目标运行条件比较,以确定是否有选择的执行光追渲染,可以在终端运行状态较好的情况下无差别的进行光追渲染,提高图像渲染效果;也可以在终端运行状态较差的情况下有选择的进行光追渲染,以避免增加终端运行压力。
92.在其他可能的实施方式中,在对场景物体进行光追计算时,也可以基于不同的lod值设置不同的光追计算精度,从而在实现对不同细节级别的场景物体均进行光追计算的同时,也可以降低光追计算量。
93.请参考图5,其示出了本技术一个示例性实施例提供的图像渲染方法的流程图,本技术实施例以该方法应用于终端为例进行说明,该方法包括:
94.步骤501,通过光追处理引擎接收虚拟环境渲染引擎发送的目标lod值,目标lod值表示待渲染图像中目标场景物体对应物体模型的细节级别。
95.步骤501的实施方式可以参考上文实施例,本实施例在此不做赘述。
96.步骤502,基于目标lod值和第二目标关系,确定目标光追计算精度,第二目标关系指示lod值和光追计算精度之间的关系,且lod值与光追计算精度呈负相关关系。
97.其中,光追处理引擎中设置有lod值与光追计算精度之间的对应关系。且lod值越大,表示场景物体的细节级别较低,对应光追计算精度较低;反之,若lod值越小,表示场景物体的细节级别较高,对应采用较高的光追计算精度。在一种可能的实施方式中,当光追处理引擎获取到目标lod值后,可以基于目标lod值与第二目标关系,查找与目标lod值匹配的光追计算精度,进而选择适配的光追计算精度进行光追计算。
98.可选的,光追计算精度越高,对应的光追计算量越大。
99.可选的,光追计算精度可以指示参与光追计算的物体模型的模型面数,光追计算精度越高,同一场景物体参与光追计算的物体模型的模型面数越多。
100.可选的,若lod值较低时,还可以设置对目标场景物体的各个面均进行光追计算,若lod值较高时,可以设置仅对目标场景物体的部分面进行光追计算。
101.步骤503,基于目标光追计算精度,通过光追处理引擎对目标场景物体进行光追计算,得到目标场景物体对应的目标光追数据。
102.在一种可能的实施方式中,当确定出目标光追计算精度后,光追处理引擎即可以按照光追计算精度对目标场景物体进行光追计算,得到目标场景物体对应的目标光追数据。
103.步骤504,通过光追处理引擎向虚拟环境渲染引擎发送目标光追数据,以使虚拟环境渲染引擎基于目标光追数据渲染目标场景物体。
104.步骤504的实施方式可以参考上文实施例,本实施例在此不做赘述。
105.本实施例中,基于目标lod值选择适配的光追计算精度,可以在对各个场景物体均进行光追计算的情况下,差异化的进行光追计算,以降低细节级别较低的场景物体的光追计算量。
106.请参考图6,其示出了本技术一个示例性实施例示出的完整图像渲染流程图。该方法包括:
107.步骤601,在应用初始阶段,虚拟环境渲染引擎将全部场景信息传输至光追处理引擎。
108.步骤602,光追处理引擎接收全部场景信息并存储。
109.步骤603,在应用运行阶段,虚拟环境渲染引擎实时计算场景物体距离相机视口的距离,并确定场景物体的lod值。
110.步骤604,虚拟环境渲染引擎将lod值实时发送给光追处理引擎。
111.步骤605,光追处理引擎接收虚拟环境渲染引擎发送的lod值。
112.步骤606,光追处理引擎基于lod值,从预先存储的全部场景信息中查找匹配的物体模型和其他场景信息,并基于该物体模型和其他场景信息进行光追计算,得到光追数据。
113.步骤607,光追处理引擎将光追数据发送给虚拟环境渲染引擎。
114.步骤608,虚拟环境渲染引擎接收光追处理引擎发送的光追数据,并基于光追数据进行图像渲染。
115.下述为本技术装置实施例,可以用于执行本技术方法实施例。对于本技术装置实施例中未披露的细节,请参照本技术方法实施例。
116.请参考图7,其示出了本技术一个实施例提供的图像渲染装置的结构框图。所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。如图7所示,该装置可以包括:
117.接收模块701,用于通过所述光追处理引擎接收所述虚拟环境渲染引擎发送的目标lod值,所述目标lod值表示待渲染图像中目标场景物体对应物体模型的细节级别;
118.光追计算模块702,用于基于所述目标lod值,通过所述光追处理引擎对所述目标场景物体进行光追计算,得到所述目标场景物体对应的目标光追数据;
119.第一发送模块703,用于通过所述光追处理引擎向所述虚拟环境渲染引擎发送所述目标光追数据,以使所述虚拟环境渲染引擎基于所述目标光追数据渲染所述目标场景物体。
120.可选的,所述光追计算模块702,还用于:
121.从所述光追处理引擎处查找与所述目标lod值匹配的所述目标场景物体的目标物体模型;
122.基于所述目标物体模型,通过所述光追处理引擎对所述目标场景物体进行光追计算,得到所述目标场景物体对应的所述目标光追数据。
123.可选的,所述装置还包括:
124.第二发送模块,用于通过所述虚拟环境渲染引擎将所述目标场景物体的目标场景信息发送给所述光追处理引擎,所述目标场景信息至少包括所述目标场景物体对应的至少
一个候选物体模型、所述候选物体模型对应的候选lod值以及光源信息;
125.所述光追计算模块702,还用于:
126.从所述光追处理引擎处查找与所述目标lod值匹配的候选lod值,并将所述候选lod值对应的候选物体模型,确定为所述目标场景物体对应的所述目标物体模型。
127.可选的,所述接收模块701,还用于:
128.在应用运行过程中,通过所述虚拟环境渲染引擎实时获取所述目标场景物体距离目标相机视口的目标距离;
129.基于所述目标距离和第一目标关系,确定所述目标场景物体对应的所述目标lod值,所述第一目标关系指示距离范围和lod值的对应关系;
130.通过所述虚拟环境渲染引擎向所述光追处理引擎发送所述目标lod值;
131.通过所述光追处理引擎接收所述目标lod值。
132.可选的,所述光追计算模块702,还用于:
133.在所述目标lod值低于lod阈值的情况下,基于所述目标lod值,通过所述光追处理引擎对所述目标场景物体进行光追计算,得到所述目标场景物体对应的所述目标光追数据。
134.可选的,所述装置还包括:
135.停止处理模块,用于在所述目标lod值高于所述lod阈值的情况下,停止通过所述光追处理引擎对所述目标场景物体进行光追计算。
136.可选的,所述装置还包括:
137.获取模块,用于获取所述终端当前的终端运行状态,所述终端运行状态包括:终端温度、终端负载以及终端电量中的至少一种;
138.所述光追计算模块702,还用于在所述终端运行状态满足目标运行条件的情况下,执行基于所述目标lod值,通过所述光追处理引擎对所述目标场景物体进行光追计算,得到所述目标场景物体对应的目标光追数据的步骤;
139.所述光追计算模块702,还用于在所述终端运行状态不满足所述目标运行条件的情况下,执行在所述目标lod值低于所述lod阈值的情况下,基于所述目标lod值,通过所述光追处理引擎对所述目标场景物体进行光追计算,得到所述目标场景物体对应的所述目标光追数据的步骤。
140.可选的,所述装置还包括:
141.停止发送模块,用于在所述虚拟环境渲染引擎确定所述目标lod值高于lod阈值的情况下,停止将所述目标lod值发送给所述光追处理引擎。
142.可选的,所述光追计算模块702,还用于:
143.基于所述目标lod值和第二目标关系,确定目标光追计算精度,所述第二目标关系指示lod值和光追计算精度之间的关系,且lod值与所述光追计算精度呈负相关关系;
144.基于所述目标光追计算精度,通过所述光追处理引擎对所述目标场景物体进行光追计算,得到所述目标场景物体对应的所述目标光追数据。
145.综上所述,本技术实施例中,通过在终端中额外设置光追处理引擎,由光追处理引擎进行光线追踪渲染,提供光追渲染效果;既可以在虚拟环境渲染引擎不具备光追渲染能力的情况下为3d画面提供光追渲染效果,也可以在不修改虚拟环境渲染引擎内部代码,或
不了解虚拟环境渲染引擎内部代码的情况下,通过对光追处理引擎进行升级开发,优化虚拟环境渲染引擎的图像渲染能力。此外,通过虚拟环境渲染引擎将待渲染目标场景物体的目标lod值实时传输至光追处理引擎,由光追处理引擎基于目标lod值进行光追计算,可以使得光追处理引擎计算出的目标光追数据符合目标场景物体当前的细节级别需求,提高光追计算的准确性。
146.需要说明的是:上述实施例提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
147.请参考图8,其示出了本技术一个示例性实施例提供的终端800的结构方框图。本技术中的终端800可以包括一个或多个如下部件:虚拟环境渲染引擎801和光追处理引擎802。
148.虚拟环境渲染引擎801用于负责对应用画面进行图像渲染。本技术实施例中,虚拟环境渲染引擎801在应用初始阶段可以将全部场景信息发送给光追处理引擎802,由光追处理引擎802负责应用画面中各个场景物体的光追渲染。可选的,虚拟环境渲染引擎801还需要在应用运行阶段实时判断场景物体的lod值,并将lod值传输给光追处理引擎802,以便光追处理引擎基于lod值进行光追渲染。可选的,虚拟环境渲染引擎801还会接收光追处理引擎802反馈的光追数据,以便基于光追数据进行图像渲染。
149.光追处理引擎802用于负责对图像中的场景物体进行光追渲染。本技术实施例中,光追处理引擎802在应用初始阶段接收虚拟环境渲染引擎801发送的全部场景信息,并存储;在应用运行阶段,光追处理引擎802可以接收虚拟环境渲染引擎801发送的lod值,并基于lod值进行光追计算,以得到光追数据,并向虚拟环境渲染引擎801反馈光追数据。
150.可选的,虚拟环境渲染引擎801和光追处理引擎802可以集成在终端800的同一处理器上,也可以分别集成在终端800的不同处理器上,本技术实施例对此不构成限定。
151.可选的,终端800还包括存储器,该存储器可以包括随机存储器(random access memory,ram),也可以包括只读存储器(read-only memory,rom)。可选地,该存储器包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器可用于存储指令、程序、代码、代码集或指令集。存储器可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令、用于实现上述各个方法实施例的指令等。
152.除此之外,本领域技术人员可以理解,上述附图所示出的终端800的结构并不构成对终端800的限定,终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。比如,终端800中还包括触摸显示屏、传感器、无线保真(wireless fidelity,wifi)组件、电源、蓝牙组件等部件,在此不再赘述。
153.本技术还提供了一种计算机可读存储介质,所述可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述任意示例性实施例所提供的图像渲染方法。
154.本技术实施例提供了一种计算机程序产品,该计算机程序产品包括计算机指令,
该计算机指令存储在计算机可读存储介质中。终端的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该打印设备执行上述可选实现方式中提供的图像渲染方法。
155.应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。另外,本文中描述的步骤编号,仅示例性示出了步骤间的一种可能的执行先后顺序,在一些其它实施例中,上述步骤也可以不按照编号顺序来执行,如两个不同编号的步骤同时执行,或者两个不同编号的步骤按照与图示相反的顺序执行,本技术实施例对此不作限定。
156.以上所述仅为本技术的可选实施例,并不用以限制本技术,凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1