CN117011119A - 光照信息加载方法、装置、计算机设备和存储介质 - Google Patents
光照信息加载方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN117011119A CN117011119A CN202210645771.0A CN202210645771A CN117011119A CN 117011119 A CN117011119 A CN 117011119A CN 202210645771 A CN202210645771 A CN 202210645771A CN 117011119 A CN117011119 A CN 117011119A
- Authority
- CN
- China
- Prior art keywords
- information storage
- illumination information
- storage block
- block
- 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.)
- Pending
Links
- 238000005286 illumination Methods 0.000 title claims abstract description 1134
- 238000003860 storage Methods 0.000 title claims abstract description 869
- 238000011068 loading method Methods 0.000 title claims abstract description 85
- 238000000034 method Methods 0.000 claims abstract description 43
- 238000004364 calculation method Methods 0.000 claims abstract description 28
- 239000000523 sample Substances 0.000 claims description 43
- 238000004590 computer program Methods 0.000 claims description 26
- 238000012545 processing Methods 0.000 claims description 24
- 230000008569 process Effects 0.000 claims description 11
- 238000001914 filtration Methods 0.000 claims description 9
- 238000009826 distribution Methods 0.000 claims description 7
- 230000000875 corresponding effect Effects 0.000 description 86
- 230000000694 effects Effects 0.000 description 38
- 238000005070 sampling Methods 0.000 description 21
- 238000009877 rendering Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 4
- 238000004088 simulation Methods 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000013507 mapping 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
- 238000012546 transfer Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
- 238000004260 weight control Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/506—Illumination models
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Computing Systems (AREA)
- Geometry (AREA)
- Image Generation (AREA)
Abstract
本申请涉及一种光照信息加载方法、装置、计算机设备和存储介质。涉及到游戏领域,包括:确定至少一个候选光照信息存储块;所述候选光照信息存储块是与待渲染的目标图像相关联的光照信息存储块;确定所述至少一个候选光照信息存储块分别对应的存储块权重;根据所述存储块权重,从所述至少一个候选光照信息存储块中确定待加载的光照信息存储块,并对待加载的光照信息存储块进行加载;其中,加载后的光照信息存储块用于进行光照计算以渲染得到所述目标图像。采用本方法能够节省存储资源。
Description
技术领域
本申请涉及光照渲染技术领域,特别是涉及一种光照信息加载方法、装置、计算机设备和存储介质。
背景技术
随着计算机技术和游戏行业的发展,出现了光照渲染技术,利用光照渲染技术可以渲染出具有真实光照效果的画面,例如,对于游戏场景中的画面,很多画面是具有光照的,可以利用光照渲染技术渲染出游戏场景中的具有光照效果的画面。
传统技术中,在进行光照渲染时,会将预先存储的光照信息统一都加载到GPU中,这样统一加载全部存储的光照信息会消耗较多的存储空间,然而实际上进行光照渲染时通常并不需要利用全部的光照信息,因而加载了多余的光照信息,从而导致了存储资源的浪费。
发明内容
基于此,有必要针对上述技术问题,提供一种能够节省存储资源的光照信息加载方法、装置、计算机设备和计算机可读存储介质。
一方面,本申请提供了一种光照信息加载方法。所述方法包括:确定至少一个候选光照信息存储块;所述候选光照信息存储块是与待渲染的目标图像相关联的光照信息存储块;确定所述至少一个候选光照信息存储块分别对应的存储块权重;根据所述存储块权重,从所述至少一个候选光照信息存储块中确定待加载的光照信息存储块,并对待加载的光照信息存储块进行加载;其中,加载后的光照信息存储块用于进行光照计算以渲染得到所述目标图像。
另一方面,本申请还提供了一种光照信息加载装置。所述装置包括:存储块确定模块,用于确定至少一个候选光照信息存储块;所述候选光照信息存储块是与待渲染的目标图像相关联的光照信息存储块;权重确定模块,用于确定所述至少一个候选光照信息存储块分别对应的存储块权重;加载模块,用于根据所述存储块权重,从所述至少一个候选光照信息存储块中确定待加载的光照信息存储块,并对待加载的光照信息存储块进行加载;其中,加载后的光照信息存储块用于进行光照计算以渲染得到所述目标图像。
在一些实施例中,所述存储块确定模块,还用于从多个预设光照信息存储块中,确定所述目标图像的关联光照信息存储块;根据所述关联光照信息存储块,确定所述候选光照信息存储块。
在一些实施例中,所述存储块确定模块,还用于从多个预设光照信息存储块中,确定与所述目标图像中多个像素点分别邻近的第一光照信息存储块;基于所述第一光照信息存储块进行去重处理,得到所述目标图像的关联光照信息存储块。
在一些实施例中,所述存储块确定模块,还用于获取多个索引数据点分别对应的块索引;所述块索引与预设光照信息存储块一一对应;对于所述多个像素点中的像素点,从所述多个索引数据点分别对应的块索引中,选取与所述像素点邻近的索引数据点对应的块索引,得到所述像素点对应的目标块索引;将所述目标块索引对应的预设光照信息存储块,确定为所述像素点邻近的第一光照信息存储块。
在一些实施例中,所述存储块确定模块,还用于从多个预设光照信息存储块中,选取与所述目标图像中的关键对象邻近的第二光照信息存储块;基于所述第一光照信息存储块和所述第二光照信息存储块进行去重处理,得到所述目标图像的关联光照信息存储块。
在一些实施例中,所述存储块确定模块,还用于确定所述目标图像中的关键对象的关键对象区域;所述关键对象区域为所述目标图像中的关键对象所在的区域;从多个预设光照信息存储块中,确定与所述关键对象区域相交的预设光照信息存储块,得到所述第二光照信息存储块。
在一些实施例中,所述关联光照信息存储块包括多个光照信息存储单元;所述存储块确定模块,还用于确定所述关联光照信息存储块的块精度;所述块精度与所述多个光照信息存储单元的分布密集程度相关;根据所述块精度对各所述关联光照信息存储块进行过滤,得到所述候选光照信息存储块;所述候选光照信息存储块是过滤后剩余的关联光照信息存储块。
在一些实施例中,所述至少一个候选光照信息存储块包括与所述目标图像中至少一个像素点相邻近的第一候选光照信息存储块;所述权重确定模块,还用于确定所述第一候选光照信息存储块在对应的每个邻近像素点处的像素块权重;对各个所述像素块权重进行统计,得到所述第一候选光照信息存储块的存储块权重。
在一些实施例中,所述第一候选光照信息存储块与关键对象区域邻近;所述关键对象区域为所述目标图像中的关键对象所在的区域;所述权重确定模块,还用于对各个所述像素块权重进行统计,得到所述第一候选光照信息存储块的第一块权重;基于所述第一候选光照信息存储块的深度值,确定所述第一候选光照信息存储块的第二块权重;基于所述第一候选光照信息存储块的第一块权重以及第二块权重,得到所述第一候选光照信息存储块的存储块权重。
在一些实施例中,所述目标图像为目标视频帧,所述权重确定模块,还用于基于所述目标视频帧的前向视频帧,确定每个所述邻近像素点的深度值;基于每个所述邻近像素点的深度值,确定所述第一候选光照信息存储块在每个所述邻近像素点处的像素块权重。
在一些实施例中,所述至少一个候选光照信息存储块包括第二候选光照信息存储块,所述第二候选光照信息存储块的块区域与关键对象区域相邻近;所述关键对象区域为所述目标图像中的关键对象所在的区域;所述权重确定模块,还用于获取所述第二候选光照信息存储块的阴影因子;所述阴影因子是根据所述第二候选光照信息存储块的块区域中的阴影区域的占比确定的;根据所述阴影因子确定所述第二候选光照信息存储块的存储块权重。
在一些实施例中,所述光照信息存储块为体积光照贴图块,所述体积光照贴图块包括多个光照探针;所述光照信息加载装置,还用于从多个已加载的体积光照贴图块中,确定所述目标图像中每个像素点分别邻近的已加载的体积光照贴图块;所述多个已加载的体积光照贴图块包括所述加载后的光照信息存储块;从每个像素点分别对应的已加载的体积光照贴图块中,确定与每个像素点分别邻近的光照探针;利用每个像素点分别邻近的光照探针确定每个像素点的光照信息,并基于每个像素点的光照信息进行光照计算以渲染得到所述目标图像。
另一方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述光照信息加载方法中的步骤。
另一方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述光照信息加载方法中的步骤。
另一方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述光照信息加载方法中的步骤。
上述光照信息加载方法、装置、计算机设备、存储介质和计算机程序产品,确定至少一个候选光照信息存储块,候选光照信息存储块是与待渲染的目标图像相关联的光照信息存储块,确定至少一个候选光照信息存储块分别对应的存储块权重,根据存储块权重,从至少一个候选光照信息存储块中确定待加载的光照信息存储块,并对待加载的光照信息存储块进行加载,其中,加载后的光照信息存储块用于进行光照计算以渲染得到目标图像。由于待加载的光照信息存储块是根据存储块权重筛选出的,从而可以将对光照计算影响大的光照信息存储块进行加载,在保证渲染效果的情况下尽可能减少加载的光照信息存储块的数量,节省了存储资源。
附图说明
图1为一些实施例中光照信息加载方法的应用环境图;
图2为一些实施例中光照信息加载方法的流程示意图;
图3为一些实施例中体积光照贴图块的示意图;
图4为一些实施例中光照信息加载方法的流程示意图;
图5为一些实施例中计算块索引以及权重的原理图;
图6为一些实施例中加载光照信息的原理图;
图7为一些实施例中渲染出的图像的效果图;
图8为一些实施例中渲染出的图像的效果图;
图9为一些实施例中渲染出的图像的效果图;
图10为一些实施例中渲染出的图像的效果图;
图11为一些实施例中光照信息加载装置的结构框图;
图12为一些实施例中计算机设备的内部结构图;
图13为一些实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的光照信息加载方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他服务器上。
具体地,终端102在确定了待渲染的目标图像的情况下,待渲染的目标图像可以是用于呈现虚拟场景中的画面的图像,例如可以是呈现游戏中的画面的图像,终端102可以确定至少一个候选光照信息存储块,候选光照信息存储块是与待渲染的目标图像相关联的光照信息存储块,确定至少一个候选光照信息存储块分别对应的存储块权重,根据存储块权重,从至少一个候选光照信息存储块中确定待加载的光照信息存储块,并对待加载的光照信息存储块进行加载,终端102可以利用加载后的光照信息存储块进行光照计算以渲染得到目标图像。终端102可以将渲染出的目标图像发送至服务器104,服务器104可以存储目标图像或将目标图像发送至其他设备,终端102还可以在渲染出目标图像后展示目标图像。
其中,终端102可以但不限于是各种台式计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一些实施例中,如图2所示,提供了一种光照信息加载方法,该方法可以由终端或服务器执行,还可以由终端和服务器共同执行,以该方法应用于图1中的终端102为例进行说明,包括以下步骤:
步骤202,确定至少一个候选光照信息存储块;候选光照信息存储块是与待渲染的目标图像相关联的光照信息存储块。
其中,目标图像为待渲染的图像,目标图像中呈现的是虚拟场景中的画面,虚拟场景是指虚构的场景,包括但不限于是虚拟的动漫场景或虚拟的游戏场景,目标图像包括但不限于是待渲染的游戏中的视频帧或动漫中的视频帧。虚拟场景位于三维世界空间中,即虚拟场景中的事物分布在三维世界空间中,虚拟场景位于三维世界空间也可以称为场景空间。
光照信息存储块用于存储光照信息。光照信息存储块包括多个光照信息存储单元,多个是指至少两个,例如为64个。光照信息存储块是多个光照信息存储单元的集合,光照信息存储单元用于存储光照信息。光照信息存储块位于三维世界空间中,光照信息存储块中的每个光照信息存储单元位于三维世界空间中。光照信息存储块中的各光照信息存储单元可以是均匀分布在三维世界空间中的,可以是非均匀分布的,例如,三维世界空间采用三维坐标系(XYZ坐标系)表示,光照信息存储块中各光照信息存储单元按照固定间隔在X轴方向、Y轴方向以及Z轴方向排列为块状结构,其中,固定间隔可以根据需要设置,例如固定间隔为16米。
光照信息可以包括一个或多个球谐(Sphere Harmonic,SH)系数,多个是指至少两个,每个光照信息存储块可以理解为一个光源,光照信息存储块中所存储的光照信息用于代表光源的信息,任意的光源均可以采用球谐函数来表示,球谐函数为一个或多个基函数的线性组合即加权形式,球谐函数中每个基函数分别具有对应的权重,球谐系数为球谐函数中的基函数的权重,例如,若光源采用3阶球谐函数表示,由于3阶球谐函数具有((1+3+5)×3=27)27个球谐系数,故光照信息可以包括27个球谐系数。光照信息也可以称为光照数据。
三维世界空间中可以预先生成了多个光照信息存储块,每个光照信息存储块具有块精度,块精度表征光照信息存储块中的光照信息存储单元的密集程度,块精度越大,则表征光照信息存储块中的光照信息存储单元越密集,块精度越小,则表征光照信息存储块中的光照信息存储单元越稀疏。每个光照信息存储块中包括的光照信息存储单元的数量可以是相同也可以是不同的,例如,每个光照信息存储块中均包括64个光照信息存储单元。不同的光照信息存储块的块精度可以相同也可以不相同,光照信息存储块在三维世界空间中所占的空间区域之间可以是具有重叠区域或无重叠区域的,例如,块精度相同的光照信息存储块在三维世界空间中所占的空间区域之间无重叠区域,块精度较低的光照信息存储块在三维世界空间中所占的空间区域中可以包括块精度较高的光照信息存储块。块精度可以采用相邻光照信息存储单元之间的距离表示。
块精度包括但不限于是最高精度级别、中精度级别或最低精度级别中的至少一种,最高精度级别的光照信息存储块是指:在物体周围,按照最小间距摆放采样点的光照信息存储块。最低精度级别的光照信息存储块是指:在场景空间(即虚拟场景所在的三维世界空间),远离物体的,按照最大间距摆放采样点的光照信息存储块。中精度级别的光照信息存储块是指按照中间间距摆放采样点的光照信息存储块,中间间距大于最小间距,且中间间距小于最大间距。
三维世界空间中预先生成的各光照信息存储块中,与待渲染的目标图像相关联的光照信息存储块可以为一个或多个,多个是指至少两个。与待渲染的目标图像相关联的光照信息存储块包括但不限于是:与目标图像中的像素点在三维世界空间中的位置邻近的光照信息存储块、或与目标图像中的关键对象在三维世界空间中的位置邻近的光照信息存储块中的至少一个。目标图像中的关键对象可以是有生命的对象或无生命的对象,关键对象包括但不限于是目标图像中的主要的虚拟角色或主要的虚拟物体中的至少一个,主要的半透明物体。候选光照信息存储块属于与待渲染的目标图像相关联的光照信息存储块。
具体地,三维世界空间中预先生成了多个光照信息存储块,预先生成的光照信息存储块可以称为预设光照信息存储块,为了渲染得到目标图像,终端可以从世界空间中的预设光照信息存储块中,确定与目标图像相关联的光照信息存储块,例如可以通过目标图像的像素点或关键对象确定与目标图像相关联的光照信息存储块,终端可以从与目标图像相关联的光照信息存储块中确定一个或多个候选光照信息存储块,多个是指至少两个。其中,可以根据虚拟场景中对象的位置,生成不同块精度的光照信息存储块,例如,在确定了光照信息存储块所占的空间区域的情况下,若该空间区域内部或周围的对象较多,则在该空间区域生成块精度较高的光照信息存储块,若该空间区域内部以及周围的对象较少,则在该空间区域生成块精度较低的光照信息存储块。
在一些实施例中,将与目标图像相关联的光照信息存储块称为关联光照信息存储块,关联光照信息存储块为至少一个,终端可以将全部的关联光照信息存储块均确定为候选光照信息存储块,或者,从关联光照信息存储块中筛选得到候选光照信息存储块,例如,终端可以基于块精度,从各关联光照信息存储块中筛选得到各候选光照信息存储块。一般情况,因为最低精度级别的光照信息存储块的数据量很小,所以可以永久加载全部的最低精度级别的光照信息存储块,从而在动态加载光照信息存储块的过程中,无需再重复的加载最低精度级别的光照信息存储块,则终端可以从各关联光照信息存储块中,选取块精度高于最低精度级别的关联光照信息存储块,得到各候选光照信息存储块,即可以从各关联光照信息存储块中,将最低精度级别的关联光照信息存储块过滤掉,将剩余的关联光照信息存储块确定为各候选光照信息存储块。
在一些实施例中,光照信息存储块为体积光照贴图块(Brick),体积光照贴图块中包括多个光照探针(Light Probe),光照信息存储块中的光照信息存储单元为光照探针。光照探针用于存储虚拟场景中的光照的烘焙信息,光照探针预先放置在虚拟场景中,光照探针的形状可以是球体或多边形体等中的至少一种,例如为球体。由于光照探针中存储的光照信息是对三维世界空间中的光照信息进行采集所得到的,故光照探针还可以称为采样点。体积光照贴图块可以理解为是三维世界空间中间隔相等的一组相邻采样点集合,即多个采样点组成的集合。例如,体积光照贴图块为4×4×4的一组间距16米的采样点集合,4×4×4的采样点集合是指:X轴方向、Y轴方向以及Z轴方向分别排列有4个采样点、间距16米、总共64个采样点的集合。其中,间距是指相邻采样点之间的距离,也可以称为相邻采样点间距。
如图3所示,展示了1个间距为16米的体积光照贴图块、1个间距为4米的体积光照贴图块和8个间距为1米的体积光照贴图块,间距为16米的体积光照贴图块所占的空间区域中包括该间距为4米的体积光照贴图块,间距为4米的体积光照贴图块所占的空间区域中包括该8个间距为1米的体积光照贴图块。其中,间距为16米的体积光照贴图块的块精度为最低精度级别,间距为4米的体积光照贴图块的块精度为中精度级别,间距为1米的体积光照贴图块的块精度为最高精度级别。
在一些实施例中,体积光照贴图块存储在虚拟体积光照贴图中,虚拟体积光照贴图是预先生成的,可以是通过烘焙得到的烘焙数据,存储有多个体积光照贴图块。虚拟体积光照贴图为一个3D(3维)的贴图。虚拟体积光照贴图可以是存储在硬盘中的,虚拟体积光照贴图中以体积光照贴图块为单位,存储虚拟场景中的各体积光照贴图块。候选光照信息存储块可以是从虚拟体积光照贴图中选取的体积光照贴图块。虚拟体积光照贴图的大小根据所包括的体积光照贴图块确定,例如,存储图3中的10个体积光照贴图块的虚拟体积光照贴图为的大小为40×4×4的3D贴图,3D贴图可以理解为三维数组,40×4×4由10个4×4×4构成,10个4×4×4沿着X轴排列得到40×4×4大小的三维数组,40×4×4中的每个4×4×4分别为一个体积光照贴图块。
在一些实施例中,每个光照信息存储块可以理解为一个光源,光照信息存储块中所存储的光照信息用于代表光源的信息。任意的光源均可以采用球谐函数来表示,球谐函数为一个或多个基函数的线性组合即加权形式,球谐函数中每个基函数分别具有对应的权重,球谐系数即为球谐函数中的基函数的权重。故当光源采用球谐函数表示时,光照信息可以包括球谐系数,例如光照信息可以包括3阶球谐函数的各个球谐系数,由于3阶球谐系数为27个球谐系数,故光照信息可以包括27个球谐系数。光照信息也可以称为光照数据。体积光照贴图块的光照探针中存储的是球谐系数,由于一张体积光照贴图中只能存储4个球谐系数,例如用RGBA四个通道分别存储一个球谐系数,故当光照信息包括的球谐系数超过4个时,可以利用两张及以上的体积光照贴图存储光照信息,以光照信息包括27个球谐系数为例,则可以利用7张3D体积光照贴图存储球谐系数,贴图中RGBA每个通道存储一个球谐系数。
步骤204,确定至少一个候选光照信息存储块分别对应的存储块权重。
其中,每个候选光照信息存储块分别对应有存储块权重。存储块权重用于表征候选光照信息存储块对目标图像的光照效果的影响,存储块权重越大,则候选光照信息存储块对目标图像的光照效果影响越大。利用存储块权重较大的候选光照信息存储块进行光照渲染可以提高渲染出的目标图像中的光照效果,使得目标图像中的光照效果更加真实。
具体地,对于每个候选光照信息存储块,终端可以基于与候选光照信息存储块邻近的像素点的深度值、候选光照信息存储块的深度值中的至少一个,确定候选光照信息存储块对应的存储块权重。例如,存储块权重与邻近的像素点的深度值成负相关关系,存储块权重与候选光照信息存储块的深度值成负相关关系。深度值是指像素点在三维世界空间中距相机的距离,深度值越大,则表示像素点距离相机越远。负相关关系指的是:在其他条件不变的情况下,两个变量变动方向相反,一个变量由大到小变化时,另一个变量由小到大变化。
在一些实施例中,与候选光照信息存储块邻近的像素点可以称为候选光照信息存储块的邻近像素点。候选光照信息存储块可以具有至少一个的邻近像素点。像素点与候选光照信息存储块邻近的情况下,则可以称候选光照信息存储块与像素点邻近,故候选光照信息存储块的邻近像素点,可以根据与像素点邻近的候选光照信息存储块确定,例如,像素点A以及像素点B与候选光照信息存储块1邻近,则候选光照信息存储块1的各邻近像素点包括像素点A以及像素点B。
步骤206,根据存储块权重,从至少一个候选光照信息存储块中确定待加载的光照信息存储块,并对待加载的光照信息存储块进行加载;其中,加载后的光照信息存储块用于进行光照计算以渲染得到目标图像。
其中,待加载的光照信息存储块来自于该至少一个候选光照信息存储块。随着光照信息存储块的加载,待加载的光照信息存储块不断变化,待加载的光照信息存储块并不一定会加载成功。加载后的光照信息存储块是指该至少一个候选光照信息存储块中成功加载的光照信息存储块。
具体地,终端可以按照存储块权重从大到小的顺序,依次从该至少一个候选光照信息存储块中确定待加载的光照信息存储块,对待加载的光照信息存储块进行加载,即优先加载存储块权重较大的光照信息存储块。例如,可以按照存储块权重,对候选光照信息存储块的标识进行排列,得到标识序列,将标识序列的首个标识代表的候选光照信息存储块确定为待加载的光照信息存储块,在待加载的光照信息存储块加载后,将标识序列的下一个标识代表的候选光照信息存储块确定为待加载的光照信息存储块,循环多次,直到将各候选光照信息存储块加载完毕为止。当候选光照信息存储块为来自于虚拟体积光照贴图的体积光照贴图块时,候选光照信息存储块的标识为块索引,块索引是指体积光照贴图块在虚拟体积光照贴图中的位置。
在一些实施例中,终端可以按照存储块权重从大到小的顺序,依次从该至少一个候选光照信息存储块中确定待加载的光照信息存储块,在存在空闲的块存储空间的情况下,对待加载的光照信息存储块进行加载,直至不存在空闲的块存储空间时停止加载。其中,GPU(graphics processing unit,图形处理器)内存中用于存储光照信息存储块的存储空间的总容量可以是固定的,空闲的块存储空间的容量为该固定的存储资源的容量减去已占用的块存储空间的容量所得到的容量。在一些实施例中,终端的GPU内存中永久性的加载了最低精度级别的预设光照信息存储块,该至少一个候选光照信息存储块中不包括最低精度级别的预设光照信息存储块,终端可以利用已加载的光照信息存储块中的至少一个光照信息存储块进行光照计算,渲染得到目标图像。其中,已加载的光照信息存储块可以为多个,包括最低精度级别的预设光照信息存储块以及加载后的光照信息存储块。
在一些实施例中,对于屏幕空间中的每个像素点,屏幕空间为屏幕的2D(2维)空间,屏幕空间的大小为屏幕的大小,以像素作为单位,可以设定屏幕大小,例如为1280×720。目标图像的大小与屏幕空间的大小一致,故目标图像中的像素点也可以称为屏幕空间中的像素点,终端可以确定像素点的三维世界空间位置,像素点的三维世界空间位置是指像素点在三维世界空间中的位置,像素点在三维世界空间中的位置由像素点在三维世界空间中的坐标唯一确定,三维世界空间中的坐标可以称为世界坐标。终端可以根据像素点的三维世界空间位置从已加载的光照信息存储块中,确定与像素点邻近的光照信息存储块,例如,对于每个已加载的光照信息存储块,在已加载的光照信息存储块在三维世界空间中所占的空间区域中包括像素点的三维世界空间位置的情况下,将该已加载的光照信息存储块确定为与像素点邻近的光照信息存储块。在所占的空间区域包括像素点的三维世界空间位置的光照信息存储块存在多个的情况下,终端可以将该多个光照信息存储块中块精度最高的光照信息存储块,确定为该像素点邻近的光照信息存储块,基于像素点邻近的光照信息存储块确定该像素点对应的光照信息,得到屏幕空间中的每个像素点分别对应的光照信息的情况下,可以利用每个像素点分别对应的光照信息进行光照计算,渲染得到目标图像。
在一些实施例中,光照信息存储块中包括多个光照信息存储单元,光照信息存储单元对应有三维世界空间位置,光照信息存储单元中存储的是其对应的三维世界空间位置处的光照信息,终端在确定了像素点邻近的光照信息存储块的情况下,可以从像素点邻近的光照信息存储块包括的光照信息存储单元中,确定与像素点邻近的光照信息存储单元,基于与像素点邻近的光照信息存储单元中存储的光照信息,计算得到像素点对应的光照信息。具体地,对于像素点邻近的光照信息存储块中的光照信息存储单元,终端可以计算像素点的三维世界空间位置与光照信息存储单元的三维世界空间位置之间的距离,将距离小于第一距离阈值的光照信息存储单元确定为与像素点邻近的光照信息存储单元。第一距离阈值可以预设或根据需要设置。或者,终端可以按照距离从小到大的顺序,对各个光照信息存储单元进行排列,得到存储单元序列,将存储单元序列中排列在预设排序之前的光照信息存储单元,确定为与像素点邻近的各光照信息存储单元。预设排序可以根据需要设置,例如为第5位,则将第1位到第4位的光照信息存储单元,确定为与像素点邻近的各光照信息存储单元。
在一些实施例中,光照信息存储块为体积光照贴图块,GPU内存中采用物理体积光照贴图存储已加载的体积光照贴图块。虚拟体积光照贴图中,只有当前画面需要使用到的体积光照贴图块才会加载到物理体积光照贴图中,因此,物理体积光照贴图的尺寸小于虚拟体积光照贴图的尺寸。GPU内存中用于存储体积光照贴图块的存储空间的总容量可以称为物理体积光照贴图块总容量,空闲的块存储空间的容量可以称为可用物理体积光照贴图块容量,存储最低精度级别的体积光照贴图块的存储空间的容量为最低精度级别的体积光照贴图块总量,在终端的GPU内存中永久性的加载了最低精度级别的体积光照贴图块的情况下,可用物理体积光照贴图块容量=物理体积光照贴图块总容量-最低精度级别的体积光照贴图块总量。
在一些实施例中,为了保证贴图线性插值采样的正确性,每个体积光照贴图块需要外扩一个纹素,外扩纹素存储了相邻的采样点的光照数据,比如4×4×4的体积光照贴图块,实际在物理体积光照贴图中,一个体积光照贴图块的大小为5×5×5。
上述光照信息加载方法中,确定至少一个候选光照信息存储块,候选光照信息存储块是与待渲染的目标图像相关联的光照信息存储块,确定至少一个候选光照信息存储块分别对应的存储块权重,根据存储块权重,从至少一个候选光照信息存储块中确定待加载的光照信息存储块,并对待加载的光照信息存储块进行加载,其中,加载后的光照信息存储块用于进行光照计算以渲染得到目标图像。由于待加载的光照信息存储块是根据存储块权重筛选出的,从而可以将对光照计算影响大的光照信息存储块进行加载,在保证渲染效果的情况下尽可能减少加载的光照信息存储块的数量,节省了存储资源。
在一些实施例中,确定至少一个候选光照信息存储块包括:从多个预设光照信息存储块中,确定目标图像的关联光照信息存储块;根据关联光照信息存储块,确定候选光照信息存储块。
其中,预设光照信息存储块为多个,多个是指至少两个。关联光照信息存储块是对目标图像的光照效果具有影响的预设光照信息存储块。关联光照信息存储块为至少一个,候选光照信息存储块为至少一个。
具体地,终端可以根据屏幕空间中像素点的三维世界空间位置,确定目标图像的关联光照信息存储块,例如,终端可以获取预设光照信息存储块的块区域,预设光照信息存储块的块区域,是指预设光照信息存储块在三维世界空间中所占的空间区域,对于屏幕空间中的像素点,终端可以从多个预设光照信息存储块中,确定与目标图像中多个像素点分别邻近的第一光照信息存储块,每个像素点对应一个第一光照信息存储块,像素点邻近的第一光照信息存储块的块区域包括该像素点的三维世界空间位置,在存在一个以上的预设光照信息存储块的块区域包括该像素点的三维世界空间位置的情况下,将块精度较高的预设光照信息存储块确定为该像素点的第一光照信息存储块,例如,S1、S2为2个预设光照信息存储块,S1和S2的块区域均包括像素点A的三维世界空间位置,S1的块精度高于S2的块精度,则将S1确定为像素点的第一光照信息存储块。终端可以根据该多个像素点分别邻近的第一光照信息存储块确定关联光照信息存储块。例如,终端可以对各第一光照信息存储块进行去重处理,得到关联光照信息存储块,即将各第一光照信息存储块中各不相同的第一光照信息存储块,确定为各关联光照信息存储块。例如,以多个像素点为像素点1~像素点5为例,像素点1邻近的第一光照信息存储块为S1,像素点2邻近的第一光照信息存储块为S1,像素点3邻近的第一光照信息存储块为S2,像素点4邻近的第一光照信息存储块为S1,像素点5邻近的第一光照信息存储块为S2,则各不相同的第一光照信息存储块为S1和S2,从而可以将S1和S2确定为2个关联光照信息存储块。
在一些实施例中,终端可以根据目标图像中关键对象在三维世界空间中的位置,确定关联光照信息存储块。具体地,终端可以确定关键对象的包围盒,关键对象的包围盒是指三维世界空间中能够包裹住该关键对象的几何体,包围盒可以是任意形状的几何体,包括但不限于是球体、椎体或立方体等中的任意一种,例如关键对象在三维世界空间中的包围盒为能够包裹住该关键对象的最小立方体。终端可以根据关键对象的包围盒确定关联光照信息存储块,例如,终端可以将块区域与包围盒相交的预设光照信息存储块,确定为与关键对象邻近的第二光照信息存储块,或者将块区域与包围盒之间的距离小于第二距离阈值的预设光照信息存储块,确定为与关键对象邻近的第二光照信息存储块,由于关键对象可以为多个,而不同的关键对象相邻近的第二光照信息存储块可能相同,故终端可以将各个第二光照信息存储块中各不相同的光照信息存储块,确定为关联光照信息存储块。
在一些实施例中,终端可以结合屏幕空间中像素点的三维世界空间位置、关键对象在三维世界空间中的位置,确定关联光照信息存储块。具体地,终端可以从各个第一光照信息存储块以及各个第二光照信息存储块中,确定各不相同的光照信息存储块,得到各个关联光照信息存储块,即对各个第一光照信息存储块以及各个第二光照信息存储块进行去重,得到各个关联光照信息存储块。
在一些实施例中,光照信息存储块为体积光照贴图块,预设光照信息存储块为存储在虚拟体积光照贴图中的体积光照贴图块。终端可以从虚拟体积光照贴图中,确定目标图像的关联体积光照贴图块,根据关联体积光照贴图块,确定候选体积光照贴图块,确定至少一个候选体积光照贴图块分别对应的存储块权重,根据存储块权重,从至少一个候选体积光照贴图块中确定待加载的体积光照贴图块,并对待加载的体积光照贴图块进行加载,其中,加载后的体积光照贴图块用于进行光照计算以渲染得到目标图像。
本实施例中,由于与目标图像相关联的光照信息存储块对渲染出的目标图像的光照效果具有影响,故根据关联光照信息存储块,确定候选光照信息存储块,从而可以使得选择出的候选光照信息存储块是对目标图像的光照效果具有影响的光照信息存储块,提高了选取候选光照信息存储块的准确度。
在一些实施例中,从多个预设光照信息存储块中,确定目标图像的关联光照信息存储块包括:从多个预设光照信息存储块中,确定与目标图像中多个像素点分别邻近的第一光照信息存储块;基于第一光照信息存储块进行去重处理,得到目标图像的关联光照信息存储块。
其中,目标图像中的多个像素点即屏幕空间中的多个像素点。每个像素点对应一个第一光照信息存储块,像素点邻近的第一光照信息存储块的块区域包括该像素点的三维世界空间位置。去重处理是指去掉相同的光照信息存储块,保留不相同的光照信息存储块。
具体地,终端可以获取预设光照信息存储块的块区域,预设光照信息存储块的块区域,是指预设光照信息存储块在三维世界空间中所占的空间区域,对于屏幕空间中的像素点,终端可以从多个预设光照信息存储块中,确定与目标图像中多个像素点分别邻近的第一光照信息存储块,例如,将块区域包括该像素点的三维世界空间位置的预设光照信息存储块确定为该像素点的第一光照信息存储块,在存在一个以上的预设光照信息存储块的块区域包括该像素点的三维世界空间位置的情况下,终端可以将块精度较高的预设光照信息存储块确定为该像素点的第一光照信息存储块。
在一些实施例中,终端可以获取多个索引数据点分别对应的块索引,块索引与预设光照信息存储块一一对应,块索引与预设光照信息存储块一一对应,块索引用于唯一标识预设光照信息存储块。在多个预设光照信息存储块为虚拟体积光照贴图中的各个体积光照贴图块的情况下,光照信息存储块为体积光照贴图块,块索引为体积光照贴图块在虚拟体积光照贴图中的位置,体积光照贴图块在虚拟体积光照贴图中的位置可以通过体积光照贴图块坐标(BrickUVIndex)唯一标识,即块索引可以为体积光照贴图块坐标,体积光照贴图块坐标为3D坐标,例如,体积光照贴图块坐标为(xi,yi,zi),(xi,yi,zi)表示虚拟体积光照贴图中位于X方向的第xi个,Y方向的第yi个,Z方向的第zi个的体积光照贴图块。对于多个像素点中的像素点,终端可以从多个索引数据点分别对应的块索引中,选取与像素点邻近的索引数据点对应的块索引,得到像素点对应的目标块索引,像素点对应的目标块索引指向的预设光照信息存储块为像素点邻近的第一光照信息存储块。终端可以对各像素点对应的目标块索引进行去重处理,得到去重处理剩余的目标块索引,基于去重处理剩余的目标块索引分别指向的预设光照信息存储块,得到目标图像的关联光照信息存储块,例如可以将去重处理剩余的目标块索引分别指向的预设光照信息存储块,确定为目标图像的关联光照信息存储块。
在一些实施例中,终端可以根据该多个像素点分别邻近的第一光照信息存储块确定关联光照信息存储块。例如,终端可以对各第一光照信息存储块进行去重处理,得到关联光照信息存储块,即将各第一光照信息存储块中各不相同的第一光照信息存储块,确定为各关联光照信息存储块。
在一些实施例中,终端可以基于第一光照信息存储块进行去重处理,得到目标图像的关联光照信息存储块,例如,可以从各个第一光照信息存储块中选取各不相同的第一光照信息存储块,得到目标图像的关联光照信息存储块。
本实施例中,由于第一光照信息存储块与目标图像中的像素点相邻近,故第一光照信息存储块对像素点处的光照效果具有较大的影响,从而基于第一光照信息存储块得到目标图像的关联光照信息存储块,提高了关联光照信息存储块的准确度。并且利用像素点查找关联光照信息存储块,对于目标图像中的不透明物体,可以基于关联光照信息存储块进行光照渲染,从而提高了关联光照信息存储块的合理性。
在一些实施例中,从多个预设光照信息存储块中,确定与目标图像中多个像素点分别邻近的第一光照信息存储块包括:获取多个索引数据点分别对应的块索引;块索引与预设光照信息存储块一一对应;对于目标图像的多个像素点中的像素点,从多个索引数据点分别对应的块索引中,选取与像素点邻近的索引数据点对应的块索引,得到像素点对应的目标块索引;将目标块索引对应的预设光照信息存储块,确定为像素点邻近的第一光照信息存储块。
其中,块索引与预设光照信息存储块一一对应,块索引用于唯一标识预设光照信息存储块。在多个预设光照信息存储块为虚拟体积光照贴图中的各个体积光照贴图块的情况下,光照信息存储块为体积光照贴图块,块索引为体积光照贴图块在虚拟体积光照贴图中的位置,体积光照贴图块在虚拟体积光照贴图中的位置可以通过体积光照贴图块坐标唯一标识,即块索引可以为体积光照贴图块坐标,体积光照贴图块坐标为3D坐标,例如,体积光照贴图块坐标为(xi,yi,zi),(xi,yi,zi)表示虚拟体积光照贴图中位于X方向的第xi个,Y方向的第yi个,Z方向的第zi个的体积光照贴图块。例如,虚拟体积光照贴图中包括10个体积光照贴图块,并且沿着X轴方向依次排列,则第1个体积光照贴图块的体积光照贴图块坐标为(1,1,1),第2个体积光照贴图块的体积光照贴图块坐标为(2,1,1)。该多个索引数据点为分布在三维世界空间中的多个点。该多个索引数据点分布的空间区域可以涵盖该多个预设光照信息存储块所涵盖的空间区域,相邻索引数据点之间的距离相等,相邻的索引数据点之间的间隔可以根据需要设置。例如,对于图3中分布的10个体积光照贴图块,占用空间最大的是间隔为16米的体积光照贴图块,该间隔为16米的体积光照贴图块所占用的空间区域为个16(米)×16(米)×16(米)的空间区域,为了使得多个索引数据点分布的空间区域可以涵盖该间隔为16米的体积光照贴图块所占的空间区域,可以在该间隔为16米的体积光照贴图块所占的空间区域中,均匀分布多个索引数据点,例如,相邻索引数据点之间的间隔为4米,生成16×16×16的多个索引数据点。像素点对应目标块索引,是指与像素点邻近的索引数据点对应的块索引。
具体地,终端可以获取像素点的三维世界空间位置以及索引数据点的三维世界空间位置,计算像素点的三维世界空间位置与索引数据点的三维世界空间位置之间的距离,将距离最近的索引数据点确定为与该像素点邻近的索引数据点。在一些实施例中,该多个索引数据点分别对应有块信息,块信息包括块索引以及块精度。块信息中的块精度,是指该块信息中的块索引代表的光照信息存储块的块精度,块精度例如可以采用相邻采样点间距表示,块精度与相邻采样点间距成负相关关系,块精度越高,相邻采样点间距越小。
在一些实施例中,多个预设光照信息存储块为虚拟体积光照贴图中的各个体积光照贴图块,光照信息存储块为体积光照贴图块,块索引为体积光照贴图块在虚拟体积光照贴图中的体积光照贴图块坐标。该多个索引数据点分别对应有块索引存储在虚拟间接索引贴图中的,虚拟间接索引贴图中存储有多个索引数据点分别对应的块索引,虚拟间接索引贴图中还可以存储有块索引代表的体积光照贴图块的块精度。虚拟间接索引贴图中存储有多个索引数据点分别对应的块索引,可以是预先生成的。在为每个索引数据点生成对应的块索引时,可以基于该索引数据点邻近的体积光照贴图块确定该索引数据点的块索引,例如,在体积光照贴图块所占的空间区域包括该索引数据点的情况下,将该体积光照贴图块的索引确定为该索引数据点对应的块索引,当有多个体积光照贴图块所占的空间区域均包括该索引数据点时,可以根据块精度确定索引数据点对应的块索引,例如,可以将块精度较高的体积光照贴图块的块索引,确定为该索引数据点对应的块索引。例如,对于相邻索引数据点之间的间隔为4米,大小为16×16×16的多个索引数据点,在生成索引数据点对应的块索引以及块精度时,可以获取索引数据点周围的4米范围内的体积光照贴图块,将该4米范围内的体积光照贴图块的块索引以及块精度,生成该索引数据点对应的块索引以及块精度,存储到虚拟间接索引贴图中,虚拟间接索引贴图存储的索引数据点的块信息为纹素,块信息包括索引以及块精度,从而虚拟间接索引贴图中的每个纹素存储了4米范围内的体积光照贴图块在虚拟体积光照贴图中的体积光照贴图块坐标以及块精度。
在一些实施例中,光照信息存储块为体积光照贴图块,GPU内存中采用物理间接索引贴图存储已加载的体积光照贴图块的块索引。物理间接索引贴图与虚拟间接索引贴图类似,物理间接索引贴图中存储各个索引数据点对应的块索引,不同的时,虚拟间接索引贴图中存储的是索引数据点处的块精度最高的体积光照贴图块,若索引数据点处的块精度最高的体积光照贴图块未加载,则在物理间接索引贴图中存储的是该索引数据点处的最低精度级别体积光照贴图块的索引信息即块索引,即对于没有加载最高精度级别的体积光照贴图块的索引数据点,物理间接索引贴图中存储的是该索引数据点处的最低精度级别体积光照贴图块的索引信息即块索引。
本实施例中,由于与像素点邻近的索引数据点的光照情况与该像素点处的光照情况较为相似,故将像素点邻近的索引数据点的块索引所指向的预设光照信息存储块,确定为该像素点邻近的第一光照信息存储块,提高了确定像素点邻近的第一光照信息存储块的准确度。
在一些实施例中,基于第一光照信息存储块进行去重处理,得到目标图像的关联光照信息存储块包括:从多个预设光照信息存储块中,选取与目标图像中的关键对象邻近的第二光照信息存储块;基于第一光照信息存储块和第二光照信息存储块进行去重处理,得到目标图像的关联光照信息存储块。
其中,第二光照信息存储块是与关键对象邻近的预设光照信息存储块,关键对象可以具有至少一个邻近的第二光照信息存储块。去重处理是指去掉相同的光照信息存储块,保留不相同的光照信息存储块。
具体地,终端可以基于目标图像中的关键对象在三维世界空间中所占的空间区域,从多个预设光照信息存储块中,确定关键对象邻近的第二光照信息存储块。例如,在预设光照信息存储块的块区域与关键对象在三维世界空间中所占的空间区域相交的情况下,将预设光照信息存储块确定为该关键对象邻近的第二光照信息存储块。或者,预设光照信息存储块的块区域与关键对象在三维世界空间中所占的空间区域之间的距离小于第二距离阈值的情况下,将预设光照信息存储块确定为该关键对象邻近的第二光照信息存储块
在一些实施例中,终端可以从各第一光照信息存储块和各第二光照信息存储块中,选取所有的各不相同的光照信息存储块,得到目标图像的关联光照信息存储块。
本实施例中,由于目标图像中的关键对象为目标图像中较为重要的对象和半透明对象,故对关键对象的光照效果为目标图像的整体的光照效果中比较重要的部分,而与关键对象邻近的第二光照信息存储块对关键对象的光照效果的影响较大,故结合与像素点邻近的第一光照信息存储块以及与关键对象邻近的第二光照信息存储块确定关联光照信息存储块,使得各关联光照信息存储块可以包括与目标图像中的不透明物体相关的光照信息存储块以及与关键对象相关的光照信息存储块,提高了关联光照信息存储块的合理性。
在一些实施例中,从多个预设光照信息存储块中,选取与目标图像中的关键对象邻近的第二光照信息存储块包括:确定目标图像中的关键对象的关键对象区域;关键对象区域为目标图像中的关键对象所在的区域;从多个预设光照信息存储块中,确定与关键对象区域相交的预设光照信息存储块,得到第二光照信息存储块。
其中,关键对象的关键对象区域,是指关键对象在三维世界空间中所处的空间区域,例如关键对象区域可以为关键对象的包围盒。
具体地,终端可以从多个预设光照信息存储块中,确定块区域与关键对象区域相交的预设光照信息存储块,得到第二光照信息存储块。例如,在预设光照信息存储块的块区域与关键对象区域相交的情况下,将预设光照信息存储块确定为该关键对象邻近的第二光照信息存储块。
本实施例中,从多个预设光照信息存储块中,确定与关键对象区域相交的预设光照信息存储块,得到第二光照信息存储块,提高了第二光照信息存储块的合理性。
在一些实施例中,关联光照信息存储块包括多个光照信息存储单元;根据关联光照信息存储块,确定候选光照信息存储块包括:确定关联光照信息存储块的块精度;块精度与多个光照信息存储单元的分布密集程度相关;根据块精度对各关联光照信息存储块进行过滤,得到候选光照信息存储块;候选光照信息存储块是过滤后剩余的关联光照信息存储块。
其中,光照信息存储块中包括多个光照信息存储单元,多个是指至少两个,例如为64个。光照信息存储块中的光照信息存储单元均匀分布在三维世界空间中,相邻的光照信息存储单元之间的间隔相同。光照信息存储块的块精度与光照信息存储块中的光照信息存储单元的分布密集程度相关,光照信息存储块中的光照信息存储单元的分布越密集,例如,相邻的光照信息存储单元之间的间隔越小,则块精度越大,反之,块精度越小。
具体地,终端可以根据块精度对各关联光照信息存储块进行过滤,将剩余的关联光照信息存储块确定为候选光照信息存储块。终端可以长时间的将最低精度级别的预设光照信息存储块存储在GPU的内存中,在动态加载光照信息存储块的过程中,只加载块精度高于最低精度级别的预设光照信息存储块。从而,终端可以从各关联光照信息存储块中过滤掉块精度为最低精度级别的候选光照信息存储块,将剩余的关联光照信息存储块确定为候选光照信息存储块,即候选光照信息存储块为最高精度级别或中精度级别的光照信息存储块。从而在加载时,动态加载块精度高于最低精度级别的预设光照信息存储块。
本实施例中,由于块精度与关联光照信息存储块中的光照信息存储单元的分布密集程度相关,从而根据块精度对各关联光照信息存储块进行过滤,可以将块精度不符合要求的关联光照信息存储块进行过滤,提高候选光照信息存储块的合理性。
在一些实施例中,至少一个候选光照信息存储块包括与目标图像中至少一个像素点相邻近的第一候选光照信息存储块;确定至少一个候选光照信息存储块分别对应的存储块权重包括:确定第一候选光照信息存储块在对应的每个邻近像素点处的像素块权重;对各个像素块权重进行统计,得到第一候选光照信息存储块的存储块权重。
其中,每个候选光照信息存储块分别具有存储块权重。第一候选光照信息存储块对应有至少一个邻近像素点。像素块权重表征第一候选光照信息存储块对该邻近像素点的光照的影响程度,像素块权重越大,则影响程度越大。
具体地,对于每个像素点,终端可以从多个预设光照信息存储块中,确定与每个像素点分别邻近的第一光照信息存储块,对第一光照信息存储块进行去重处理,得到去重处理后剩余的各第一光照信息存储块,该第一候选光照信息存储块属于去重处理后剩余的第一光照信息存储块。确定第一候选光照信息存储块的邻近像素点的步骤包括:若与像素点邻近的第一光照信息存储块为第一候选光照信息存储块,则该像素点为该第一候选光照信息存储块的邻近像素点。例如去重处理后剩余的各第一光照信息存储块为S1和S2,第一候选光照信息存储块为S1,与像素点A、像素点B以及像素点C邻近的第一光照信息存储块均为S1,则像素点A、像素点B以及像素点C均为第一候选光照信息存储块S1的邻近像素点。
在一些实施例中,终端可以根据第一候选光照信息存储块的深度值计算像素块权重,像素块权重与第一候选光照信息存储块的深度值成负相关关系。终端还可以结合第一候选光照信息存储块深度值、以及第一候选光照信息存储块的阴影因子确定像素块权重。像素块权重与阴影因子成正相关关系。正相关关系指的是:在其他条件不变的情况下,两个变量变动方向相同,一个变量由大到小变化时,另一个变量也由大到小变化。终端可以确定阴影因子的权重,得到阴影权重系数,确定第一候选光照信息存储块的深度值的权重,得到深度权重系数,利用阴影权重系数以及深度权重系数,对阴影因子以及深度值进行加权计算,得到像素块权重。阴影权重系数以及深度权重系数为预设值。
在一些实施例中,对于每个第一候选光照信息存储块,终端可以将第一候选光照信息存储块对应的各邻近像素点的像素块权重进行求和,基于求和的结果确定第一候选光照信息存储块的存储块权重,例如,终端可以将求和的结果确定为第一候选光照信息存储块的存储块权重。
在一些实施例中,终端可以根据邻近像素点的深度值计算像素块权重,像素块权重与邻近像素点的深度值成负相关关系。终端还可以结合邻近像素点的深度值以及第一候选光照信息存储块的块区域中阴影区域确定像素块权重。例如,终端可以计算阴影区域的大小与块区域的大小的比值,将计算出的比值确定为第一候选光照信息存储块的阴影因子,像素块权重与阴影因子成正相关关系。例如,终端可以确定阴影因子的权重,得到阴影权重系数,确定邻近像素点的深度值的权重,得到深度权重系数,利用阴影权重系数以及深度权重系数,对阴影因子以及邻近像素点的深度值进行加权计算,得到像素块权重。阴影权重系数以及深度权重系数为预设值。深度值可以是归一化的深度值,第一候选光照信息存储块的归一化深度值是基于第一候选光照信息存储块的位置计算得到的。例如,像素块权重=阴影因子×阴影权重系数+(1-归一化深度值)×深度权重系数。其中,阴影因子可以是预先烘焙好的。需要说明的是,本申请中的权重均可以利用阴影因子×阴影权重系数+(1-归一化深度值)×深度权重系数进行计算,不同的是阴影因子、归一化深度值、阴影权重系数以及深度权重系数的取值根据实际需要确定。
本实施例中,由于像素块权重越大,则表征对像素点的光照影响越大,从而确定第一候选光照信息存储块在对应的每个邻近像素点处的像素块权重,对各个像素块权重进行统计,得到第一候选光照信息存储块的存储块权重,可以使得存储块权重体现出第一候选光照信息存储块对目标图像中的光照效果的影响程度,提高了存储块权重的合理性。
在一些实施例中,第一候选光照信息存储块与关键对象区域邻近;关键对象区域为目标图像中的关键对象所在的区域;对各个像素块权重进行统计,得到第一候选光照信息存储块的存储块权重包括:对各个像素块权重进行统计,得到第一候选光照信息存储块的第一块权重;基于第一候选光照信息存储块的深度值,确定第一候选光照信息存储块的第二块权重;基于第一候选光照信息存储块的第一块权重以及第二块权重,得到第一候选光照信息存储块的存储块权重。
具体地,终端可以对各个像素块权重进行求和,将求和的结果确定为第一候选光照信息存储块的第一块权重。终端可以基于第一候选光照信息存储块的深度值,确定第一候选光照信息存储块的第二块权重。第二块权重与第一候选光照信息存储块的深度值成负相关关系。终端还可以结合第一候选光照信息存储块的深度值、以及第一候选光照信息存储块的阴影因子确定第二块权重。第二块权重与阴影因子成正相关关系。终端可以确定第一候选光照信息存储块的阴影因子的权重,得到阴影权重系数,确定第一候选光照信息存储块的深度值的权重,得到深度权重系数,利用阴影权重系数以及深度权重系数,对阴影因子以及深度值进行加权计算,得到第二块权重。阴影权重系数以及深度权重系数为预设值。
在一些实施例中,终端可以将第一候选光照信息存储块的第一块权重与第二块权重进行求和,将求和的结果确定为第一候选光照信息存储块的存储块权重。
本实施例中,由于光照信息存储块的深度值影响光照效果,故基于第一候选光照信息存储块的深度值,确定第一候选光照信息存储块的第二块权重,结合第一候选光照信息存储块的第一块权重以及第二块权重,得到第一候选光照信息存储块的存储块权重,提高了存储块权重的合理性。
在一些实施例中,目标图像为目标视频帧,确定第一候选光照信息存储块在对应的每个邻近像素点处的像素块权重包括:基于目标视频帧的前向视频帧,确定每个邻近像素点的深度值;基于每个邻近像素点的深度值,确定第一候选光照信息存储块在每个邻近像素点处的像素块权重。
其中,目标视频帧可以为任意的待渲染的视频帧,例如是游戏中待渲染的当前视频帧。目标视频帧的前向视频帧是指目标视频帧的之前的相邻的视频帧。
具体地,对于每个邻近像素点,终端可以将目标视频帧的前向视频帧中该邻近像素点的深度值,确定为该邻近像素点的深度值,从而得到每个邻近像素点的深度值。对于每个邻近像素点,像素块权重与其深度值成负相关关系。
本实施例中,基于目标视频帧的前向视频帧,确定每个邻近像素点的深度值,基于每个邻近像素点的深度值,确定第一候选光照信息存储块在每个邻近像素点处的像素块权重,由于目标视频帧的前向视频帧中像素点的深度值是在渲染目标视频帧之前已生成了,并且像素点在相邻两帧的深度值的变化较小,故利用前向视频帧中像素点的深度值确定像素块权重,可以在保证像素块权重的合理性的情况下提高生成像素块权重的效率。
在一些实施例中,至少一个候选光照信息存储块包括第二候选光照信息存储块,第二候选光照信息存储块的块区域与关键对象区域相邻近;关键对象区域为目标图像中的关键对象所在的区域;确定至少一个候选光照信息存储块分别对应的存储块权重包括:获取第二候选光照信息存储块的阴影因子;阴影因子是根据第二候选光照信息存储块的块区域中的阴影区域的占比确定的;根据阴影因子确定第二候选光照信息存储块的存储块权重。
具体地,终端可以计算阴影区域的大小与块区域的大小的比值,将计算出的比值确定为第二候选光照信息存储块的阴影因子,第二候选光照信息存储块的存储块权重与阴影因子成正相关关系。
在一些实施例中,终端可以基于第二候选光照信息存储块的深度值,确定第二候选光照信息存储块的存储块权重。终端还可以结合第二候选光照信息存储块的深度值、以及第二候选光照信息存储块的阴影因子确定存储块权重。存储块权重与第二候选光照信息存储块的深度值成负相关关系。存储块权重与第二候选光照信息存储块的阴影因子成正相关关系。终端可以确定第二候选光照信息存储块的阴影因子的权重,得到阴影权重系数,确定第二候选光照信息存储块的深度值的权重,得到深度权重系数,利用阴影权重系数以及深度权重系数,对第二候选光照信息存储块的阴影因子以及深度值进行加权计算,得到存储块权重。阴影权重系数以及深度权重系数为预设值。由于,关键对象为目标图像中的主要对象,故计算第二候选光照信息存储块的存储块权重时采用的阴影权重系数,可以大于计算第一块权重时采用的阴影权重系数,计算第二候选光照信息存储块的存储块权重时采用的深度权重系数,可以大于计算第一块权重时采用的深度权重系数。
本实施例中,由于在阴影里的光照GI(Global Illumination,全局光照)贡献比例较高,而存储块权重与阴影因子成正相关关系,从而基于阴影因子确定存储块权重,可以增大具有全局光照贡献的光照信息存储块的权重,提高了存储块权重的合理性,有助于提高光照效果。
在一些实施例中,光照信息存储块为体积光照贴图块,体积光照贴图块包括多个光照探针;该光照信息加载方法还包括:从多个已加载的体积光照贴图块中,确定目标图像中每个像素点分别邻近的已加载的体积光照贴图块;多个已加载的体积光照贴图块包括加载后的光照信息存储块;从每个像素点分别对应的已加载的体积光照贴图块中,确定与每个像素点分别邻近的光照探针;利用每个像素点分别邻近的光照探针确定每个像素点的光照信息,并基于每个像素点的光照信息进行光照计算以渲染得到目标图像。
其中,该多个已加载的体积光照贴图块包括加载后的体积光照贴图块。加载后的体积光照贴图块是指该至少一个候选体积光照贴图块中成功加载的体积光照贴图块。在终端的GPU内存中永久性的加载了最低精度级别的预设体积光照贴图块的情况下,该多个已加载的体积光照贴图块还包括最低精度级别的预设体积光照贴图块。
体积光照贴图块中包括多个光照探针,光照探针对应有三维世界空间位置,光照探针中存储的是其对应的三维世界空间位置处的光照信息。
具体地,终端在确定了像素点邻近的体积光照贴图块的情况下,可以从像素点邻近的体积光照贴图块包括的光照探针中,确定与像素点邻近的光照探针,基于与像素点邻近的光照探针中存储的光照信息,计算得到像素点对应的光照信息,并基于每个像素点的光照信息进行光照计算以渲染得到目标图像。
在一些实施例中,对于像素点邻近的体积光照贴图块中的光照探针,终端可以计算像素点的三维世界空间位置与光照探针的三维世界空间位置之间的距离,将距离小于第一距离阈值的光照探针确定为与像素点邻近的光照探针。第一距离阈值可以预设或根据需要设置。或者,终端可以按照距离从小到大的顺序,对各个光照探针进行排列,得到存储单元序列,将存储单元序列中排列在预设排序之前的光照探针,确定为与像素点邻近的各光照探针。预设排序可以根据需要设置。
在一些实施例中,已加载的体积光照贴图块存储在物理体积光照贴图中,对于每个像素点,物理间接索引贴图存储多个索引数据点分别对应的块索引,索引数据点对应的块索引所代表的体积光照贴图块属于已加载的体积光照贴图块。终端可以根据像素点的世界坐标,采样物理间接索引贴图,即从物理间接索引贴图中确定与像素点邻近的索引数据点的块索引以及相邻采样点间距,得到像素点对应的目标块索引,并根据块索引以及相邻采样点间距确定对应的体积光照贴图中的光照探针的位置(例如UV(纹理)坐标),采样体积光照贴图,即从采样体积光照贴图中确定像素点邻近的光照探针,利用像素点邻近的光照探针中的光照信息插值得到像素点的光照信息(例如球谐系数)。
由于渲染不同的图像所需要的体积光照贴图块可能不同,故在渲染多张不同的图像过程中,物理体积光照贴图以及物理间接索引贴图需要不断的更新,在更新的过程中,如果索引数据点处的块精度级别最高的体积光照贴图块还未完成加载,则可以通过控制物理间接索引贴图的数据,使其指向对应的最低精度级别的体积光照贴图块,从而实现一个粗粒度的全局光照效果。
本实施例中,由于与像素点邻近的光照探针中的光照信息与像素点的真实的光照信息接近,故从每个像素点分别对应的已加载的体积光照贴图块中,确定与每个像素点分别邻近的光照探针,利用每个像素点分别邻近的光照探针确定每个像素点的光照信息,并基于每个像素点的光照信息进行光照计算以渲染得到目标图像,提高了渲染效果。
在一些实施例中,如图4所示,提供了一种光照信息加载方法,该方法可以由终端或服务器执行,还可以由终端和服务器共同执行,以该方法应用于终端为例进行说明,包括以下步骤:
步骤402,获取虚拟体积光照贴图;虚拟体积光照贴图中包括多个体积光照贴图块。
步骤404,获取虚拟间接索引贴图,虚拟间接索引贴图中存储多个索引数据点分别对应的块索引,块索引与体积光照贴图块一一对应。
步骤406,对于屏幕空间中的每个像素点,基于像素点在上一帧中的深度值确定像素点的世界坐标。
步骤408,基于像素点的世界坐标从虚拟间接索引贴图中,选取世界坐标与像素点的世界坐标相近的索引数据点所对应的块索引,得到像素点对应的目标块索引。
步骤410,将像素点的目标块索引指向的光照信息存储块,确定为像素点邻近的第一光照信息存储块。
步骤412,基于像素点的在上一帧中的深度值,计算每个像素点分别对应的第一体积光照贴图块的像素块权重。
其中,终端可以将每个像素点分别对应的第一块索引以及像素块权重存储到4通道即RGBA的贴图中,如图5所示,将块索引保存到RGB通道中,权重保存到Alpha通道中。RGBA中A为Alpha的缩写,R为Red(红色)的缩写,G为Green(绿色)的缩写,B为Blue(蓝色)的缩写。在每帧结束的后处理中,根据深度图信息统计每个像素点所需要的体积光照贴图块和权重,在GPU中,使用compute shader(计算着色器)或者后处理着色器进行统计计算。输出的渲染目标贴图,在下一帧刚开始的时候读取。
步骤414,确定待渲染的当前视频帧中的关键对象的包围盒,从虚拟场景中预设生成的多个体积光照贴图块中,确定与包围盒相交的各不相同的体积光照贴图块,得到第二体积光照贴图块。
步骤416,基于第二体积光照贴图块的深度值,计算各个第二体积光照贴图块分别对应的第二块权重。
步骤418,从第一体积光照贴图块和第二体积光照贴图块中确定各不相同的体积光照贴图块,得到待渲染的当前视频帧的关联体积光照贴图块。
步骤420,将关联体积光照贴图块对应的目标块权重相加,得到关联体积光照贴图块的存储块权重。
其中,在关联体积光照贴图块即存在像素块权重又存在第二块权重的情况下,目标块权重为多个,包括像素块权重以及第二块权重,在关联体积光照贴图块只存在像素块权重的情况下,目标块权重为像素块权重,在关联体积光照贴图块只存在第二块权重的情况下,目标块权重为第二块权重。
步骤422,根据块精度对各关联体积光照贴图块进行过滤,将过滤后剩余的关联体积光照贴图块确定为候选体积光照贴图块。
步骤424,根据存储块权重,从各候选体积光照贴图块中确定待加载的体积光照贴图块,在存在空闲的块存储空间的情况下,利用待加载的体积光照贴图块更新物理体积光照贴图块以及物理间接索引贴图,以完成对待加载的体积光照贴图块的加载,直至不存在空闲的块存储空间时停止加载。
如图6所示,展示了加载体积光照贴图块的整个流程,图6中的加载卸载可以是LRU(least recently used,最近最少使用算法)加载卸载。
在一些实施例中,终端可以存储虚拟体积光照贴图中的每个体积光照贴图块分别对应的加载信息,物理体积光照贴图中的每个体积光照贴图块分别对应有一个LRUNode(称为节点),LRUNode为双向链表LRUList的组成元素,LRUList中的各个LRUNode有序排列。加载信息包括存储块权重以及LRUNode在LRUList中的节点指针。节点指针用于唯一识别LRUNode,不同的LRUNode具有不同的节点指针。LRUNode中存储了该LRUNode在LRUList中的前一个LRUNode的节点指针、该LRUNode在LRUList中的后一个LRUNode的节点指针、体积光照贴图块在虚拟体积光照贴图中的体积光照贴图块坐标、体积光照贴图块在物理体积光照贴图中的体积光照贴图块坐标、体积光照贴图块的最近一次使用到的时间以及体积光照贴图块的加载状态,体积光照贴图块的加载状态用于表示该体积光照贴图块是否已经加载到物理体积光照贴图中,例如,加载状态为0表示未加载,加载状态为1表示已加载。
在一些实施例中,终端可以遍历各虚拟体积光照贴图块的加载信息,从加载信息中获取存储块权重,各虚拟体积光照贴图块中关联体积光照贴图的存储块权重大于0,终端可以从各虚拟体积光照贴图中,获取存储块权重大于0且精度级别不是最低的虚拟体积光照贴图块,得到待加载的体积光照贴图块。如果待加载的体积光照贴图块的数量,小于等于可加载的体积光照贴图块的数量,则将所有的待加载的体积光照贴图块进行加载,如果待加载的体积光照贴图块的数量,大于可加载的体积光照贴图块的数量,则按权重从大到小加载,超过容量部分,使用默认的最低精度级别的体积光照贴图块。
在一些实施例中,对于每个待加载的光照信息存储块,终端可以根据LRUList判断待加载的光照信息存储块是否已加载,即判断LRUList中是否存在与该待加载的光照信息存储块对应的LRUNode,若存在,则确定已加载,则将该待加载的光照信息存储块对应的LRUNode移动到LRUList的队首,并更新最近一次使用到的时间,若未加载,则将LRUList的队尾的LRUNode指向CurNode(当前节点),并卸载CurNode中的数据,并将待加载的光照信息存储块的信息加载到CurNode中。其中,卸载CurNode中的数据的步骤包括:将CurNode中的在物理体积光照贴图中的体积光照贴图块坐标,设置为最低精度的体积光照贴图块在物理体积光照贴图中的体积光照贴图块坐标,将加载状态更新为未加载,并清空加载信息中的节点指针。将待加载的光照信息存储块(即新加载的体积光照贴图块)的信息加载到CurNode中的步骤包括:将待加载的光照信息存储块加载到CurNode中的物理体积光照贴图块坐标对应的物理体积光照贴图区域中,物理体积光照贴图块坐标,是指体积光照贴图块在物理体积光照贴图中的体积光照贴图块坐标,并更新对应的物理间接索引贴图中的信息,指向新加载的体积光照贴图块,将CurNode中的虚拟体积光照贴图块坐标更新为新加载的体积光照贴图块的虚拟体积光照贴图块坐标,虚拟体积光照贴图块坐标,是指体积光照贴图块在虚拟体积光照贴图中的体积光照贴图块坐标,将新加载的体积光照贴图块对应的加载信息中的节点指针更新为CurNode的节点指针,更新CurNode中的最近一次使用到的时间,并将加载状态更新为已加载。终端将信息加载到CurNode中后,将CurNode移到LRUList队首。若无法加载待加载的光照信息存储块,例如存储空间不足的情况下,则不执行任何操作,直接使用永久加载的最低精度级别的体积光照贴图块。
步骤426,利用物理间接索引贴图确定每个像素点分别邻近的已加载的体积光照贴图块。
步骤428,对像素点邻近的已加载的体积光照贴图块进行采样,得到像素点对应的光照信息。
步骤430,利用每个像素点分别对应的光照信息进行光照渲染得到当前视频帧。
本实施例中,本申请实现了一种体积光照贴图的动态加载和管理方法。区分重要单位和次要单位,重要单位是指关键对象,例如为主角,重要的半透明物体,根据该单位在当前帧的位置和包围盒,计算所需要的体积光照贴图块和权重,次要单位是指除重要单位之外的不透明物体,根据上一帧的屏幕空间深度信息,估计当前帧所需要的体积光照贴图块和权重,对于所有需要加载的体积光照贴图块,如果不超过可用物理体积光照贴图块容量,则全部加载,如果超过,按照权重排序进行加载,例如可用物理体积光照贴图块容量为能够存储N个体积光照贴图块的容量,则加载权重前N的体积光照贴图块,超过容量部分,使用默认的最低精度级别的体积光照贴图块,降低了体积光照贴图的GPU内存的开销,根据体积光照贴图块的权重控制体积光照贴图的精度级别,来平衡体积光照贴图的内存开销和效果精度,使游戏在一定大小的内存预算前提下,达到较好的光照效果。如果应用在PRT(Precomputed Radiance Transfer,预计算辐射度传输)全局光照,则可以针对当前画面可见的体积光照贴图块进行relighting(重光照)计算,还能降低relighting的计算开销。
为了证明本申请提供的光照信息加载方法的效果,利用本申请提供的光照信息加载方法进行了光照信息的加载并进行图像渲染。如图7所示,展示了在体积光照贴图、内存预算充足情况下渲染出的图像。该情况中,体积光照贴图覆盖的场景范围为:(384,448,192)米,最高精度的体积光照贴图块中的相邻采样点间距为1m。预先烘焙数据出42523个最高精度的体积光照贴图块,2139个中等精度的体积光照贴图块以及126个最低精度的体积光照贴图块,当前的摄像机视角,基本包括了整个体积光照贴图的覆盖范围,窗口大小为1280×720(像素)。在内存预算足够的情况下,也就是每个像素都使用已有的最高精度的体积光照贴图块,总共需要加载8843个体积光照贴图块,相比于加载所有的体积光照贴图块,体积光照贴图的内存开销只有原来的20%,节省了存储资源,且光照效果不变。
在内存预算不足的情况下,将加载的最高精度的体积光照贴图块的数量限制为6600个,有部分权重比较小的体积光照贴图块,采用最低精度的体积光照贴图块。如图8所示,展示了在内存预算不足的情况下渲染出的图像,虽然图8的效果会比原始效果(即加载所有体积光照贴图块的情况下)稍差,但因为使用的最低精度的体积光照贴图块的权重较小,因此对效果影响很小,且体积光照贴图的内存开销只有原来的15%。节省了存储资源。
在内存预算严重不足的情况下,将加载的最高精度的体积光照贴图块的数量限制为4200个,有一半以上的体积光照贴图块,需要使用最低精度的体积光照贴图块。体积光照贴图的内存开销只有原来的10%,节省了存储资源,如图9所示,展示了在内存预算严重不足的情况下渲染出的图像,由于较多的体积光照贴图块使用了最低精度的体积光照贴图块,效果影响较为明显,但因为权重的调节,将效果损失降到了很低的水平。
作为对比,同样的将加载的最高精度体积光照贴图块的数量限制为4200个,但每个像素点的体积光照贴图块的权重一样,只根据体积光照贴图块所占的屏幕空间像素多少来决定体积光照贴图块的权重,效果如图10所示,可以发现,远处山尖部分的全局光照效果会较差。
本申请提供的光照信息加载方法可以应用于任何的需要加载光照信息的场景中,包括但不限于是影视特效、可视化设计、游戏、动漫、虚拟现实(Virtual Reality,VR)、工业仿真和数字文创等场景中的至少一种。本申请提供的光照信息加载方法,应用于影视特效、可视化设计、游戏、动漫、虚拟现实、工业仿真和数字文创等场景中,在保证光照效果的同时可以节省加载的光照信息在GPU中所占用的存储资源,例如,在制作数字文创产品的过程中,可以将本申请提供的光照信息加载方法用于制作数字文创产品的图片,再例如,可以将本申请提供的光照信息加载方法用于制作工业仿真中的仿真设备的图片。
游戏场景中,本申请提供的光照信息加载方法可以加载用于渲染得到游戏中的视频帧的光照信息。具体地,终端在运行游戏应用时,为了渲染游戏中的视频帧,终端可以确定至少一个候选光照信息存储块,候选光照信息存储块是与待渲染的视频帧相关联的光照信息存储块,确定该至少一个候选光照信息存储块分别对应的存储块权重,根据存储块权重,从该至少一个候选光照信息存储块中确定待加载的光照信息存储块,并对待加载的光照信息存储块进行加载,利用加载后的光照信息存储块进行光照计算,渲染得到游戏中的视频帧,终端可以显示渲染出的视频帧。
动漫场景中,本申请提供的光照信息加载方法可以加载用于渲染得到动漫中的图片的光照信息。具体地,在制作动画中的图片的过程中,终端可以确定至少一个候选光照信息存储块,候选光照信息存储块是与待制作的图片相关联的光照信息存储块,确定该至少一个候选光照信息存储块分别对应的存储块权重,根据存储块权重,从该至少一个候选光照信息存储块中确定待加载的光照信息存储块,并对待加载的光照信息存储块进行加载,利用加载后的光照信息存储块进行光照计算,渲染得到动漫中的图片,终端可以显示渲染出的图片。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的光照信息加载方法的光照信息加载装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个光照信息加载装置实施例中的具体限定可以参见上文中对于光照信息加载方法的限定,在此不再赘述。
在一些实施例中,如图11所示,提供了一种光照信息加载装置,包括:存储块确定模块1102、权重确定模块1104和加载模块1106,其中:
存储块确定模块1102,用于确定至少一个候选光照信息存储块;候选光照信息存储块是与待渲染的目标图像相关联的光照信息存储块。
权重确定模块1104,用于确定至少一个候选光照信息存储块分别对应的存储块权重。
加载模块1106,用于根据存储块权重,从至少一个候选光照信息存储块中确定待加载的光照信息存储块,并对待加载的光照信息存储块进行加载;其中,加载后的光照信息存储块用于进行光照计算以渲染得到目标图像。
在一些实施例中,存储块确定模块,还用于从多个预设光照信息存储块中,确定目标图像的关联光照信息存储块;根据关联光照信息存储块,确定候选光照信息存储块。
在一些实施例中,存储块确定模块,还用于从多个预设光照信息存储块中,确定与目标图像中多个像素点分别邻近的第一光照信息存储块;基于第一光照信息存储块进行去重处理,得到目标图像的关联光照信息存储块。
在一些实施例中,存储块确定模块,还用于获取多个索引数据点分别对应的块索引;块索引与预设光照信息存储块一一对应;对于多个像素点中的像素点,从多个索引数据点分别对应的块索引中,选取与像素点邻近的索引数据点对应的块索引,得到像素点对应的目标块索引;将目标块索引对应的预设光照信息存储块,确定为像素点邻近的第一光照信息存储块。
在一些实施例中,存储块确定模块,还用于从多个预设光照信息存储块中,选取与目标图像中的关键对象邻近的第二光照信息存储块;基于第一光照信息存储块和第二光照信息存储块进行去重处理,得到目标图像的关联光照信息存储块。
在一些实施例中,存储块确定模块,还用于确定目标图像中的关键对象的关键对象区域;关键对象区域为目标图像中的关键对象所在的区域;从多个预设光照信息存储块中,确定与关键对象区域相交的预设光照信息存储块,得到第二光照信息存储块。
在一些实施例中,关联光照信息存储块包括多个光照信息存储单元;存储块确定模块,还用于确定关联光照信息存储块的块精度;块精度与多个光照信息存储单元的分布密集程度相关;根据块精度对各关联光照信息存储块进行过滤,得到候选光照信息存储块;候选光照信息存储块是过滤后剩余的关联光照信息存储块。
在一些实施例中,至少一个候选光照信息存储块包括与目标图像中至少一个像素点相邻近的第一候选光照信息存储块;权重确定模块,还用于确定第一候选光照信息存储块在对应的每个邻近像素点处的像素块权重;对各个像素块权重进行统计,得到第一候选光照信息存储块的存储块权重。
在一些实施例中,第一候选光照信息存储块与关键对象区域邻近;关键对象区域为目标图像中的关键对象所在的区域;权重确定模块,还用于对各个像素块权重进行统计,得到第一候选光照信息存储块的第一块权重;基于第一候选光照信息存储块的深度值,确定第一候选光照信息存储块的第二块权重;基于第一候选光照信息存储块的第一块权重以及第二块权重,得到第一候选光照信息存储块的存储块权重。
在一些实施例中,目标图像为目标视频帧,权重确定模块,还用于基于目标视频帧的前向视频帧,确定每个邻近像素点的深度值;基于每个邻近像素点的深度值,确定第一候选光照信息存储块在每个邻近像素点处的像素块权重。
在一些实施例中,至少一个候选光照信息存储块包括第二候选光照信息存储块,第二候选光照信息存储块的块区域与关键对象区域相邻近;关键对象区域为目标图像中的关键对象所在的区域;权重确定模块,还用于获取第二候选光照信息存储块的阴影因子;阴影因子是根据第二候选光照信息存储块的块区域中的阴影区域的占比确定的;根据阴影因子确定第二候选光照信息存储块的存储块权重。
在一些实施例中,光照信息存储块为体积光照贴图块,体积光照贴图块包括多个光照探针;光照信息加载装置,还用于从多个已加载的体积光照贴图块中,确定目标图像中每个像素点分别邻近的已加载的体积光照贴图块;多个已加载的体积光照贴图块包括加载后的光照信息存储块;从每个像素点分别对应的已加载的体积光照贴图块中,确定与每个像素点分别邻近的光照探针;利用每个像素点分别邻近的光照探针确定每个像素点的光照信息,并基于每个像素点的光照信息进行光照计算以渲染得到目标图像。
上述光照信息加载装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一些实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图12所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储光照信息加载方法中涉及到的数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种光照信息加载方法。
在一些实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图13所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种光照信息加载方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置,显示屏可以是液晶显示屏或电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图12和图13中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一些实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述光照信息加载方法中的步骤。
在一些实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述光照信息加载方法中的步骤。
在一些实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述光照信息加载方法中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (16)
1.一种光照信息加载方法,其特征在于,所述方法包括:
确定至少一个候选光照信息存储块;所述候选光照信息存储块是与待渲染的目标图像相关联的光照信息存储块;
确定所述至少一个候选光照信息存储块分别对应的存储块权重;
根据所述存储块权重,从所述至少一个候选光照信息存储块中确定待加载的光照信息存储块,并对待加载的光照信息存储块进行加载;其中,加载后的光照信息存储块用于进行光照计算以渲染得到所述目标图像。
2.根据权利要求1所述的方法,其特征在于,所述确定至少一个候选光照信息存储块包括:
从多个预设光照信息存储块中,确定所述目标图像的关联光照信息存储块;
根据所述关联光照信息存储块,确定所述候选光照信息存储块。
3.根据权利要求2所述的方法,其特征在于,所述从多个预设光照信息存储块中,确定所述目标图像的关联光照信息存储块包括:
从多个预设光照信息存储块中,确定与所述目标图像中多个像素点分别邻近的第一光照信息存储块;
基于所述第一光照信息存储块进行去重处理,得到所述目标图像的关联光照信息存储块。
4.根据权利要求3所述的方法,其特征在于,所述从多个预设光照信息存储块中,确定与所述目标图像中多个像素点分别邻近的第一光照信息存储块包括:
获取多个索引数据点分别对应的块索引;所述块索引与预设光照信息存储块一一对应;
对于所述多个像素点中的像素点,从所述多个索引数据点分别对应的块索引中,选取与所述像素点邻近的索引数据点对应的块索引,得到所述像素点对应的目标块索引;
将所述目标块索引对应的预设光照信息存储块,确定为所述像素点邻近的第一光照信息存储块。
5.根据权利要求3所述的方法,其特征在于,所述基于所述第一光照信息存储块进行去重处理,得到所述目标图像的关联光照信息存储块包括:
从多个预设光照信息存储块中,选取与所述目标图像中的关键对象邻近的第二光照信息存储块;
基于所述第一光照信息存储块和所述第二光照信息存储块进行去重处理,得到所述目标图像的关联光照信息存储块。
6.根据权利要求5所述的方法,其特征在于,所述从多个预设光照信息存储块中,选取与所述目标图像中的关键对象邻近的第二光照信息存储块包括:
确定所述目标图像中的关键对象的关键对象区域;所述关键对象区域为所述目标图像中的关键对象所在的区域;
从多个预设光照信息存储块中,确定与所述关键对象区域相交的预设光照信息存储块,得到所述第二光照信息存储块。
7.根据权利要求2所述的方法,其特征在于,所述关联光照信息存储块包括多个光照信息存储单元;所述根据所述关联光照信息存储块,确定所述候选光照信息存储块包括:
确定所述关联光照信息存储块的块精度;所述块精度与所述多个光照信息存储单元的分布密集程度相关;
根据所述块精度对各所述关联光照信息存储块进行过滤,得到所述候选光照信息存储块;所述候选光照信息存储块是过滤后剩余的关联光照信息存储块。
8.根据权利要求1所述的方法,其特征在于,所述至少一个候选光照信息存储块包括与所述目标图像中至少一个像素点相邻近的第一候选光照信息存储块;
所述确定所述至少一个候选光照信息存储块分别对应的存储块权重包括:
确定所述第一候选光照信息存储块在对应的每个邻近像素点处的像素块权重;
对各个所述像素块权重进行统计,得到所述第一候选光照信息存储块的存储块权重。
9.根据权利要求8所述的方法,其特征在于,所述第一候选光照信息存储块与关键对象区域邻近;所述关键对象区域为所述目标图像中的关键对象所在的区域;
所述对各个所述像素块权重进行统计,得到所述第一候选光照信息存储块的存储块权重包括:
对各个所述像素块权重进行统计,得到所述第一候选光照信息存储块的第一块权重;
基于所述第一候选光照信息存储块的深度值,确定所述第一候选光照信息存储块的第二块权重;
基于所述第一候选光照信息存储块的第一块权重以及第二块权重,得到所述第一候选光照信息存储块的存储块权重。
10.根据权利要求8所述的方法,其特征在于,所述目标图像为目标视频帧,所述确定所述第一候选光照信息存储块在对应的每个邻近像素点处的像素块权重包括:
基于所述目标视频帧的前向视频帧,确定每个所述邻近像素点的深度值;
基于每个所述邻近像素点的深度值,确定所述第一候选光照信息存储块在每个所述邻近像素点处的像素块权重。
11.根据权利要求1所述的方法,其特征在于,所述至少一个候选光照信息存储块包括第二候选光照信息存储块,所述第二候选光照信息存储块的块区域与关键对象区域相邻近;所述关键对象区域为所述目标图像中的关键对象所在的区域;
所述确定所述至少一个候选光照信息存储块分别对应的存储块权重包括:
获取所述第二候选光照信息存储块的阴影因子;所述阴影因子是根据所述第二候选光照信息存储块的块区域中的阴影区域的占比确定的;
根据所述阴影因子确定所述第二候选光照信息存储块的存储块权重。
12.根据权利要求1至11任意一项所述的方法,其特征在于,所述光照信息存储块为体积光照贴图块,所述体积光照贴图块包括多个光照探针;所述方法还包括:
从多个已加载的体积光照贴图块中,确定所述目标图像中每个像素点分别邻近的已加载的体积光照贴图块;所述多个已加载的体积光照贴图块包括所述加载后的光照信息存储块;
从每个像素点分别对应的已加载的体积光照贴图块中,确定与每个像素点分别邻近的光照探针;
利用每个像素点分别邻近的光照探针确定每个像素点的光照信息,并基于每个像素点的光照信息进行光照计算以渲染得到所述目标图像。
13.一种光照信息加载装置,其特征在于,所述装置包括:
存储块确定模块,用于确定至少一个候选光照信息存储块;所述候选光照信息存储块是与待渲染的目标图像相关联的光照信息存储块;
权重确定模块,用于确定所述至少一个候选光照信息存储块分别对应的存储块权重;
加载模块,用于根据所述存储块权重,从所述至少一个候选光照信息存储块中确定待加载的光照信息存储块,并对待加载的光照信息存储块进行加载;其中,加载后的光照信息存储块用于进行光照计算以渲染得到所述目标图像。
14.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至12中任一项所述的方法的步骤。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至12中任一项所述的方法的步骤。
16.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至12中任一项所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210645771.0A CN117011119A (zh) | 2022-06-09 | 2022-06-09 | 光照信息加载方法、装置、计算机设备和存储介质 |
PCT/CN2023/087275 WO2023236645A1 (zh) | 2022-06-09 | 2023-04-10 | 光照信息加载方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210645771.0A CN117011119A (zh) | 2022-06-09 | 2022-06-09 | 光照信息加载方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117011119A true CN117011119A (zh) | 2023-11-07 |
Family
ID=88575016
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210645771.0A Pending CN117011119A (zh) | 2022-06-09 | 2022-06-09 | 光照信息加载方法、装置、计算机设备和存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117011119A (zh) |
WO (1) | WO2023236645A1 (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111508051B (zh) * | 2020-04-22 | 2023-03-14 | 浙江无端科技股份有限公司 | 一种纹理加载方法及相关装置 |
CN114119823A (zh) * | 2020-08-31 | 2022-03-01 | 华为技术有限公司 | 三维着色的方法、装置、计算设备和存储介质 |
CN113034656B (zh) * | 2021-03-30 | 2022-03-22 | 完美世界(北京)软件科技发展有限公司 | 游戏场景中光照信息的渲染方法、装置及设备 |
CN114419234A (zh) * | 2021-12-30 | 2022-04-29 | 北京三快在线科技有限公司 | 三维场景渲染方法、装置、电子设备及存储介质 |
-
2022
- 2022-06-09 CN CN202210645771.0A patent/CN117011119A/zh active Pending
-
2023
- 2023-04-10 WO PCT/CN2023/087275 patent/WO2023236645A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023236645A1 (zh) | 2023-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109603155B (zh) | 合并贴图的获取方法、装置、存储介质、处理器及终端 | |
US20230053462A1 (en) | Image rendering method and apparatus, device, medium, and computer program product | |
CN110990516B (zh) | 地图数据的处理方法、装置和服务器 | |
US10242481B2 (en) | Visibility-based state updates in graphical processing units | |
WO2021249091A1 (zh) | 图像处理方法、装置、计算机存储介质及电子设备 | |
CN113900797B (zh) | 基于虚幻引擎的三维倾斜摄影数据处理方法、装置及设备 | |
US8610737B2 (en) | Graphic processing unit (GPU) with configurable filtering module and operation method thereof | |
CN116030180B (zh) | 辐照度缓存光照计算方法及装置、存储介质、计算机设备 | |
WO2023142607A1 (zh) | 图像渲染方法、装置、设备和介质 | |
US9679349B2 (en) | Method for visualizing three-dimensional data | |
WO2018151870A1 (en) | Texture residency hardware enhancements for graphics processors | |
CN112489213A (zh) | 三维地形模型生成方法、装置、电子设备及存储介质 | |
WO2024037176A1 (zh) | 虚拟场景的渲染方法、装置、设备和介质 | |
CN115239784A (zh) | 点云生成方法、装置、计算机设备和存储介质 | |
CN114596423A (zh) | 基于虚拟场景网格化的模型渲染方法、装置和计算机设备 | |
CN116109765A (zh) | 标注对象的三维渲染方法、装置、计算机设备、存储介质 | |
CN114742931A (zh) | 渲染图像的方法、装置、电子设备及存储介质 | |
CN117218273A (zh) | 图像渲染方法以及装置 | |
CN116012520B (zh) | 阴影渲染方法、装置、计算机设备和存储介质 | |
CN116758206A (zh) | 矢量数据的融合渲染方法、装置、计算机设备、存储介质 | |
US9092907B2 (en) | Image shader using two-tiered lookup table for implementing style attribute references | |
CN117011119A (zh) | 光照信息加载方法、装置、计算机设备和存储介质 | |
CN116152422A (zh) | 一种光照数据的处理方法、装置及电子设备 | |
CN114494623A (zh) | 基于lod的地形渲染方法及装置 | |
CN116894933B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40097739 Country of ref document: HK |