一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

游戏场景中光照信息的渲染方法、装置及设备与流程

2022-06-01 13:47:12 来源:中国专利 TAG:

游戏场景中光照信息的渲染方法、装置及设备
1.本技术是2021年3月30日提交中国专利局,申请号为202110342315.4,名称为“游戏场景中光照信息的渲染方法、装置及设备”的中国专利申请的分案申请。
技术领域
2.本技术涉及3d渲染技术领域,尤其是涉及到一种游戏场景中光照信息的渲染方法、装置及设备。


背景技术:

3.为了使游戏场景中的物体更为真实,通常需要在场景中投射光线,自然界的光照是非常复杂的,各种反射、折射等等,游戏中国的光照都是尽可能去模拟真实的世界,达到逼真的效果。
4.目前游戏场景中通常使用全局光照来模拟光的互动和反弹等复杂行为的算法,全局光照通过一系列复杂的算法,来计算光线从光源射出后在物体表面间的弹射,通常在运行时实现精准的模拟,能够有效地增强场景的真实感。受限于硬件技术,实时全局光照的性能仅局限于小规模渲染中,适用于静态物体的渲染,而针对动态物体光照计算,通常使用光照探针来存储附近物体的反射光,当动态物体经过时,供给动态物体结合光源使用。
5.作为光照探针的采集光照信息的一种方式,可以针对游戏场景中逐个像素进行采样,由于屏幕像素是固定的,以像素为单位代替以物体单位采集光照信息的方式,能够提供更加精确的光照探针,并在像素或计算着色器中,多个光照探针之间进行线性插值时,可以使用gpu硬件来快速采样每帧数百万个光照探针捕获的光照信息。然而,游戏场景中大量像素纹理的需求,在着色器或gpu计算单元中读取和采样贴图过程需要高速和便利,从一定程度上增加游戏场景中光照信息采样的更新、传输和存储成本,影响光照信息的渲染效率。


技术实现要素:

6.有鉴于此,本技术提供了一种游戏场景中光照信息的渲染方法、装置及设备,主要目的在于解决现有技术游戏场景中光照信息采样的更新、传输和存储成本较高,影响光照信息的渲染效率的问题。
7.根据本技术的第一个方面,提供了一种游戏场景中光照信息的渲染方法,包括:
8.针对游戏场景中空间体素布置探针网格,所述探针网格中包括用于捕获游戏场景中光照信息的光照探针;
9.根据游戏场景中视点位置更新所述探针网格中相应视点位置的光照探针,并捕获所述视点位置的光照信息;
10.将所述视点位置的光照信息经过中央处理器生成具有相同数据尺寸的多个探针数据纹理后传输至图形处理器,所述探针数据纹理包括资源纹理和间接纹理;
11.响应于所述中央处理器调用的渲染指令,所述图形处理器根据游戏场景中物体表面采样点的位置信息,利用所述资源纹理和间接纹理采样游戏场景中物体的光照信息,并
对所述物体的光照信息进行渲染。
12.进一步地,所述探针网格中的光照探针具有节点层级关系,所述根据游戏场景中视点位置更新所述探针网格中相应视点位置的光照探针,并捕获所述视点位置的光照信息,具体包括:
13.根据游戏场景中视点位置,查询所述视点位置映射光照探针的节点层级关系;
14.按照所述视点位置映射光照探针的节点层级关系,更新所述探针网格中相应视点位置的光照探针,并捕获所述视点位置的光照信息。
15.进一步地,所述视点位置的光照信息携带有节点层级关系,所述将所述视点位置的光照信息生成具有相同数据尺寸的多个探针数据纹理后传输至图形处理器,具体包括:
16.利用所述视点位置的光照信息所携带的节点层级关系,提取资源纹理和间接纹理;
17.将所述资源纹理和间接纹理生成具有相同数据尺寸的多个探针数据纹理后传输至图形处理器。
18.进一步地,所述利用所述视点位置的光照信息所携带的节点层级关系,提取资源纹理和间接纹理,具体包括:
19.按照所述视点位置的光照信息所携带的节点层级关系,将所述视点位置信息的光照信息展开成资源纹理;
20.在展开成所述资源纹理过程中,将所述资源纹理在树形结构中的原始层级关系存储至间接纹理。
21.进一步地,所述探针网格包括有效光照探针和虚拟光照探针,所述针对游戏场景中空间体素布置探针网格,具体包括:
22.获取游戏场景中空间体素包含的近距离体素,所述近距离体素为游戏场景中空间体素分割所形成预设层级的体素中符合距离条件的体素,所述距离条件为体素的包围盒与游戏场景中物体包围盒相交;
23.针对所述空间体素包含的近距离体素布置探针网格。
24.进一步地,所述探针网格中的光照探针包括有效光照探针和虚拟光照探针,所述针对所述空间体素包含的近距离体素布置探针网格,具体包括:
25.针对所述空间体素中处于层级内的近距离体素,创建有效光照探针;
26.为所述空间体素增设层级对应的虚拟体素,针对所述虚拟体素中符合添加条件的体素创建虚拟光照探针,所述虚拟光照探针用于对所述空间体素中处于层级内近距离体素所采样的光照信息进行无缝插值。
27.进一步地,所述根据游戏场景中物体表面采样点的位置信息,利用所述资源纹理和间接纹理采样游戏场景中物体的光照信息,并对所述物体的光照信息进行渲染,具体包括:
28.根据游戏场景中物体表面采样点的位置信息,从所述间接纹理中获取所述资源纹理在树形结构中的原始层级关系;
29.利用所述资源纹理在树形结构中的原始层级关系从所述资源纹理中采样游戏场景中物体的光照信息,并对所述物体的光照信息进行渲染。
30.进一步地,所述利用所述资源纹理在树形结构中的原始层级关系从所述资源纹理
中采样游戏场景中物体的光照信息,并对所述物体的光照信息进行渲染,具体包括:
31.利用所述资源纹理在树形结构中的原始层级关系,获取资源纹理在树形结构中的级别和偏移量;
32.根据所述资源纹理在树形结构中的级别和偏移量,计算资源纹理中缓存的光照采样位置;
33.按照所述资源纹理中缓存的光照采样位置采样游戏场景中物体的光照信息,并对所述物体的光照信息进行渲染。
34.根据本技术的第二个方面,提供了一种游戏场景中光照信息的渲染装置,包括:
35.布置单元,用于针对游戏场景中空间体素布置探针网格,所述探针网格中包括用于捕获游戏场景中光照信息的光照探针;
36.更新单元,用于根据游戏场景中视点位置更新所述探针网格中相应视点位置的光照探针,并捕获所述视点位置的光照信息;
37.生成单元,用于将所述视点位置的光照信息经过中央处理器生成具有相同数据尺寸的多个探针数据纹理后传输至图形处理器,所述探针数据纹理包括资源纹理和间接纹理;
38.渲染单元,用于响应于所述中央处理器调用的渲染指令,所述图形处理器根据游戏场景中物体表面采样点的位置信息,利用所述资源纹理和间接纹理采样游戏场景中物体的光照信息,并对所述物体的光照信息进行渲染。
39.进一步地,所述探针网格中的光照探针具有节点层级关系,所述更新单元包括:
40.查询模块,用于根据游戏场景中视点位置,查询所述视点位置映射光照探针的节点层级关系;
41.更新模块,用于按照所述视点位置映射光照探针的节点层级关系,更新所述探针网格中相应视点位置的光照探针,并捕获所述视点位置的光照信息。
42.进一步地,所述视点位置的光照信息携带有节点层级关系,所述生成单元包括:
43.提取模块,用于利用所述视点位置的光照信息所携带的节点层级关系,提取资源纹理和间接纹理;
44.生成模块,用于将所述资源纹理和间接纹理生成具有相同数据尺寸的多个探针数据纹理后传输至图形处理器。
45.进一步地,所述提取模块包括:
46.展开子模块,用于按照所述视点位置的光照信息所携带的节点层级关系,将所述视点位置信息的光照信息展开成资源纹理;
47.存储子模块,用于在展开成所述资源纹理过程中,将所述资源纹理在树形结构中的原始层级关系存储至间接纹理。
48.进一步地,所述探针网格包括有效光照探针和虚拟光照探针,所述布置单元包括:
49.第一获取模块,用于获取游戏场景中空间体素包含的近距离体素,所述近距离体素为游戏场景中空间体素分割所形成预设层级的体素中符合距离条件的体素,所述距离条件为体素的包围盒与游戏场景中物体包围盒相交;
50.布置模块,用于针对所述空间体素包含的近距离体素布置探针网格。
51.进一步地,所述布置模块,具体用于针对所述空间体素中处于层级内的近距离体
素,创建有效光照探针;
52.所述布置模块,具体还用于为所述空间体素增设层级对应的虚拟体素,针对所述虚拟体素中符合添加条件的体素创建虚拟光照探针,所述虚拟光照探针用于对所述空间体素中处于层级内近距离体素所采样的光照信息进行无缝插值。
53.进一步地,所述渲染单元包括:
54.第二获取模块,用于根据游戏场景中物体表面采样点的位置信息,从所述间接纹理中获取所述资源纹理在树形结构中的原始层级关系;
55.渲染模块,用于利用所述资源纹理在树形结构中的原始层级关系从所述资源纹理中采样游戏场景中物体的光照信息,并对所述物体的光照信息进行渲染。
56.进一步地,所述渲染模块包括:
57.获取子模块,用于利用所述资源纹理在树形结构中的原始层级关系,获取资源纹理在树形结构中的级别和偏移量;
58.计算子模块,用于根据所述资源纹理在树形结构中的级别和偏移量,计算资源纹理中缓存的光照采样位置;
59.渲染子模块,用于按照所述资源纹理中缓存的光照采样位置采样游戏场景中物体的光照信息,并对所述物体的光照信息进行渲染。
60.根据本技术的第三个方面,提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述方法的步骤。
61.根据本技术的第四个方面,提供了一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的方法的步骤。
62.借由上述技术方案,本技术提供的一种游戏场景中光照信息的渲染方法、装置及设备,与目前现有方式中使用gpu硬件来快速采样每帧数百万个光照探针捕获的光照信息的方式相比,本技术针对游戏场景中空间体素布置探针网格,能够合理摆放光照探针,有效避免光照探针的浪费,进一步根据游戏场景中视点位置更新探针网格中相应视点位置的光照探针,并捕获视点位置的光照信息,将视点位置的光照信息生成具有相同数据尺寸的多个探针数据纹理后传输至图形处理器,无需逐像素进行光照信息的采样,节省渲染缓冲的存储空间,该探针数据纹理包括资源纹理和间接纹理,由图形处理器响应于中央处理器调用的渲染指令,根据游戏场景中物体表面采样点的位置信息,利用资源纹理和间接纹理采样游戏场景中物体的光照信息,并对物体的光照信息进行渲染,由于间接纹理存储有光照信息在游戏场景中的采样位置信息,通过资源纹理结合间接纹理对同屏像素根据游戏场景中的视点位置采样不同密度的光照信息,能够节省游戏场景中光照信息采样的更新、传输和存储成本,提高光照信息的渲染效率。
63.上述说明仅是本技术技术方案的概述,为了能够更清楚了解本技术的技术手段,而可依照说明书的内容予以实施,并且为了让本技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本技术的具体实施方式。
附图说明
64.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本申
请的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
65.图1示出了本技术实施例提供的一种游戏场景中光照信息的渲染方法的流程示意图;
66.图2示出了本技术实施例提供的另一种游戏场景中光照信息的渲染方法的流程示意图;
67.图3a-3b示出了本技术实施例提供的游戏场景中光照探针的创建以及渲染过程的示意图;
68.图4示出了本技术实施例提供的另一种游戏场景中光照信息的渲染方法的流程示意图;
69.图5示出了本技术实施例提供的游戏场景中光照信息渲染的框架示意图;
70.图6示出了本技术实施例提供的一种游戏场景中光照信息的渲染装置的结构示意图;
71.图7示出了本技术实施例提供的另一种游戏场景中光照信息的渲染装置的结构示意图;
72.图8示出了本发明实施例提供的一种计算机设备的装置结构示意图。
具体实施方式
73.现在将参照若干示例性实施例来论述本发明的内容。应当理解,论述了这些实施例仅是为了使得本领域普通技术人员能够更好地理解且因此实现本发明的内容,而不是暗示对本发明的范围的任何限制。
74.如本文中所使用的,术语“包括”及其变体要被解读为意味着“包括但不限于”的开放式术语。术语“基于”要被解读为“至少部分地基于”。术语“一个实施例”和“一种实施例”要被解读为“至少一个实施例”。术语“另一个实施例”要被解读为“至少一个其他实施例”。
75.在游戏场景中,光照是一个影响较大的因素,也是视觉风格不可缺失的一部分,通常情况下,游戏场景中的静态和动态物体都存在体积大小不一、或者模型结构复杂的可能,这些美术资产都很难烘焙成有效的光照贴图,而逐像素采样的光照探针可以避免运动物体的光照效果和整个使用静态光照贴图的场景不协调的感觉,能够给场景带来统一的间接光照,同时简化了渲染管线的复杂度,提升渲染效率。在光照探针运行过程中,可以针对某一光照探针所在的位置点上对光照信息进行采样,然后从该光照探针相邻的其他光照探针的位置上对光照信息进行采样,然后把这些采样得到的光照信息进行插值运算,以计算出这些光照探针之间某个位置的光照信息。
76.作为一种光照探针的采样方式,可以针对游戏场景中逐个物体进行采样,具体包括逐个物体对应参数采样和逐个物体3d纹理采样,在逐个物体对应参数采样的过程中,光照变化取决于物体表面法线而不是表面上的位置,针对小型物体来说是足够的,但可能会导致与相邻较大的模型出现光照不匹配和不连续的情况,所以在cpu端进行一对一的收集、更新、采样,每个相关物体都有其对应插值后的sh系数,虽然相对容易维护、成本低廉,但无法为大量及复杂物体提供间接光照,适用场景单一,在逐个物体3d纹理采样的过程中,利用了硬件加速功能在gpu端进行采样插值计算,相比上述逐个物体对应参数采样的方式,从一定程度上改善了光照信息的采样效果,但是3d纹理从cpu端至cpu端的更新成本、传输带宽
限制了逐个物体采样的物体总数,大量具有实例化大模型很难使用逐个物体的多采样方式。
77.通常情况下,游戏场景中的静态物体和动态物体都存在大小不一、或者模型结构复杂的情况,使得美术资产很难烘焙成有效的光照贴图,游戏场景中逐个像素采样具有后天处理优势,能够统一间接光照的处理,同时简化渲染管线的复杂度,提升渲染效率。但是,动态物体需要提供更加精准的光照探针,光照探针的位置以及数量部署都从一定程度上影响光照信息后期的采样效率,游戏场景中大量纹理资源的需求使得gpu硬件加速光照探针的采样速率,增加游戏场景中光照信息采样的更新、传输和存储成本,影响光照信息的渲染效率。
78.为了解决该问题,本实施例提供了一种游戏场景中光照信息的渲染方法,如图1所示,该方法应用于场景渲染工具,涉及场景渲染工具的中央处理器与图像处理器的交互,即cpu端与gpu端的交互,包括如下步骤:
79.101、针对游戏场景中空间体素布置探针网格。
80.游戏是实时的、动态的、互动的计算机模拟,很多三维游戏使用三维三角网格表述物体表面,这种表述物体表面的细节层被存储在纹理中,在进行着色的时候,需要首先考虑到光线与之相交的物体,然后选择该物体表面对应的细节层次的多级纹理进行着色计算,空间体素作为游戏空间中纹理渲染的体积单元,包含体素的对象可通过立体渲染或者提取给定阈值轮廓的多边形等值面表现出来。
81.针对游戏场景涉及的光照效果,通常使用全局光照进行渲染,全局光照考虑了光线的直射与尽可能多的漫反射效果,最终呈现出来的光影效果更接近于现实世界。具体全局光照指的是对游戏场景周围光线反射的计算,负责制作出实现环境中的许多细微着色特效、气氛以及有光泽的金属反射效果。现有全局光照方式中,所有间接光照是预先计算的,存储于有光线贴图的纹理信息中,光线贴图让游戏场景能够具备类似全局光照的效果,由于预先计算的,所以只在静态物体上有效。而针对非静态物体的全局光照,使用光照探针可以模拟使用光照贴图的效果,该光照探针可以对照亮在3d空间中的某一个指定点的光照信息在运行前的预计算阶段进行采样,然后将采集到的信息通过球谐函数进行编译打包存。在游戏运行时,通过着色器程序可以把这些光照信息编码快速地重建出光照效果。与光照贴图类似,光照探针能够捕获游戏场景中光照信息,并存储场景中的光照信息,而不同的是光照贴图存储的是灯光照射到物体表面的光照信息,而光照探针存储的是灯光穿过真空区域时的光照信息。
82.通常情况下,光照探针的布置是由人工摆放和位置调整,而光照探针布置的位置和数量直接影响光照信息的采样结果,为了避免不必要光照探针资源的浪费,本发明实施例在针对游戏场景中光照探针布置探针网格的过程中,可以针对靠近物体表面的空间体素布置光照探针,而针对空旷区间的空间体素。这里针对靠近物体表面空间体素的判定过程,具体可以通过对游戏场景中空间体素进行多次切分所形成多层级体素进行判断,若判断该体素与游戏场景中物体相交,则确定该体素为靠近物体表面的空间体素,进而针对靠近物体表面的空间体素布置光照探针,形成探针网格。
83.可以理解的是,由于光照探针通常由于处理游戏场景的人物角色或者动态物体的光照,以针对游戏场景中的移动物体上提供高质量的照明,本技术中布置的探针网格针对
靠近游戏场景中物体表面的空间体素设置光照探针,针对其他空间体素并不设置光照探针,使得后续采样的光照信息是围绕物体周围的有效光照信息,避免光照探针资源浪费的同时提高游戏场景中移动物体的照明效果。
84.102、根据游戏场景中视点位置更新所述探针网格中相应视点位置的光照探针,并捕获所述视点位置的光照信息。
85.可以理解的是,由于光照信息的采集过程受到探针网格中光照探针位置的影响,不同空间位置的光照信息相互之间会受到影响,而游戏场景中视点位置即为视频设备视角所对应的空间位置,以该位置作为光照信息的采样位置,更新探针网格中相应视点位置的光照探针,后续针对该视点位置的光照探针所捕获的光照信息进行渲染,无需耗费大量资源去存储和传输探针数据,节省存储和传输开销的同时,保证了渲染精度。
86.其中,游戏场景中的视点位置为游戏场景中设置光照信息的任一采样位置,针对视点位置,有效光照探针会不断采集游戏场景中变化的光照数据,然后在对光照信息进行插值过程中,利用探针网格提供不同密度的采样插值结果,以形成探针网格捕获视点位置的光照信息。
87.具体在根据游戏场景中视点位置更新探针网格中相应视点位置的光照探针过程中,可以针对游戏场景中视点位置,获取探针网格中相应视点位置对应光照探针在空间体素中的位置,根据光照探针在空间体素中的位置判断空间体素中是否包含有物体,对于包含有物体的空间体素内会布置有光照探针,而对于未包含有物体的空间体素不会布置光照探针,进一步针对视点位置更新探针网格中包含有物体的空间体素内所布置光照探针,以使得后续在采集光照信息的过程中,可以直接采集包含有物体的空间体素内所布置光照探针对应的光照信息。
88.103、将所述视点位置的光照信息经过中央处理器生成具有相同数据尺寸的多个探针数据纹理后传输至图形处理器。
89.可以理解的是,视点位置的光照信息包括预先计算的光照数据,许多预算开销尽在编辑时产生,不会出现在运行时,光照探针会存储穿过场景空间的光照数据,并将其整合为具有相同数据尺寸的多个探针数据纹理,该探针数据纹理相当于动态物体的光照贴图,同样包含场景内投射到物体表面的直接光源,以及不同物体间反射的间接光源,可透过物体材质上的着色器描述物体的表面信息和凹凸信息。
90.具体在将视点位置的光照信息生成具有相同数据尺寸的多个探针数据纹理过程中,由于视点位置的光照信息为探针网格中光照探针所捕获,而光照探针在探针网格中所处的位置能够影响光照信息的采样,这里使用八叉树来代表一个游戏场景,有场景空间的大小和空间内物体分布、复杂度位置也无法统一,当前游戏场景内视点位置就处于八叉树中某一层级中的某一个子节点内,而该子节点内同样处于探针网格,具有相应的探针数据,一方面可以将视点位置所对应探针数据的层级关系记录到间接纹理中,另一方面可以将视点位置对应的探针数据记录资源纹理中,间接纹理和资源纹理形成探针数据纹理,进一步将探针数据纹理传输至图形处理器。
91.其中,中央处理器相当于,图形处理器相当于在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上进行绘图运算的微处理器,这里主要用于对探针数据纹理进行渲染,由于探针数据纹理中包括资源纹理和间接纹理,后续图形处理器可以使
用间接纹理获取视点位置映射探针数据的层级关系,并利用该层级关系从资源纹理中采样探针数据以进行光照渲染。
92.104、响应于所述中央处理器调用的渲染指令,所述图形处理器根据游戏场景中物体表面采样点的位置信息,利用所述资源纹理和间接纹理采样游戏场景中物体的光照信息,并对所述物体的光照信息进行渲染。
93.当中央处理器给定渲染指令后,图像处理器可根据渲染状态(例如:材质、纹理、着色器等)和输入的采样点数据进行计算,最终输出像素。具体可以根据游戏中物体表面采样点的位置信息,从间接纹理中获取资源纹理在树形结构中的原始层级关系,该游戏场景中物体表面采样点的位置信息相当于游戏场景输出到屏幕上的采样点位置,并利用资源纹理在树形结构中的原始层级关系从资源纹理中采样游戏场景中物体的光照信息,并对物体的光照信息进行渲染。
94.对于本实施例的执行主体可以为游戏场景中光照信息的渲染装置或设备,主要涉及到场景渲染工具的cpu端与gpu端,针对步骤101至103主要应用于cpu端,具体在游戏场景在布置好后,需要布置光照探针在游戏场景中的位置信息,由于光照探针不能直接挂在到游戏对象上,通常需要依赖游戏场景中指定的空间区域,当向游戏场景中添加光照探针时,可将指定的空间区域距离物体较近的空间体素作为放置光照探针的优选位置,能够采集到更符合游戏场景需求的光照信息,然后根据游戏场景中视点位置更新光照探针,并捕获光照信息,该光照探针的布置过程以及光照信息的捕获过程主要由渲染工具的客户端执行,即可以是cpu端执行,并将光照信息上传至cpu端,将光照信息经过cpu端生成探针数据纹理后传输至gpu端,该过程由cpu端计算好显示内容后提交给gpu端,由gpu端响应于中央处理器调用的渲染指令,并根据游戏场景中物体表面采样点的位置信息,利用资源纹理和间接纹理采样游戏场景中物体的光照信息,并对物体的光照信息进行渲染,进而输出到屏幕上。
95.本技术实施例提供的游戏场景中光照信息的渲染方法,与目前现有方式中使用gpu硬件来快速采样每帧数百万个光照探针捕获的光照信息的方式相比,本技术针对游戏场景中空间体素布置探针网格,能够合理摆放光照探针,有效避免光照探针的浪费,进一步根据游戏场景中视点位置更新探针网格中相应视点位置的光照探针,并捕获视点位置的光照信息,将视点位置的光照信息生成具有相同数据尺寸的多个探针数据纹理后传输至图形处理器,无需逐像素进行光照信息的采样,节省渲染缓冲的存储空间,该探针数据纹理包括资源纹理和间接纹理,由图形处理器响应于中央处理器调用的渲染指令,根据游戏场景中物体表面采样点的位置信息,利用资源纹理和间接纹理采样游戏场景中物体的光照信息,并对物体的光照信息进行渲染,由于间接纹理存储有光照信息在游戏场景中的采样位置信息,通过资源纹理结合间接纹理对同屏像素根据游戏场景中的视点位置采样不同密度的光照信息,能够节省游戏场景中光照信息采样的更新、传输和存储成本,提高光照信息的渲染效率。
96.进一步的,作为上述实施例具体实施方式的细化和扩展,为了完整说明本实施例的具体实施过程,本实施例提供了另一种游戏场景中光照信息的渲染方法,该方法应用于场景渲染工具的cpu端,如图2所示,
97.201、获取游戏场景中空间体素包含的近距离体素。
98.其中,游戏场景中空间体素相当于游戏世界中的立体空间单位,近距离体素为游
戏场景中空间体素分割所形成预设层级的体素中符合距离条件的体素,相当于靠近物体表面的体素,该距离条件作为判定靠近物体表面体素的依据,可以为体素的包围盒与游戏场景中物体包围盒相交,通过在空间体素在分割过程中会形成,会根据距离条件对待分割像素以及已分割像素进行判断,若体素的包围盒与游戏场景中物体包围盒相交,则说明该体素靠近物体表面,即为近距离体素。
99.可以理解的是,上述判定过程可以在对空间体素进行分割前以及分割后执行,并对符合判定条件的体素进行重复分割,若不符合判定条件的体素则不进行分割,首先,针对一个大的体素开始,作为待分割的原始空间体素,接着对其进行均匀分割,分割原则就是如果靠近物体表面,则对其进行细分,对每一个子体素进行重复分割,直至到达指定最小体素大小,也就是预设层级,该过程会产生预设层级的树形结构。
100.具体在获取游戏场景中空间体素包含的近距离体素过程中,由于近距离体素为游戏场景中靠近物体表面的体素,这里可以首先针对游戏场景中待挂接物体覆盖的空间区域,将空间区域内的每个空间体素划分为预设层级的体素,该预设层级为树形结构的限制深度,具体可根据实际应用场景来设置,层级数量越高,分割后所空间体素所包含体素数量越多,然后遍历预设层级内的每个体素,判断分割后体素的包围盒与游戏场景中物体包围盒是否相交,若是,则确定分割后体素为游戏场景中物体表面的近距离体素。
101.202、针对所述空间体素包含的近距离体素布置探针网格。
102.游戏场景中光线可以控制角色的活动,影响玩家心情,也可以影响感知各种事件的方式,游戏引擎作为游戏开发的工具,可以在制作游戏当中就实时观察到的各种效果,包括强度、颜色、阴影等都可以在制作成中灵活调整。通常情况下,针对游戏场景中的动态物体,可以在指定区域设置光照探针的采样点,来收集指定区域的明暗信息,该指定区域可以为游戏场景中待挂接物体覆盖的空间区域,由于游戏场景中光照变化小的地方所产生的光照信息较少,布置过多光照探针会产生浪费,优选位置是在光照变化、阴影处和光照过渡区域设置密集的光照探针。
103.具体在针对空间体素包含的近距离体素布置探针网格的过程中,一方面,针对空间体素中处于层级内的近距离体素,创建有效光照探针,该有效光照探针能够捕获游戏场景中的光照信息,以形成定义在球坐标系上的球谐函数系数,另一方面,为空间体素增设层级对应的虚拟体素,针对虚拟体素中符合添加条件的体素创建虚拟光照探针,该虚拟光照探针用于对所述空间体素中处于层级内近距离体素所采样的光照信息进行无缝插值。
104.由于有效光照探针在探针网格的位置已经固定,针对探针网格中已设置有效光照探针的位置无需设置虚拟光照探针,具体在增设虚拟光照探针过程中,首先针对对空间体素中大于一阶的层级,增设层级对应的虚拟体素,该虚拟体素与空间体素中对应层级的体素相映射,进一步遍历层级对应的虚拟体素,判断空间体素中相映射体素是否存在有效光照探针,若否,则针对虚拟体素创建虚拟光照探针。这里可以针对不同层级的体素以不同颜色显示,并针对不同层级增设虚拟体素和虚拟光照探针,针对创建有效光照探针的近距离体素周围不存在有效光光照探针的地方,补充创建虚拟光照探针。
105.203、根据游戏场景中视点位置,查询所述视点位置映射光照探针的节点层级关系。
106.可以理解的是,空间体素的探针网格所捕获的光照信息包括预先计算的光照数
据,许多预算开销尽在编辑时产生,不会出现在运行时,光照探针会存储穿过场景空间的光照信息,并将其整合到数据探针纹理中,该数据探针纹理相当于动态物体的光照贴图,同样包含场景内投射到物体表面的直接光源,以及不同物体间反射的间接光源,可透过物体材质上的着色器描述物体的表面信息和凹凸信息。
107.这里游戏场景中视点位置即为当前拍摄设备的采样位置,通过针对当前拍摄设备的采样位置来查询光照探针的节点层级关系,使用相应光照探针的节点层级关系来捕获光照信息,无需gpu硬件采样数百万个光照探针,而是实现更有效率的光照信息采样,提高光照信息的渲染效率。
108.204、按照所述视点位置映射光照探针的节点层级关系,更新所述探针网格中相应视点位置的光照探针,并捕获所述视点位置的光照信息。
109.在本技术实施例中,由于探针网格的树形结构中每个探针节点都具有空间范围信息,视点位置映射光照探针的节点层级关系相对容易确定,进而根据视点位置光照探针的节点层级关系,更新探针网格中相应视点位置的光照探针,以捕获视点位置的光照信息。
110.205、利用所述视点位置的光照信息所携带的节点层级关系,提取资源纹理和间接纹理。
111.在本技术实施例中,具体可以利用探针网格中有效光照探针采样游戏场景中的光照数据,并对光照数据进行插值运算,得到游戏场景中视点位置的第一光照信息,利用探针网格中虚拟光照探针对空间体素中处于层级内近距离体素所采样的光照数据进行无缝插值,得到游戏场景中视点位置的第二光照信息,进一步将游戏场景中视点位置的第一光照信息和第二光照信息展开,提取资源纹理和间接纹理。
112.可以理解的是,光照数据依附于光照探针,光照探针属于探针网格中某层级上的节点,所以在展开第一光照信息和第二光照信息的过程中,同样展开了节点的层级信息和光照信息,这里以属性结构中节点的层级信息来逐级展开进行光照信息,针对光照信息可形成资源纹理,针对节点的层级信息可形成间接纹理。
113.206、将所述资源纹理和间接纹理生成具有相同数据尺寸的多个探针数据纹理后传输至图形处理器。
114.应说明的是,树形结构的数据探针纹理结合有效光照探针和虚拟光照探针所捕获的光照信息,并能够能够向gpu传输光照信息以形成文理资源信息。具体可以按照视点位置的光照信息所携带的节点层级关系,将视点位置信息的光照信息展开成资源纹理;进而在展开成资源纹理过程中,将资源纹理在树形结构中的原始层级关系存储至间接纹理。
115.下面以2d四叉树作为具体应用场景进行举例,首先在游戏场景中空间体素内自适应创建有效光照探针,接着在每个体素角落摆放一个有效光照探针,具体可以将每个空间体素分割为4个体素,进一步针对每个体素重复分割,将空间体素形成八叉树结构,形成2*2*2的探针网格,记录接近物体表面的体素,并在这些体素节点上放置有效光照探针,然后在游戏场景中空间体素对应的层级增设虚拟体素和虚拟光照探针,该虚拟体素和虚拟光照探针能够在更大层级和更小层级体素之间采样时实现光照信息的无缝插值,进一步将有效光照探针和虚拟光照探针所捕获的光照信息形成具有相同数据尺寸的多个探针数据纹理,结合图3a和图3b所示,该探针数据纹理包括资源纹理和间接纹理,并在渲染过程中可以逐层级展开,每一层级的资源纹理都有单独编号,通常每一层级的资源纹理都合并了有效光
照探针和虚拟光照探针所捕获的光照信息,对于未合并存储的资源纹理,可以继续合并处理,由于展开后的资源纹理由具有相同分块尺寸布局的多个纹理组成的存储结构,该存储结构可以在渲染过程中实现间接寻址,以使得在完成探针数据纹理的缓存后,可以利用缓存中间接纹理记录的层级关系获取资源纹理在游戏场景中的采样位置,并根据采样位置实现游戏场景中物体的渲染过程。
116.本技术实例通过将树形结构中带有层级关系的空间体素展开为光照探针集合,形成数据探针纹理,并将每个资源纹理在树形结构的层级关系存储在间接映射纹理中,进而在游戏场景渲染过程中,每一帧场景数据根据视点位置更新树形结构中光照探针所捕获的光照信息,并展开到数据探针纹理,展开过程中层级关系记录到间接纹理,然后传输到gpu,采样时根据物体表面采样点的世界位置,先从间接纹理中获得对应树形结构中某一层级关系,最后利用层级关系到资源纹理中采样最终光照探针所形成的光照信息,对其进行渲染。
117.进一步的,本实施例提供了另一种游戏场景中光照信息的渲染方法,如图4所示,该方法应用于场景渲染工具的gpu端,包括如下步骤:
118.301、响应于所述中央处理器调用的渲染指令,接收多个探针数据纹理。
119.其中,探针数据纹理包括资源纹理和间接纹理,该探针数据纹理具有相同数据尺寸的存储结构,能够满足gup端的纹理缓存,并展示资源纹理的均匀布局。
120.由于存储结构中的每一层级的空间都平铺展开后,具备了游戏场景中光照探针采集的光照信息,进一步需要gpu端对游戏场景中光照信息进行采样,而gpu端实施光照信息的采样过程是相对简单和形式固定的操作,这里利用探针数据纹理中的间接纹理来寻址资源纹理,无需一次性传输和采样大量光照探针的光照信息,以实现有限探针数据纹理和固定开销来高效满足整个游戏场景的数据传输和采样。
121.302、根据游戏场景中物体表面采样点的位置信息,从所述间接纹理中获取所述资源纹理在树形结构中的原始层级关系。
122.考虑到探针网格中有效光照探针和虚拟光照探针的分布情况,在从间接纹理中获取所述资源纹理在树形结构中的原始层级关系的过程中,首先根据游戏场景中物体表面采样点的位置信息,提取探针网格中有效光照探针和虚拟光照探针的位置分布,然后按照探针网格中有效光照探针和虚拟光照探针的位置分布,由于间接纹理并不是直接的纹理信息,从间接纹理中获取资源纹理在树形结构中的原始层级关系,在传输纹理资源信息的过程可以无需传输大量纹理信息,以提高后续渲染过程中光照信息的传输效率和采样效率。
123.303、利用所述资源纹理在树形结构中的原始层级关系从所述资源纹理中采样游戏场景中物体的光照信息,并对所述物体的光照信息进行渲染。
124.这里可以通过当前像素在游戏场景中的位置从间接纹理中采样出资源纹理在树形结构中的节点信息,即偏移值,然后通过偏移值能够在资源纹理中获得该像素上的探针球谐函数,进而可以实现球谐函数的投影与重建,以对光照信息进行渲染。
125.在本发明实施例中,具体可以利用资源纹理在树形结构中的原始层级关系,获取资源纹理在树形结构中的级别和偏移量,然后根据资源纹理在树形结构中的级别和偏移量,由于在树形结构中每个层级节点进行展开时是按照设定顺序进行,通常从第一层级节点进行展开,此时偏移量为0,以此类推,计算资源纹理中缓存的光照采样位置,进而按照资源纹理中缓存的光照采样位置采样游戏场景中物体的光照信息,并对物体的光照信息进行
渲染。
126.在具体应用场景中,游戏场景中光照信息渲染过程可以如图5所示,该过程主要涉及cpu端与gpu端之间的数据传递,首先cpu端针对游戏场景中空间体素布置探针网格,能够自适应机制生成均匀不规则的网格探针,该网格探针中包含有效光照探针和虚拟光照探针,这里在网格探针中点标记的位置即为有效光照探针,在网格探针中叉标记的位置即为虚拟光照探针,然后结合光照预计算数据、材质以及光照执行数据运行,生成探针数据纹理,即包含有节点层级关系的间接纹理和包含有光照信息的资源纹理,将探针纹理数据和立方体贴图结合游戏场景的视点位置传输至gpu中的渲染器,由gpu中的渲染器将探针数据纹理存储至缓存中执行延迟渲染,针对gpu端去执行绘制指令去光栅化场景物体的几何阶段,延迟渲染会在这个极端利用mrt多个渲染缓冲去保存几何信息,无需额外操作去采样和缓冲成本来保存光照信息,节省缓存资源的同时减少gpu带宽,然后逐像素采样探针数据纹理,针对特定位置对场景采样,并布置反射探针,进而当有反射效果的物体在探针附近时,会把探针的结果给物体,进一步利用屏幕空间反射,从缓存中获取游戏场景的集合信息,并针对物体在视点位置对应的资源纹理进行采样和计算,以使得在使用直接照明时对游戏场景中物体的光照信息进行渲染。
127.进一步的,作为图1和图2方法的具体实现,本技术实施例提供了一种游戏场景中光照信息的渲染装置,如图6所示,该装置包括:布置单元41、更新单元42、生成单元43、渲染单元44。
128.布置单元41,可以用于针对游戏场景中空间体素布置探针网格,所述探针网格中包括用于捕获游戏场景中光照信息的光照探针;
129.更新单元42,可以用于根据游戏场景中视点位置更新所述探针网格中相应视点位置的光照探针,并捕获所述视点位置的光照信息;
130.生成单元43,可以用于将所述视点位置的光照信息经过中央处理器生成具有相同数据尺寸的多个探针数据纹理后传输至图形处理器,所述探针数据纹理包括资源纹理和间接纹理;
131.渲染单元44,用于响应于所述中央处理器调用的渲染指令,所述图形处理器根据游戏场景中物体表面采样点的位置信息,利用所述资源纹理和间接纹理采样游戏场景中物体的光照信息,并对所述物体的光照信息进行渲染。
132.在具体的应用场景中,如图7所示,所述探针网格中的光照探针具有节点层级关系,所述更新单元42包括:
133.查询模块421,可以用于根据游戏场景中视点位置,查询所述视点位置映射光照探针的节点层级关系;
134.更新模块422,可以用于按照所述视点位置映射光照探针的节点层级关系,更新所述探针网格中相应视点位置的光照探针,并捕获所述视点位置的光照信息。
135.在具体的应用场景中,如图7所示,所述视点位置的光照信息携带有节点层级关系,所述生成单元43包括:
136.提取模块431,可以用于利用所述视点位置的光照信息所携带的节点层级关系,提取资源纹理和间接纹理;
137.生成模块432,可以用于将所述资源纹理和间接纹理生成具有相同数据尺寸的多
个探针数据纹理后传输至图形处理器。
138.在具体的应用场景中,如图7所示,所述提取模块431包括:
139.展开子模块4311,可以用于按照所述视点位置的光照信息所携带的节点层级关系,将所述视点位置信息的光照信息展开成资源纹理;
140.存储子模块4312,可以用于在展开成所述资源纹理过程中,将所述资源纹理在树形结构中的原始层级关系存储至间接纹理。
141.在具体的应用场景中,如图7所示,所述探针网格包括有效光照探针和虚拟光照探针,所述布置单41包括:
142.第一获取模块411,可以用于获取游戏场景中空间体素包含的近距离体素,所述近距离体素为游戏场景中空间体素分割所形成预设层级的体素中符合距离条件的体素,所述距离条件为体素的包围盒与游戏场景中物体包围盒相交;
143.布置模块412,可以用于针对所述空间体素包含的近距离体素布置探针网格。
144.在具体的应用场景中,所述布置模块412,具体可以用于针对所述空间体素中处于层级内的近距离体素,创建有效光照探针;
145.所述布置模块412,具体还可以用于为所述空间体素增设层级对应的虚拟体素,针对所述虚拟体素中符合添加条件的体素创建虚拟光照探针,所述虚拟光照探针用于对所述空间体素中处于层级内近距离体素所采样的光照信息进行无缝插值。
146.在具体的应用场景中,如图7所示,所述渲染单元44包括:
147.第二获取模块441,可以用于根据游戏场景中物体表面采样点的位置信息,从所述间接纹理中获取所述资源纹理在树形结构中的原始层级关系;
148.渲染模块442,可以用于利用所述资源纹理在树形结构中的原始层级关系从所述资源纹理中采样游戏场景中物体的光照信息,并对所述物体的光照信息进行渲染。
149.在具体的应用场景中,如图7所示,所述渲染模块442包括:
150.获取子模块4421,可以用于利用所述资源纹理在树形结构中的原始层级关系,获取资源纹理在树形结构中的级别和偏移量;
151.计算子模块4422,可以用于根据所述资源纹理在树形结构中的级别和偏移量,计算资源纹理中缓存的光照采样位置;
152.渲染子模块4423,可以用于按照所述资源纹理中缓存的光照采样位置采样游戏场景中物体的光照信息,并对所述物体的光照信息进行渲染。
153.本发明实施例提供的游戏场景中光照信息的渲染装置,与目前现有方式中使用gpu硬件来快速采样每帧数百万个光照探针捕获的光照信息的方式相比,本技术针对游戏场景中空间体素布置探针网格,能够合理摆放光照探针,有效避免光照探针的浪费,进一步根据游戏场景中视点位置更新探针网格中相应视点位置的光照探针,并捕获视点位置的光照信息,将视点位置的光照信息生成具有相同数据尺寸的多个探针数据纹理后传输至图形处理器,无需逐像素进行光照信息的采样,节省渲染缓冲的存储空间,该探针数据纹理包括资源纹理和间接纹理,由图形处理器响应于中央处理器调用的渲染指令,根据游戏场景中物体表面采样点的位置信息,利用资源纹理和间接纹理采样游戏场景中物体的光照信息,并对物体的光照信息进行渲染,由于间接纹理存储有光照信息在游戏场景中的采样位置信息,通过资源纹理结合间接纹理对同屏像素根据游戏场景中的视点位置采样不同密度的光
照信息,能够节省游戏场景中光照信息采样的更新、传输和存储成本,提高光照信息的渲染效率。
154.需要说明的是,本实施例提供的一种游戏场景中光照信息的渲染装置所涉及各功能单元的其它相应描述,可以参考图1-图2中的对应描述,在此不再赘述。
155.基于上述如图1、图2、图4所示方法,相应的,本技术实施例还提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述如图1、图2、图4所示的游戏场景中光照信息的渲染方法。
156.基于这样的理解,本技术的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施场景所述的方法。
157.基于上述如图1、图2、图4所示的方法,以及图6-图7所示的虚拟装置实施例,为了实现上述目的,本技术实施例还提供了一种游戏场景中光照信息的渲染的实体设备,具体可以为计算机,智能手机,平板电脑,智能手表,服务器,或者网络设备等,该实体设备包括存储介质和处理器;存储介质,用于存储计算机程序;处理器,用于执行计算机程序以实现上述如图1、图2、图4所示的游戏场景中光照信息的渲染方法。
158.可选的,该实体设备还可以包括用户接口、网络接口、摄像头、射频(radio frequency,rf)电路,传感器、音频电路、wi-fi模块等等。用户接口可以包括显示屏(display)、输入单元比如键盘(keyboard)等,可选用户接口还可以包括usb接口、读卡器接口等。网络接口可选的可以包括标准的有线接口、无线接口(如wi-fi接口)等。
159.在示例性实施例中,参见图8,上述实体设备包括通信总线、处理器、存储器和通信接口,还可以包括、输入输出接口和显示设备,其中,各个功能单元之间可以通过总线完成相互间的通信。该存储器存储有计算机程序,处理器,用于执行存储器上所存放的程序,执行上述实施例中游戏场景中光照信息的渲染方法。
160.本领域技术人员可以理解,本实施例提供的一种游戏场景中光照信息的渲染的实体设备结构并不构成对该实体设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置。
161.存储介质中还可以包括操作系统、网络通信模块。操作系统是管理上述店铺搜索信息处理的实体设备硬件和软件资源的程序,支持信息处理程序以及其它软件和/或程序的运行。网络通信模块用于实现存储介质内部各组件之间的通信,以及与信息处理实体设备中其它硬件和软件之间通信。
162.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本技术可以借助软件加必要的通用硬件平台的方式来实现,也可以通过硬件实现。通过应用本技术的技术方案,与目前现有方式相比,本技术中由图形处理器响应于中央处理器调用的渲染指令,根据游戏场景中物体表面采样点的位置信息,利用资源纹理和间接纹理采样游戏场景中物体的光照信息,并对物体的光照信息进行渲染,由于间接纹理存储有光照信息在游戏场景中的采样位置信息,通过资源纹理结合间接纹理对同屏像素根据游戏场景中的视点位置采样不同密度的光照信息,能够节省游戏场景中光照信息采样的更新、传输和存储成本,提高光照信息的渲染效率。
163.本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本技术所必须的。本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
164.上述本技术序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本技术的几个具体实施场景,但是,本技术并非局限于此,任何本领域的技术人员能思之的变化都应落入本技术的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献