CN113786616B - 一种间接光照实现方法、装置、存储介质及计算设备 - Google Patents
一种间接光照实现方法、装置、存储介质及计算设备 Download PDFInfo
- Publication number
- CN113786616B CN113786616B CN202111161935.4A CN202111161935A CN113786616B CN 113786616 B CN113786616 B CN 113786616B CN 202111161935 A CN202111161935 A CN 202111161935A CN 113786616 B CN113786616 B CN 113786616B
- Authority
- CN
- China
- Prior art keywords
- scene
- data
- sub
- indirect
- illumination
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000005286 illumination Methods 0.000 title claims abstract description 174
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000005070 sampling Methods 0.000 claims abstract description 73
- 230000003068 static effect Effects 0.000 claims abstract description 43
- 238000004364 calculation method Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 9
- 238000013507 mapping Methods 0.000 claims description 9
- 238000002372 labelling Methods 0.000 claims 1
- 230000000875 corresponding effect Effects 0.000 description 22
- 238000009877 rendering Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 2
- 238000010924 continuous production Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/52—Controlling the output signals based on the game progress involving aspects of the displayed game scene
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/66—Methods for processing data by generating or executing the game program for rendering three dimensional images
- A63F2300/6692—Methods for processing data by generating or executing the game program for rendering three dimensional images using special effects, generally involving post-processing, e.g. blooming
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Image Generation (AREA)
Abstract
本发明提供了一种间接光照实现方法、装置、存储介质及计算设备,该方法包括:对游戏场景中的静态场景对象烘焙体积光照贴图;加载游戏场景中子关卡的体积光照贴图数据,合并体积光照贴图数据中高精度数据的覆盖范围得到总覆盖范围,其中,高精度数据为静态物体附近的体积光照贴图数据;按照总覆盖范围创建间接采样贴图,将体积光照贴图数据写入间接采样贴图;依据采样间接采样贴图的返回值采样体积光照贴图数据得到球谐参数,利用球谐参数计算场景对象的间接光照数据。本发明实施例可以降低游戏设备的运行内存要求,并且减少烘焙游戏场景的耗时,加速游戏场景的迭代速度。
Description
技术领域
本发明涉及场景渲染技术领域,特别是一种间接光照实现方法、装置、存储介质及计算设备。
背景技术
间接光照是真实感渲染中不可缺少的一部分,它反映了场景物体反射直接光照对周围场景产生的影响,为阴影中的物体提供了主要的光照细节。一套好的间接光照方案可以有效提升渲染质量。
现有技术中游戏引擎Unreal Engine 4(以下简称UE4)推荐的间接光照方案,静态物体烘焙表面光照贴图,动态物体使用烘焙到场景中的体积光照贴图,体积光照贴图按场景关卡烘焙并整体加载,在移动平台上,体积光照贴图在CPU(Central Processing Unit,中央处理器)中采样插值并以渲染对象为单位传递给像素着色器进行光照计算。现有方案内存消耗过大,表面光照贴图的大小与场景复杂度正相关,场景越复杂度,表面光照贴图的内存消耗就越大,表面光照贴图在场景较复杂时数量过多,整体加载的体积光照贴图也会占用大量内存。而且UE4的体积光照贴图数据加载过程没有考虑过大世界的兼容需求,在大世界场景中会产生一张巨大的3D间接采样贴图。此外,移动平台的体积光照粒度是传统的解决方案,没有考虑到随着硬件发展,在移动平台上体积光照粒度过粗,不能满足真实感光照的需求。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的间接光照实现方法、装置、存储介质及计算设备,能够减少游戏设备的内存消耗,降低游戏设备的运行内存要求,并减少烘焙游戏场景的耗时,加速游戏场景的迭代速度。
根据本发明实施例的一方面,提供了一种间接光照实现方法,包括:
对游戏场景中的静态场景对象烘焙体积光照贴图,其中,所述静态场景对象包含静态场景对象和动态场景对象;
加载游戏场景中子关卡的体积光照贴图数据,合并所述体积光照贴图数据中高精度数据的覆盖范围得到总覆盖范围,其中,所述高精度数据为静态物体附近的体积光照贴图数据;
依据所述总覆盖范围创建间接采样贴图,将所述体积光照贴图数据写入所述间接采样贴图;
依据采样所述间接采样贴图的返回值采样体积光照贴图数据得到球谐参数,利用所述球谐参数计算场景对象的间接光照数据。
根据本发明实施例的另一方面,还提供了一种间接光照实现装置,包括:
烘焙模块,适于对游戏场景中的静态场景对象烘焙体积光照贴图,其中,所述静态场景对象包含静态场景对象和动态场景对象;
加载模块,适于加载游戏场景中子关卡的体积光照贴图数据,合并所述体积光照贴图数据中高精度数据的覆盖范围得到总覆盖范围,其中,所述高精度数据为静态物体附近的体积光照贴图数据;
创建模块,适于依据所述总覆盖范围创建间接采样贴图,将所述体积光照贴图数据写入所述间接采样贴图;
计算模块,适于依据采样所述间接采样贴图的返回值采样体积光照贴图数据得到球谐参数,利用所述球谐参数计算场景对象的间接光照数据。
根据本发明实施例的再一方面,还提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序代码,当所述计算机程序代码在计算设备上运行时,导致所述计算设备执行上文任意实施例的间接光照实现方法。
根据本发明实施例的又一方面,还提供了一种计算设备,包括:处理器;存储有计算机程序代码的存储器;当所述计算机程序代码被所述处理器运行时,导致所述计算设备执行上文任意实施例的间接光照实现方法。
本发明实施例对游戏场景中的静态场景对象烘焙体积光照贴图,在加载游戏场景中子关卡的体积光照贴图数据后,合并体积光照贴图数据中高精度数据的覆盖范围得到总覆盖范围,高精度数据可以是静态物体附近的体积光照贴图数据。本发明实施例对静态物体尽量使用精度较高的体积光照贴图满足间接光照需求,有效地减少了对表面光照贴图的使用,从而减少了烘焙表面光照贴图的时间,加速了游戏场景的迭代速度。本发明实施例依据总覆盖范围创建间接采样贴图,将体积光照贴图数据写入间接采样贴图,依据采样间接采样贴图的返回值采样体积光照贴图数据得到球谐参数,并利用球谐参数计算场景对象的间接光照数据。该实施例的间接采样贴图对应的是高精度数据覆盖范围所表示的空间,因此间接采样贴图只覆盖加载的场景范围内,无需在游戏场景中产生一张巨大的间接采样贴图,从而可以减少游戏设备的内存消耗,降低了游戏设备的运行内存要求。通过在顶点着色器中进行逐顶点的体积光照采样,使得体积光照粒度更为精细,可以有效地提升间接光照的精度,满足真实感光照的需求。本发明实施例的间接光照实现方案能够有效提升游戏场景的渲染真实感,从而有效提升了移动平台中场景对象的渲染质量。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1示出了根据本发明一实施例的间接光照实现方法的流程示意图;
图2示出了现有技术加载关卡时体积光照数据的加载范围示意图;
图3示出了本发明一实施例加载关卡时体积光照数据的加载范围示意图;
图4示出了根据本发明一实施例的间接光照实现装置的结构示意图;
图5示出了根据本发明另一实施例的间接光照实现装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
为解决上述技术问题,本发明实施例提供了一种间接光照实现方法,图1示出了根据本发明一实施例的间接光照实现方法的流程示意图。参见图1,该方法包括步骤S102至步骤S108。
步骤S102,对游戏场景中的静态场景对象烘焙体积光照贴图。
在本发明实施例中,静态场景对象可以包含静态的植被、建筑、高山、地面或其他地形等。
步骤S104,加载游戏场景中子关卡的体积光照贴图数据,合并体积光照贴图数据中高精度数据的覆盖范围得到总覆盖范围,其中,高精度数据为静态物体附近的体积光照贴图数据。
由于体积光照贴图数据是在空间离散的采样点,采样点的密度随场景内容产生变化,通常静态物体附近采样点较密,因此这些采样数据是高精度数据。本发明实施例的静态物体可以包含静态的实物,如植被、建筑等实物。
步骤S106,依据总覆盖范围创建间接采样贴图,将体积光照贴图数据写入间接采样贴图。
步骤S108,依据采样间接采样贴图的返回值采样体积光照贴图数据得到球谐参数,利用球谐参数计算场景对象的间接光照数据。
本发明实施例对于静态物体尽量使用精度较高的体积光照贴图满足间接光照需求,有效地减少了对表面光照贴图的使用,从而减少了烘焙表面光照贴图的时间,加速了游戏场景的迭代速度。该实施例的间接采样贴图对应的是高精度数据覆盖范围所表示的空间,因此间接采样贴图只覆盖加载的场景范围内,无需在游戏场景中产生一张巨大的间接采样贴图,从而可以减少游戏设备的内存消耗,降低了游戏设备的运行内存要求。通过在顶点着色器中进行逐顶点的体积光照采样,使得体积光照粒度更为精细,可以有效地提升间接光照的精度,满足真实感光照的需求。本发明实施例的间接光照实现方案能够有效提升游戏场景的渲染真实感,从而有效提升了移动平台中场景对象的渲染质量。
由于表面光照贴图的大小与场景复杂度正相关,场景越复杂表面光照贴图的内存消耗就越大,本发明实施例为了尽可能取消表面光照贴图的使用,使用精度较高的体积光照贴图满足静态物体需求,可以对必须要表面光照贴图的静态场景对象烘焙表面光照贴图,对不必须要表面光照贴图的静态场景对象烘焙体积光照贴图。
参见上文步骤S102,在本发明一实施例中,可以先对游戏场景中需要表面光照贴图的静态场景对象进行标注,将未标注的场景对象作为用于烘焙体积光照贴图的静态场景对象。由于进行了预先的标注,因此在烘焙游戏场景过程中,可以对标注的静态场景对象烘焙表面光照贴图,对未标注的静态场景对象烘焙体积光照贴图。采用本发明实施例,特别是对于复杂度较高的游戏场景,无需对所有的静态物体使用表面光照贴图,从而可以有效地节约表面光照贴图所占用的内存。
在本发明一实施例中,在执行步骤S104加载游戏场景中子关卡的体积光照贴图数据之前,还可以将积光照贴图数据中的高精度数据和低精度数据分别进行存储。首先,获取不同场景关卡对应的体积光照贴图数据中的高精度数据,并按照场景关卡包含的区域切分高精度数据。然后,将切分后的高精度数据分别保存至对应子关卡中。进而,获取不同场景关卡对应的体积光照贴图数据中的低精度数据,将低精度数据保存至对应的永久关卡中。
通常一个关卡中包含多个区域,本发明实施例可以按照区域切分高精度数据,每个区域可以作为一个子关卡,每个区域的高精度数据可以存储至对应的子关卡中,从而后续可以在加载子关卡的时候,同时对子关卡中的高精度数据进行加载,避免对游戏场景中所有的体积光照贴图进行一次性加载。
在该实施例中,由于体积光照贴图是在空间离散的采样点,而在场景空旷处采样点较稀疏,因此这些采样数据是低精度数据,低精度数据可以包含实物外的场景空间的体积光照贴图数据,如空旷土地的体积光照贴图数据。
本发明实施例中永久关卡实际上属于特殊的子关卡,在执行步骤S104加载游戏场景中子关卡的体积光照贴图数据时,会加载永久关卡及永久关卡中的低精度数据,但是在加载永久关卡及对应的低精度数据后不会立刻创建间接采样贴图。同时,还会加载场景关卡中的子关卡及子关卡中的高精度数据,并将加载的各个子关卡中的高精度数据的覆盖范围进行合并得到总覆盖范围。
本发明实施例在合并得到高精度数据的总覆盖范围后,进而才依据总覆盖范围创建间接采样贴图,以使得间接采样贴图只覆盖加载的场景关卡范围,对于大世界游戏场景,采样本发明实施例创建的间接采样贴图也可以有效地与大世界兼容。
本发明实施例中,高精度数据的覆盖范围可理解为一个包围盒,由于体积光照贴图是在空间离散的采样点,因此,高精度数据的覆盖范围是离散采样点在空间中位置的最大值和最小值之间的数据范围。
在本发明一实施例中,还可以预先将游戏场景的相机位置设置为具有固定覆盖范围的子关卡,通过将相机位置视为一个具有固定覆盖范围的子关卡,可以保证在没有高精度数据的情况下也能有效地生成间接采样贴图。该实施例在加载场景关卡中的子关卡及子关卡中的高精度数据的过程中,以相机位置为起始位置加载预设距离范围内场景关卡中的各个子关卡,并加载相应子关卡中的高精度数据。
本发明实施例通过从相机位置开始加载子关卡,除了可以保证在没有高精度数据的情况下也能生成间接采样贴图,还可以保证游戏场景中近处的子关卡进行有效地加载,既减少了游戏设备的内存压力,也提升了子关卡中场景对象的渲染质量。
本发明实施例在加载场景关卡中的子关卡及对应的高精度数据的过程中,可以采用流式加载方式进行加载。由于相机位置在游戏场景中会变化,因此在以相机位置为起始位置加载预设距离范围内场景关卡中的各个子关卡,并加载相应子关卡中的高精度数据后,若相机位置在游戏场景中产生变化,且已加载的子关卡与相机位置的距离超过预设距离范围,则可以将已加载的子关卡及对应的高精度数据卸载,并且,继续以变化后的相机位置为起始位置加载预设距离范围内场景关卡中的其他子关卡及对应的高精度数据。本发明实施例的流式加载过程中,随着相机位置在游戏场景中的变化,靠近相机预设距离范围内的子关卡会被加载,远离相机预设距离范围外的子关卡会被卸载,且不同子关卡的加载与卸载过程没有时间上的先后顺序。本发明实施例中加载体积光照贴图数据和卸载体积光照贴图数据是一个持续过程,在游戏过程中会持续进行,本发明实施例通过对体积光照贴图数据的流式加载,从而可以避免过多的体积光照贴图数据加载至内存中,有效地避免了体积光照贴图按场景关卡烘焙并整体加载造成的内存压力问题。
在该实施例中,继续以变化后的相机位置为起始位置加载预设距离范围内场景关卡中的其他子关卡及对应的高精度数据之后,还会重新计算已加载的场景关卡中的其他子关卡的高精度数据的覆盖范围,并将重新计算得到的各子关卡的高精度数据的覆盖范围重新合并得到总覆盖范围。进而在后续还会按照重新计算的总覆盖范围重新创建间接采样贴图,并重新计算场景关卡中场景对象的间接光照数据。由于每次加载完成场景关卡以及卸载场景关卡后,加载的高精度数据所覆盖的范围都会有所变化,因此,加载不同场景关卡后对高精度数据的覆盖范围重新计算并对进行相应场景关卡的对象进行光照计算。
为了更加清楚的体现本发明实施例能够有效地减少游戏设备运行时的内存消耗,下面以现有技术方案(图2所示)和本发明实施例方案(图3所示)均加载同一关卡时所加载的体积光照贴图数据为例进行对比说明。图2中黑色线条框中的范围大致对应图3所示范围,表示已加载的同一关卡,图2和图3中的黑色圆点表示已加载的体积光照贴图数据。
通过对比图2和图3可知,针对加载的同一关卡,本发明实施例加载的体积光照数据只存在于已加载关卡的范围内,而现有技术方案加载的体积光照数据覆盖了整个游戏场景。因此,通过两方案对比效果可以看出本发明实施例的方案在加载游戏场景时能够有效减少加载体积光照贴图的数据量。
参见上文步骤S106,依据总覆盖范围创建间接采样贴图,可以使得创建的间接采样贴图对应总覆盖范围所表示的空间,利用间接采样贴图能够将空间内的世界空间坐标与体积光照贴图相对应。另外,由于体积光照贴图数据包含永久关卡中的低精度数据和子关卡中的高精度数据,因此会将低精度数据和高精度数据均写入间接采样贴图。
在本发明一实施例中,在执行上文步骤S108的过程中,可以先在顶点着色器中采样间接采样贴图得到采样后的返回值,然后根据返回值对体积光照贴图数据进行采样得到球谐参数,进而对球谐参数进行插值计算,并将插值后的球谐参数传递至像素着色器,最后在像素着色器中使用插值后的球谐参数计算场景对象的间接光照数据。本发明实施例中,在计算得到间接光照数据之后,可以利用间接光照数据对游戏场景中相应的场景对象进行渲染,从而得到更加真实的间接光照效果。该实施例中,采样间接采样贴图得到采样后的返回值指的是体积光照贴图的采样UV坐标,进而根据UV坐标可以对对体积光照贴图数据进行采样。
现有技术中的体积光照贴图是在CPU(central processing unit,中央处理器)中采样插值并以渲染对象为单位传递给像素着色器进行光照计算,使用的体积光照粒度过粗,不能有效地满足真实感光照的需求,而本发明实施例在顶点着色器中进行逐顶点的体积光照采样,使得体积光照粒度更为精细,可以有效地提升间接光照的精度,可以有效地满足真实感光照的需求。
基于同一发明构思,本发明实施例还提供了一种间接光照实现装置,图4示出了根据本发明一实施例的间接光照实现装置的结构示意图,参见图4,间接光照实现装置包括烘焙模块410、加载模块420、创建模块430和计算模块440。
烘焙模块410,适于对游戏场景中的静态场景对象烘焙体积光照贴图;
加载模块420,适于加载游戏场景中子关卡的体积光照贴图数据,合并体积光照贴图数据中高精度数据的覆盖范围得到总覆盖范围,其中,高精度数据为静态物体附近的体积光照贴图数据;
创建模块430,适于依据总覆盖范围创建间接采样贴图,将体积光照贴图数据写入间接采样贴图;
计算模块440,适于依据采样间接采样贴图的返回值采样体积光照贴图数据得到球谐参数,利用球谐参数计算场景对象的间接光照数据。
在本发明一可选实施例中,烘焙模块410还适于,对游戏场景中需要表面光照贴图的静态场景对象进行标注,标注的静态场景对象用于烘焙表面光照贴图,对未标注的静态场景对象烘焙体积光照贴图。
参见图5,在本发明一可选实施例中,图4所示间接光照实现装置还包括保存模块450,保存模块450适于在加载模块420加载游戏场景中子关卡的体积光照贴图数据之前,获取不同场景关卡对应的体积光照贴图数据中的高精度数据,按照场景关卡包含的区域切分高精度数据,将切分后的高精度数据分别保存至对应子关卡中,获取不同场景关卡对应的体积光照贴图数据中的低精度数据,将低精度数据保存至对应的永久关卡中,其中,低精度数据包含实物外的场景空间的体积光照贴图数据。
在本发明一可选实施例中,加载模块420还适于,加载永久关卡及永久关卡中的低精度数据;加载场景关卡中的子关卡及子关卡中的高精度数据,计算加载的各子关卡的高精度数据的覆盖范围,将各子关卡的高精度数据的覆盖范围进行合并得到总覆盖范围。
在本发明一可选实施例中,加载模块420还适于,以相机位置为起始位置加载预设距离范围内场景关卡中的子关卡,并加载子关卡中的高精度数据;其中,相机位置预先设置为具有固定覆盖范围的子关卡。
具体的,相机位置在游戏场景中变化后,若已加载的子关卡与相机位置的距离超过所述预设距离范围,将已加载的子关卡及对应的高精度数据卸载;继续以变化后的相机位置为起始位置加载预设距离范围内场景关卡中的其他子关卡及对应的高精度数据。
在本发明一可选实施例中,间接光照实现装置还包括重新计算模块440,重新计算模块440适于重新计算已加载的场景关卡中的其他子关卡的高精度数据的覆盖范围;将重新计算得到的各子关卡的高精度数据的覆盖范围重新合并得到总覆盖范围。
在本发明一可选实施例中,计算模块440还适于,在顶点着色器中采样间接采样贴图得到采样后的返回值;根据返回值对体积光照贴图数据进行采样得到球谐参数;对球谐参数进行插值计算,将插值后的球谐参数传递至像素着色器,在像素着色器中使用插值后的球谐参数计算场景对象的间接光照数据。
根据本发明实施例的再一方面,还提供了一种计算机存储介质,计算机存储介质存储有计算机程序代码,当计算机程序代码在计算设备上运行时,导致计算设备执行上文任意实施例的间接光照实现方法。
根据本发明实施例的又一方面,还提供了一种计算设备,包括:处理器;存储有计算机程序代码的存储器;当计算机程序代码被处理器运行时,导致计算设备执行上文任意实施例的间接光照实现方法。
所属领域的技术人员可以清楚地了解到,上述描述的系统、装置、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,为简洁起见,在此不另赘述。
另外,在本发明各个实施例中的各功能单元可以物理上相互独立,也可以两个或两个以上功能单元集成在一起,还可以全部功能单元都集成在一个处理单元中。上述集成的功能单元既可以采用硬件的形式实现,也可以采用软件或者固件的形式实现。
本领域普通技术人员可以理解:所述集成的功能单元如果以软件的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,其包括若干指令,用以使得一台计算设备(例如个人计算机,服务器,或者网络设备等)在运行所述指令时执行本发明各实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM)、随机存取存储器(RAM),磁碟或者光盘等各种可以存储程序代码的介质。
或者,实现前述方法实施例的全部或部分步骤可以通过程序指令相关的硬件(诸如个人计算机,服务器,或者网络设备等的计算设备)来完成,所述程序指令可以存储于一计算机可读取存储介质中,当所述程序指令被计算设备的处理器执行时,所述计算设备执行本发明各实施例所述方法的全部或部分步骤。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:在本发明的精神和原则之内,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案脱离本发明的保护范围。
Claims (11)
1.一种间接光照实现方法,其特征在于,包括:
对游戏场景中不需要表面光照贴图的静态场景对象烘焙体积光照贴图;
加载游戏场景中子关卡的体积光照贴图数据,合并所述体积光照贴图数据中高精度数据的覆盖范围得到总覆盖范围,其中,所述体积光照贴图数据是在空间离散的采样点,所述高精度数据为静态物体附近、采样点密度较密的体积光照贴图数据;
依据所述总覆盖范围创建间接采样贴图,将所述体积光照贴图数据写入所述间接采样贴图;
依据采样所述间接采样贴图的返回值采样体积光照贴图数据得到球谐参数,利用所述球谐参数计算场景对象的间接光照数据。
2.根据权利要求1所述的方法,其特征在于,对游戏场景中的静态场景对象烘焙体积光照贴图,包括:
对游戏场景中需要表面光照贴图的静态场景对象进行标注,标注的静态场景对象用于烘焙表面光照贴图;
对未标注的静态场景对象烘焙体积光照贴图。
3.根据权利要求1所述的方法,其特征在于,加载游戏场景中子关卡的体积光照贴图数据之前,还包括:
获取不同场景关卡对应的体积光照贴图数据中的高精度数据,按照场景关卡包含的区域切分所述高精度数据;
将切分后的高精度数据分别保存至对应子关卡中;
获取不同场景关卡对应的体积光照贴图数据中的低精度数据,将所述低精度数据保存至对应的永久关卡中,其中,所述低精度数据包含实物外的场景空间的体积光照贴图数据。
4.根据权利要求3所述的方法,其特征在于,加载游戏场景中子关卡的体积光照贴图数据,合并所述体积光照贴图数据中高精度数据的覆盖范围得到总覆盖范围,包括:
加载所述永久关卡及所述永久关卡中的低精度数据;
加载场景关卡中的子关卡及所述子关卡中的高精度数据,计算加载的各子关卡的高精度数据的覆盖范围,将各子关卡的高精度数据的覆盖范围进行合并得到总覆盖范围。
5.根据权利要求4所述的方法,其特征在于,加载场景关卡中的子关卡及所述子关卡中的高精度数据,包括:
以相机位置为起始位置加载预设距离范围内场景关卡中的子关卡,并加载所述子关卡中的高精度数据;
其中,所述相机位置预先设置为具有固定覆盖范围的子关卡。
6.根据权利要求5所述的方法,其特征在于,以相机位置为起始位置加载场景关卡中的子关卡,并加载所述子关卡中的高精度数据之后,还包括:
相机位置在游戏场景中变化后,若已加载的子关卡与所述相机位置的距离超过所述预设距离范围,将已加载的子关卡及对应的高精度数据卸载;
继续以变化后的相机位置为起始位置加载预设距离范围内场景关卡中的其他子关卡及对应的高精度数据。
7.根据权利要求6所述的方法,其特征在于,继续以变化后的相机位置为起始位置加载预设距离范围内场景关卡中的其他子关卡及对应的高精度数据之后,还包括:
重新计算已加载的场景关卡中的其他子关卡的高精度数据的覆盖范围;
将重新计算得到的各子关卡的高精度数据的覆盖范围重新合并得到总覆盖范围。
8.根据权利要求1-7任一项所述的方法,其特征在于,依据采样所述间接采样贴图的返回值采样体积光照贴图数据得到球谐参数,利用所述球谐参数计算场景对象的间接光照数据,包括:
在顶点着色器中采样间接采样贴图得到采样后的返回值;
根据所述返回值对所述体积光照贴图数据进行采样得到球谐参数;
对所述球谐参数进行插值计算,将插值后的球谐参数传递至像素着色器,在所述像素着色器中使用插值后的球谐参数计算场景对象的间接光照数据。
9.一种间接光照实现装置,其特征在于,包括:
烘焙模块,适于对游戏场景中不需要表面光照贴图的静态场景对象烘焙体积光照贴图;
加载模块,适于加载游戏场景中子关卡的体积光照贴图数据,合并所述体积光照贴图数据中高精度数据的覆盖范围得到总覆盖范围,其中,所述体积光照贴图数据是在空间离散的采样点,所述高精度数据为静态物体附近、采样点密度较密的体积光照贴图数据;
创建模块,适于依据所述总覆盖范围创建间接采样贴图,将所述体积光照贴图数据写入所述间接采样贴图;
计算模块,适于依据采样所述间接采样贴图的返回值采样体积光照贴图数据得到球谐参数,利用所述球谐参数计算场景对象的间接光照数据。
10.一种计算机存储介质,所述计算机存储介质存储有计算机程序代码,当所述计算机程序代码在计算设备上运行时,导致所述计算设备执行权利要求1-8中任一项所述的间接光照实现方法。
11.一种计算设备,包括:处理器;存储有计算机程序代码的存储器;当所述计算机程序代码被所述处理器运行时,导致所述计算设备执行权利要求1-8中任一项所述的间接光照实现方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111161935.4A CN113786616B (zh) | 2021-09-30 | 2021-09-30 | 一种间接光照实现方法、装置、存储介质及计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111161935.4A CN113786616B (zh) | 2021-09-30 | 2021-09-30 | 一种间接光照实现方法、装置、存储介质及计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113786616A CN113786616A (zh) | 2021-12-14 |
CN113786616B true CN113786616B (zh) | 2024-04-12 |
Family
ID=78877738
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111161935.4A Active CN113786616B (zh) | 2021-09-30 | 2021-09-30 | 一种间接光照实现方法、装置、存储介质及计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113786616B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116310061B (zh) * | 2023-05-18 | 2023-08-08 | 腾讯科技(深圳)有限公司 | 一种数据的处理方法、装置以及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2219097A1 (en) * | 2009-02-13 | 2010-08-18 | Ecole Polytechnique Federale De Lausanne (Epfl) | Man-machine interface method executed by an interactive device |
CN108114470A (zh) * | 2017-12-11 | 2018-06-05 | 苏州蜗牛数字科技股份有限公司 | 一种在vr游戏中用同一静态光表现昼夜变化的方法 |
CN108304229A (zh) * | 2018-01-30 | 2018-07-20 | 北京市安全生产科学技术研究院 | 一种安全生产vr实训关卡模型动态加载生成方法和系统 |
CN111738299A (zh) * | 2020-05-27 | 2020-10-02 | 完美世界(北京)软件科技发展有限公司 | 场景静态物体合并方法、装置、存储介质及计算设备 |
CN112473135A (zh) * | 2020-11-06 | 2021-03-12 | 完美世界(北京)软件科技发展有限公司 | 移动游戏的实时光照模拟方法、装置、设备及存储介质 |
CN112927341A (zh) * | 2021-04-02 | 2021-06-08 | 腾讯科技(深圳)有限公司 | 光照渲染方法、装置、计算机设备和存储介质 |
-
2021
- 2021-09-30 CN CN202111161935.4A patent/CN113786616B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2219097A1 (en) * | 2009-02-13 | 2010-08-18 | Ecole Polytechnique Federale De Lausanne (Epfl) | Man-machine interface method executed by an interactive device |
CN108114470A (zh) * | 2017-12-11 | 2018-06-05 | 苏州蜗牛数字科技股份有限公司 | 一种在vr游戏中用同一静态光表现昼夜变化的方法 |
CN108304229A (zh) * | 2018-01-30 | 2018-07-20 | 北京市安全生产科学技术研究院 | 一种安全生产vr实训关卡模型动态加载生成方法和系统 |
CN111738299A (zh) * | 2020-05-27 | 2020-10-02 | 完美世界(北京)软件科技发展有限公司 | 场景静态物体合并方法、装置、存储介质及计算设备 |
CN112473135A (zh) * | 2020-11-06 | 2021-03-12 | 完美世界(北京)软件科技发展有限公司 | 移动游戏的实时光照模拟方法、装置、设备及存储介质 |
CN112927341A (zh) * | 2021-04-02 | 2021-06-08 | 腾讯科技(深圳)有限公司 | 光照渲染方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113786616A (zh) | 2021-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9704055B2 (en) | Occlusion render mechanism for point clouds | |
CN110990516B (zh) | 地图数据的处理方法、装置和服务器 | |
US10311548B2 (en) | Scaling render targets to a higher rendering resolution to display higher quality video frames | |
Kähler et al. | Hierarchical voxel block hashing for efficient integration of depth images | |
US8570322B2 (en) | Method, system, and computer program product for efficient ray tracing of micropolygon geometry | |
US7684641B1 (en) | Inside testing for paths using a derivative mask | |
US9811940B2 (en) | Bandwidth reduction using vertex shader | |
CN111275633A (zh) | 基于图像分割的点云去噪方法、系统、装置和存储介质 | |
CN111882631B (zh) | 一种模型渲染方法、装置、设备及存储介质 | |
CN109976827B (zh) | 模型的加载方法、服务器及终端 | |
US10417789B2 (en) | Motion blur using cached texture space blur | |
CN109377552B (zh) | 图像遮挡计算方法、装置、计算设备及存储介质 | |
CN116030180B (zh) | 辐照度缓存光照计算方法及装置、存储介质、计算机设备 | |
US8872824B1 (en) | System, method, and computer program product for performing shadowing utilizing shadow maps and ray tracing | |
CN113786616B (zh) | 一种间接光照实现方法、装置、存储介质及计算设备 | |
CN111870953A (zh) | 一种高度图生成方法、装置、设备及存储介质 | |
CN110782391B (zh) | 驾驶仿真场景中的图像处理方法、装置及存储介质 | |
WO2022193941A1 (zh) | 图像渲染方法、装置、设备、介质和计算机程序产品 | |
CN112843700B (zh) | 地形图像的生成方法、装置、计算机设备和存储介质 | |
US20090009526A1 (en) | Method and system for rendering a shape | |
US20180276878A1 (en) | System and method for rendering shadows for a virtual environment | |
CN112907741B (zh) | 地形场景生成方法、装置、电子设备及存储介质 | |
CN115100347A (zh) | 阴影绘制方法、装置、设备和存储介质 | |
CN112419459A (zh) | 烘焙模型ao贴图的方法、装置、计算机设备和存储介质 | |
CN111729303B (zh) | 一种大地图烘焙切割方法及恢复方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |