CN117876572A - 光照渲染方法、装置、设备及存储介质 - Google Patents
光照渲染方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117876572A CN117876572A CN202410282660.7A CN202410282660A CN117876572A CN 117876572 A CN117876572 A CN 117876572A CN 202410282660 A CN202410282660 A CN 202410282660A CN 117876572 A CN117876572 A CN 117876572A
- Authority
- CN
- China
- Prior art keywords
- illumination
- voxel
- overlapping surface
- determining
- voxels
- 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.)
- Granted
Links
- 238000005286 illumination Methods 0.000 title claims abstract description 539
- 238000009877 rendering Methods 0.000 title claims abstract description 107
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000003860 storage Methods 0.000 title claims abstract description 41
- 239000000523 sample Substances 0.000 claims abstract description 224
- 238000005070 sampling Methods 0.000 claims abstract description 68
- 238000012545 processing Methods 0.000 claims description 61
- 238000004364 calculation method Methods 0.000 claims description 23
- 238000002347 injection Methods 0.000 claims description 12
- 239000007924 injection Substances 0.000 claims description 12
- 230000005855 radiation Effects 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 4
- 238000010606 normalization Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 abstract description 10
- 238000013500 data storage Methods 0.000 abstract description 6
- 230000000694 effects Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000001914 filtration Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000004927 fusion Effects 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- 239000000243 solution Substances 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005315 distribution function Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Geometry (AREA)
- Image Generation (AREA)
Abstract
本申请实施例公开了一种光照渲染方法、装置、设备及存储介质,属于光照渲染技术领域。该方法包括:基于目标场景内体素的体素特征,确定相邻体素之间的有效交叠面;基于所述目标场景内的光源,确定所述有效交叠面的光照信息;基于所述有效交叠面的所述光照信息,确定光照探针射线的光照采样信息,所述光照探针射线由光照探针发射,所述光照探针射线用于为所述光照探针采集光照信息;基于所述光照探针的所述光照采样信息进行光照渲染,得到所述目标场景对应的光照渲染图像;采用本申请实施例提供的方案,能够减少光照渲染过程中所需的数据存储空间以及计算量,提高光照渲染效率。
Description
技术领域
本申请实施例涉及光照渲染技术领域,特别涉及一种光照渲染方法、装置、设备及存储介质。
背景技术
随着计算机技术的发展,全局光照技术被广泛应用于游戏、影视及虚拟现实等领域,用于实现相关场景中的光影效果。全局光照技术指同时考虑来自光源的直接光照和经由其他物体反射后的间接光照,从而大幅提升场景的真实度的一种高阶渲染技术。
相关技术中,为了能够通过光照探针对场景内的光照信息进行采集,通常会对场景进行体素化处理,并对各个体素的六个面对应的光照信息进行分别存储,进而对各个体素的多面光照信息进行采集。
而经过体素化处理后的场景中各个体素之间均为紧凑排列的,即相邻体素之间存在体素交叠面,因此相关技术中对各个体素的六个面对应的光照信息进行分别存储,则会占用较大存储空间,增大带宽开销。
发明内容
本申请实施例提供了一种光照渲染方法、装置、设备及存储介质,能够减少光照渲染过程中所需的数据存储空间以及计算量,提高光照渲染效率。所述技术方案如下。
一方面,本申请实施例提供了一种光照渲染方法,所述方法包括:
基于目标场景内体素的体素特征,确定相邻体素之间的有效交叠面,所述体素为通过对所述目标场景内的面片网格进行体素化处理得到;
基于所述目标场景内的光源,确定所述有效交叠面的光照信息;
基于所述有效交叠面的所述光照信息,确定光照探针射线的光照采样信息,所述光照探针射线由光照探针发射,所述光照探针射线用于为所述光照探针采集光照信息;
基于所述光照探针的所述光照采样信息进行光照渲染,得到所述目标场景对应的光照渲染图像。
另一方面,本申请实施例提供了一种光照渲染装置,所述装置包括:
第一交叠面确定模块,用于基于目标场景内体素的体素特征,确定相邻体素之间的有效交叠面,所述体素为通过对所述目标场景内的面片网格进行体素化处理得到;
光照注入模块,用于基于所述目标场景内的光源,确定所述有效交叠面的光照信息;
光照采样模块,用于基于所述有效交叠面的所述光照信息,确定光照探针射线的光照采样信息,所述光照探针射线由光照探针发射,所述光照探针射线用于为所述光照探针采集光照信息;
光照渲染模块,用于基于所述光照探针的所述光照采样信息进行光照渲染,得到所述目标场景对应的光照渲染图像。
另一方面,本申请实施例提供了一种计算机设备,所述计算机设备包括处理器和存储器;所述存储器存储有至少一条计算机指令,所述至少一条计算机指令用于被所述处理器执行以实现如上述方面所述的光照渲染方法。
另一方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机指令,所述至少一条计算机指令由处理器加载并执行以实现如上述方面所述的光照渲染方法。
另一方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品包括计算机指令,所述计算机指令存储在计算机可读存储介质中;计算机设备的处理器从所述计算机可读存储介质读取所述计算机指令,所述处理器执行所述计算机指令,使得所述计算机设备执行如上述方面所述的光照渲染方法。
本申请实施例中,在对目标场景内的面片网格进行体素化处理之后,通过确定相邻体素之间的有效交叠面,并根据目标场景内的光源,确定有效交叠面的光照信息,进而根据有效交叠面的光照信息,通过光照探针发射的光照探针射线进行光照采集,得到各个光照探针射线的光照采样信息,最终根据光照探针的光照采样信息进行光照渲染,即可以得到目标场景对应的光照渲染图像。采用本申请实施例提供的方案,在对目标场景进行体素化处理之后,仅针对有效交叠面进行光照注入和光照采样,相较于直接对体素的各个体素面进行光照处理,大大减少了光照渲染过程中所需的数据存储空间以及计算量,提高了光照渲染效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请一个示例性实施例提供的光照渲染方法的流程图;
图2示出了应用本申请实施例提出的光照渲染方法根据直接光照信息生成的光照渲染图像;
图3示出了应用本申请实施例提出的光照渲染方法根据直接光照信息以及间接光照信息生成的光照渲染图像;
图4示出了本申请另一个示例性实施例提供的光照渲染方法的流程图;
图5示出了本申请一个示例性实施例提供的创建目标场景对应的多级空间包围盒的平面示意图;
图6示出了本申请一个示例性实施例提供的存储体素交叠面的数据量对比图;
图7示出了本申请一个示例性实施例提供的多级体素集合中确定有效交叠面的示意图;
图8示出了本申请一个示例性实施例提供的基于存储的各个有效交叠面的反照率属性生成的属性分布图;
图9示出了相关技术中通过光照探针射线进行光照采样的示意图;
图10示出了本申请一个示例性实施例提供的确定光照探针射线的目标有效交叠面的示意图;
图11示出了本申请另一个示例性实施例提供的确定光照探针射线的目标有效交叠面的示意图;
图12示出了本申请一个示例性实施例提供的光照渲染装置的结构框图;
图13示出了本申请一个示例性实施例提供的计算机设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在一些实施例中,本申请实施例的实施环境中可以包括终端和服务器。其中,终端与服务器之间通过通信网络进行数据通信,可选地,通信网络可以是有线网络也可以是无线网络,且该通信网络可以是局域网、城域网以及广域网中的至少一种。
终端是安装有具有光照渲染功能的应用程序的计算机设备。其中,该光照渲染功能可以为终端中原生应用的功能,或者,第三方应用的功能;该终端可以是智能手机、平板电脑、笔记本电脑、台式电脑、智能电视、可穿戴式设备或车载终端等等。
服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。本申请实施例中,服务器可以为具有光照渲染功能的应用的后台服务器。
在一种可能的实施方式下,服务器和终端之间存在数据交互。以本申请实施例提供的光照渲染方法由服务器执行为例,在接收到基于目标场景的光照渲染指令的情况下,终端将目标场景的场景数据发送给服务器,由服务器对目标场景进行体素化处理,并根据目标场景内体素的体素特征,确定相邻体素之间的有效交叠面,进而服务器根据目标场景内的光源,通过光照注入确定各个有效交叠面的光照信息,从而根据有效交叠面的光照信息,确定各个光照探针所发射的光照探针射线的光照采样信息,并根据光照探针的光照采样信息进行光照渲染,得到目标场景对应的光照渲染图像,同时将该光照渲染图像返回给终端。
在一种可能的实施方式中,以本申请实施例提供的光照渲染方法应用于游戏中的虚拟场景搭建为例。为了在游戏场景中模拟真实世界的光照效果,计算机设备首先需要对游戏场景进行体素化处理,从而根据游戏场景内体素的体素特征,确定相邻体素之间的有效交叠面,进而根据游戏场景内的虚拟光源,通过光照注入确定各个有效交叠面的光照信息,并根据有效交叠面的光照信息,确定各个光照探针所发射的光照探针射线的光照采样信息,从而根据光照探针的光照采样信息进行光照渲染,得到游戏场景对应的光照渲染图像,从而计算机设备即可以以该光照渲染图像展示游戏虚拟场景,提高游戏场景中的光照效果,增加游戏场景的真实性。
请参考图1,其示出了本申请一个示例性实施例提供的光照渲染方法的流程图。本实施例以该方法用于计算机设备为例进行说明,该方法包括如下步骤。
步骤101,基于目标场景内体素的体素特征,确定相邻体素之间的有效交叠面,体素为通过对目标场景内的面片网格进行体素化处理得到。
为了实现对目标场景的光照渲染,计算机设备需要确定出图像中各个像素点的光照信息,而考虑到像素点位于二维平面内,目标场景内的光线是在三维空间内经过直射或反射形成光照效果,因此计算机设备首先需要对目标场景内的面片网格进行体素化处理,从而得到密集排布在三维空间内的体素,进而根据三维空间内体素的光照信息,确定二维平面内像素点的光照信息。
可选的,目标场景可以是对真实拍摄场景进行重建得到的,也可以是构建的虚拟场景,比如,游戏世界中的三维虚拟场景等,本申请实施例对此不作限定。其中,面片网格是对目标场景内的物体进行几何化处理得到的,面片网格分布于目标场景内目标物体对应的空间位置处。体素可以被视为三维空间内的像素,是三维空间分割上的最小单位,体素用于表示空间单元,体素具有一定的大小和位置,可以用于存储特定的属性,体素通常为一个立方体。
不同于相关技术中,在对目标场景进行体素化处理之后,即针对体素的各个面进行光照处理并采集光照信息,即使体素的体素面位于物体内部,或体素的体素面位于空气中,也对该体素面进行光照计算处理,并存储各个体素面的信息,从而导致所需的数据存储空间以及数据计算量较大,本申请实施例中,考虑到光照效果是光线经由直射或反射后到达物体表面形成的,即物体内部以及空气中不会产生光照效果,仅光线入射时的物体表面才会产生光照效果,因此为了减少光照渲染过程中的数据处理量,在对目标场景进行体素化处理之后,计算机设备即可以根据体素的体素特征,先确定出相邻体素之间的有效交叠面。
可选的,体素的体素特征可以包括体素坐标、体素体积、体素对应的体素相邻关系等,本申请实施例对此不作限定。其中,有效交叠面两侧的相邻体素其中之一内包含表征物体表面的面片网格,光照效果也仅产生于该面片网格上,有效交叠面对应的光照信息才是光照渲染过程中所需的有效光照信息。
步骤102,基于目标场景内的光源,确定有效交叠面的光照信息。
在确定目标场景内的各个有效交叠面之后,计算机设备即可以根据目标场景内的光源,通过光照计算处理确定有效交叠面的光照信息。
可选的,目标场景内的光源可以是虚拟光源,比如游戏场景内模拟真实世界的太阳光、灯光等等。光照信息可以包括直接光照信息和间接光照信息,其中,直接光照信息用于表征基于直接光源照射产生的光照效果,间接光照信息用于表征基于间接光源照射产生的光照效果。
在一种可能的实施方式中,计算机设备可以根据目标场景内的光源分布,通过遍历各个直接光源,计算出有效交叠面的直接光照信息,进而再根据从物体表面反射产生的间接光源,计算出有效交叠面的间接光照信息。
步骤103,基于有效交叠面的光照信息,确定光照探针射线的光照采样信息,光照探针射线由光照探针发射,光照探针射线用于为光照探针采集光照信息。
在一些实施例中,在得到各个有效交叠面的光照信息之后,即确定目标场景在三维空间内的光照信息,进而为了将三维空间内的光照信息转换为二维屏幕空间内的光照信息,计算机设备可以通过在屏幕空间内设置光照探针的方式,通过光照探针发射光照探针射线,利用光照探针射线为光照探针采集光照信息。
可选的,光照探针可以是预先放置在目标场景中的光照探测器,光照探针可以理解为一个个的三维感应点,该感应点可以感应穿过其的光照数据,能够用于采集目标场景中包括间接光照的高质量光照数据。
在一些实施例中,光照探针为球体。相应地,多个光照探针射线在光照探针上的起点可以为光照探针的中心点,或者,多个光照探针射线的起点在光照探针表面上均匀分布,分别位于光照探针表面的多个位置,多个位置可以是正上方、正下方、正右方、正左方等。多个光照探针射线的方向可以根据需要进行设定并更改,本申请实施例对此不作限定。
在一种可能的实施方式中,在发射光照探针射线之后,计算机设备即可以先确定光照探针射线对应的有效交叠面,从而基于有效交叠面的光照信息,利用光照探针射线对其进行采样,得到光照探针射线的光照采样信息。其中,光照采样信息既可以包括直接光照采样信息,还可以包括间接光照采样信息。
步骤104,基于光照探针的光照采样信息进行光照渲染,得到目标场景对应的光照渲染图像。
在一些实施例中,在得到各条光照探针射线的光照采样信息之后,计算机设备即可以对从同一光照探针发出的多条光照探针射线的光照采样信息进行加权融合,从而得到光照探针对应的光照采样信息。
进一步的,计算机设备根据各个光照探针的光照采样信息,通过分别进行滤波、光照插值等处理,即可以确定屏幕空间内各个像素点的光照信息,从而通过光照渲染得到目标场景对应的光照渲染图像。
可选的,计算机设备可以仅根据直接光照信息,通过光照渲染得到直接光照渲染图像,用于预览直接光照效果。示意性的,如图2所示,其示出了应用本申请实施例提出的光照渲染方法根据直接光照信息生成的光照渲染图像;也可以仅根据间接光照信息,通过光照渲染得到间接光照渲染图像,用于预览间接光照效果;还可以根据直接光照信息以及间接光照信息,同时进行光照渲染,得到完整的光照渲染图像,用于预览整体光照效果,示意性的,如图3所示,其示出了应用本申请实施例提出的光照渲染方法根据直接光照信息以及间接光照信息生成的光照渲染图像。
综上所述,本申请实施例中,在对目标场景内的面片网格进行体素化处理之后,通过确定相邻体素之间的有效交叠面,并根据目标场景内的光源,确定有效交叠面的光照信息,进而根据有效交叠面的光照信息,通过光照探针发射的光照探针射线进行光照采集,得到各个光照探针射线的光照采样信息,最终根据光照探针的光照采样信息进行光照渲染,即可以得到目标场景对应的光照渲染图像。采用本申请实施例提供的方案,在对目标场景进行体素化处理之后,仅针对有效交叠面进行光照注入和光照采样,相较于直接对体素的各个体素面进行光照处理,大大减少了光照渲染过程中所需的数据存储空间以及计算量,提高了光照渲染效率。
在一些实施例中,为了确定各个有效交叠面的光照信息,计算机设备还需要先确定有效交叠面的交叠面属性,从而基于该交叠面属性进行光照计算处理,并且在光照信息采样过程中,为了提高光照信息采样的准确性,计算机设备还需要确定各个光照探针射线对应的目标有效交叠面,从而进行光照信息采集,下面的实施例将对上述过程进行具体说明。
请参考图4,其示出了本申请另一个示例性实施例提供的光照渲染方法的流程图,本实施例以该方法用于计算机设备为例进行说明,该方法包括如下步骤。
步骤401,对目标场景内的面片网格进行体素化处理,得到目标场景的体素集合。
在一些实施例中,为了对目标场景进行光照渲染,计算机设备可以先构建目标场景对应的三维虚拟场景,该三维虚拟场景中通过面片网格表示场景内的三维物体,进一步的,为了在三维虚拟场景中通过虚拟光线模拟真实场景内的光照效果,计算机设备还需要对目标场景内的面片网格进行体素化处理,从而得到目标场景的体素集合。
关于体素化处理的方式,在一种可能的实施方式中,计算机设备可以先基于目标场景以及相机位置构建空间坐标系,并生成目标场景对应的空间包围盒,进而通过对空间包围盒进行体素划分,得到在空间包围盒内密集排布的体素,即体素集合。其中,空间坐标系的坐标原点可以是相机中心,空间包围盒的中心为坐标原点,即相机中心,体素集合内各个体素的体积相同,且相邻体素之间的相邻面紧密贴合。
可选的,考虑到在通过虚拟相机对目标场景进行拍摄时,相机视角范围呈圆锥状,不同相机距离处所需呈现的场景细节不同,与相机距离较近的物体细节相对较多,而与相机距离较远的物体细节则相对较少,因此为了减少计算量,计算机设备可以根据目标场景内物体与相机之间的距离,进行多级体素化处理。以相机为中心,对距离相机较近的物体进行高分辨率的体素化处理,对距离相机较远的物体进行低分辨率的体素化处理,即与相机距离较近的空间范围内体素分布更加密集,与相机距离较远的空间范围内体素分布相对稀疏。
在一种可能的实施方式中,计算机设备可以根据目标场景以及相机位置,以相机中心为坐标原点构建空间坐标系,进而以坐标原点为中心构建目标场景的至少一级空间包围盒,且空间包围盒的包围盒体积逐级递增,进而计算机设备分别沿坐标轴方向对至少一级空间包围盒内的面片网格进行体素化处理,从而得到目标场景的至少一级体素集合。
其中,空间包围盒为立方体,空间包围盒对应的体素集合内的体素大小和空间包围盒的包围盒体积呈正相关关系。示意性的,如图5所示,以二维图示为例,计算机设备基于目标场景,以相机中心为包围盒中心,生成两级空间包围盒,其中,第一级空间包围盒501中的体素划分粒度更细,体素体积更小,第二级空间包围盒502中体素划分粒度更粗,体素体积更大,并且第一级空间包围盒501和第二级空间包围盒502的包围盒中心相同,第一级空间包围盒501在第二级空间包围盒502内。
步骤402,对体素集合中相邻体素之间的体素交叠面进行存储,体素交叠面为相邻体素的贴合面。
不同于相关技术中,在得到目标场景的体素集合后,对各个体素的六个面均进行存储,即相邻体素之间的贴合面沿坐标轴的正负方向存储两次,导致数据存储空间较大,本申请实施例中,计算机设备沿坐标轴正方向,遍历一次体素集合内的各个体素,将相邻体素的贴合面确定为体素交叠面,从而对体素集合中的体素交叠面进行存储,即本申请实施例中将原本从正反两面分别存储一次体素贴合面调整为仅从正面存储一次体素交叠面。
示意性的,如图6所示,相关技术中在体素化处理之后,即对第一体素603的六个面进行分别存储,即一个体素需要占用六个面的存储空间,而本申请实施例中,对于第二体素601和第三体素602之间的体素交叠面仅存储一次,即仅一个体素相当于占用三个面的存储空间,使得体素交叠面的存储空间减少将近50%。
可选的,计算机设备可以通过创建纹理贴图,利用纹理贴图存储各个体素交叠面的交叠面信息。而由于本申请实施例中,计算机设备仅沿坐标轴正方向遍历体素并确定有效交叠面,因此计算机设备可以通过创建各个坐标轴方向的纹理贴图,利用纹理贴图分别存储对应坐标轴方向上体素交叠面的交叠面信息。
示意性的,如图6所示,计算机设备创建三张纹理贴图,分别对应X轴、Y轴以及Z轴方向,从而对于第二体素601和第三体素602之间的体素交叠面的交叠面信息,即存储至X轴对应的纹理贴图中。
步骤403,遍历体素集合中的体素,基于体素与面片网格的空间位置关系,确定有值体素以及无值体素,有值体素中包含面片网格的网格顶点,无值体素中不包含面片网格的网格顶点。
在一些实施例中,考虑到光照效果产生于物体表面,物体内部以及空气中不会产生光照效果,因此为了减少光照渲染过程中的数据处理量,在存储体素交叠面之后,计算机设备还需要进一步对体素交叠面进行筛选,确定有效交叠面,而为了确定体素交叠面两侧的相邻体素中是否存在表征物体表面的面片网格,计算机设备首先需要对体素集合内的体素进行划分。
可选的,根据体素内部是否存在面片网格的网格顶点,可以将体素划分为有值体素和无值体素。其中,有值体素的体素内部包含面片网格的网格顶点,即有值体素位于目标场景内目标物体附近,比如物体表面附近、物体内部等;无值体素的体素内部则不包含面片网格的网格顶点,即无值体素位于目标场景内不存在目标物体的空间内,比如空气中。
在一种可能的实施方式中,计算机设备通过依次遍历体素集合中的体素,根据体素与面片网格之间的空间位置关系,判断体素中是否包含面片网格的网格顶点,包括体素内部是否存在网格顶点以及体素表面是否存在网格顶点,从而将包含网格顶点的体素确定为有值体素,将不包含网格顶点的体素确定为无值体素。
步骤404,在体素交叠面两侧的相邻体素分别为有值体素和无值体素的情况下,将体素交叠面确定为有效交叠面。
在一些实施例中,在对体素集合内的体素进行划分之后,计算机设备即可以通过遍历各个体素交叠面,判断体素交叠面的两侧体素是否分别为有值体素和无值体素。在体素交叠面的两侧体素均为有值体素的情况下,即表示该体素交叠面位于物体内部,无需用于光照渲染计算;在体素交叠面的两侧体素均为无值体素的情况下,即表示该体素交叠面位于空气中,也无需用于光照渲染计算;在体素交叠面的两侧体素分别为有值体素和无值体素的情况下,即表示该体素交叠面位于物体表面附近,需要用于光照渲染计算,即为有效交叠面,且表征物体表面的面片网格位于有效交叠面对应的有值体素内。
可选的,在生成目标场景的多级体素集合的情况下,由于空间包围盒的体积逐级递增,不同级别的体素之间存在体素重合,不同级别的体素之间的体素交叠面也会存在交叠,因此为了避免对不同级别的有效交叠面进行重复光照渲染计算,计算机设备还可以对不同级别的体素之间的体素交叠面进行筛选。
在一种可能的实施方式中,对于第一级体素集合内的体素交叠面,由于第一级体素集合内的体素分布较密集,且分辨率较高,因此计算机设备可以直接根据体素交叠面两侧的相邻体素是否分别为有值体素和无值体素,判断体素交叠面是否为有效交叠面,从而在体素交叠面两侧的相邻体素分别为有值体素和无值体素的情况下,将该体素交叠面确定为有效交叠面。而对于第n+1级(n≥1)体素集合内的体素交叠面,除了需要判断体素交叠面两侧的相邻体素是否分别为有值体素和无值体素,计算机设备还需要判断该体素交叠面是否与第1至n级体素集合内的有效交叠面存在交叠,从而在体素交叠面两侧的相邻体素分别为有值体素和无值体素,且体素交叠面与第1至n级体素集合内的有效交叠面不存在交叠的情况下,将体素交叠面确定为有效交叠面。
示意性的,如图7所示,在第二级空间包围盒内存在有值体素701和无值体素702,且有值体素701和无值体素702为相邻体素,存在体素交叠面703,而由于体素交叠面703和第一级空间包围盒内的有效交叠面存在交叠,因此在遍历第二级包围盒内的体素交叠面时,计算机设备则不将该体素交叠面703重复确定为有效交叠面。
在一些实施例中,在确定目标场景内的有效交叠面之后,为满足后续光照渲染计算,计算机设备还需要确定各个有效交叠面的交叠面属性,该交叠面属性可以包括法线(Normal)、反照率(Albedo)等用于光照计算的基本属性。
关于确定交叠面属性的方式,在一种可能的实施方式中,计算机设备可以沿坐标轴方向分别遍历目标场景内的有效交叠面,并根据有效交叠面和网格顶点的位置坐标,确定与有效交叠面距离最近的面片网格的网格顶点,从而将该网格顶点的顶点属性确定为有效交叠面的交叠面属性,同时存储至对应的纹理贴图中。
示意性的,如图8所示,其示出了本申请一个示例性实施例提供的基于存储的各个有效交叠面的反照率属性生成的属性分布图。
步骤405,对于各个有效交叠面,遍历目标场景内的光源,确定有效交叠面的有效光源。
在一些实施例中,在确定有效交叠面之后,计算机设备即可以通过模拟真实场景内的光照效果,计算各个有效交叠面的光照信息,从而用于二维屏幕空间内的光照渲染。
可选的,考虑到目标场景内可能存在多个光源,且不同方向的光源产生的光照效果不同,因此对于各个有效交叠面,计算机设备可以先遍历目标场景内的光源,确定出该有效交叠面对应的有效光源,该有效光源是指能够在有效交叠面产生光照效果的直接光源。
在一种可能的实施方式中,在对有效交叠面进行光照注入之前,计算机设备还可以为目标场景内的各个有效交叠面添加索引,并统一存储至一个给定的缓冲区,从而在光照注入阶段,通过分线程组的方式进行光照渲染计算,以提高光照渲染计算效率。
步骤406,基于有效光源以及有效交叠面的交叠面属性,通过直接光照计算得到有效交叠面的直接光照信息。
在一些实施例中,在确定有效交叠面对应的有效光源之后,计算机设备即可以根据各个有效光源的光源属性,以及有效交叠面的交叠面属性,通过直接光照计算得到有效交叠面的直接光照信息。
步骤407,基于从物体表面反射产生的间接光源以及有效交叠面的交叠面属性,通过间接光照计算得到有效交叠面的间接光照信息。
可选的,光照效果的形成除了和直接光源有关,还和间接光源有关。在一些实施例中,计算机设备还可以确定各个有效交叠面对应的从物体表面反射产生的间接光源,进而根据各个间接光源的光源属性,以及有效交叠面的交叠面属性,通过间接光照计算得到有效交叠面的间接光照信息。
步骤408,基于屏幕空间划分结果,创建屏幕空间内各个划分区域的光照探针,并通过光照探针发射至少一条光照探针射线。
在一些实施例中,在确定各个有效交叠面的光照信息之后,即完成对真实场景内的光照效果模拟,进而为了将三维空间内的光照信息转换为二维屏幕空间内的光照信息,计算机设备还可以通过在屏幕空间内设置光照探针,利用光照探针发射光照探针射线进行光照信息采集。
在一种可能的实施方式中,计算机设备可以根据屏幕空间的分辨率,对屏幕空间进行划分,从而根据屏幕空间划分结果,创建屏幕空间内各个划分区域的光照探针。可选的,屏幕空间的划分密度以及光照探针的数量可以根据需要进行设定并更改,且光照探针可以是均匀分布,也可以是自适应分布,本申请实施例对此不作限定。
在创建光照探针之后,计算机设备即需要为各个光照探针生成至少一条光照探针射线,从而通过发射光照探针射线进行光照信息采样。
可选的,计算机设备可以根据重要性采样的方式生成光照探针射线,其中,重要性采样的方式包括但不限于cos-weighted(一种重要性采样方法)、brdf(bidirectionalreflectance distribution function,双向反射分布函数)和History Lighting(历史光照)方法,本申请实施例在此不作赘述。
步骤409,在光照探针射线命中屏幕像素的情况下,确定光照探针射线的命中体素。
在一些实施例中,在发射光照探针射线之后,计算机设备可以采用SDF(SignedDistance Field,有符号距离场)或者硬件光线追踪的方式确定各个光线探针射线对应的命中像素,并在光照探针射线命中屏幕像素的情况下,根据屏幕像素的坐标确定光照探针射线的命中体素。
步骤410,基于光照探针射线的入射方向以及命中体素,确定光照探针射线的目标有效交叠面。
不同于相关技术中,在确定命中体素之后,即根据射线入射方向从命中体素的六个面中选择三个面进行光照信息采集,并根据三个面的法线与射线的相似程度作为权重进行加权混合,以确定射线的光照采样信息,导致采样次数较多,且可能存在采样错误。本申请实施例中,在确定命中体素之后,计算机设备根据光照探针射线的入射方向以及命中体素,仅确定光照探针射线对应的单个目标有效交叠面,从而对该目标有效交叠面进行光照信息采样。
示意性的,如图9所示,其示出了相关技术中通过光照探针射线进行光照采样的示意图。以光照探针射线903从点901发射为例,光照探针射线903对应命中体素902,则相关技术中需要分别采样体素902的左侧面、上侧面以及后侧面的法线信息以及光照信息,即需要对命中体素进行六次数据采样。
在一种可能的实施方式中,计算机设备根据光照探针射线在命中体素内的入射点以及入射方向,对光照探针射线进行反向处理,并将经过反向处理的光照探针射线分别投影至各个坐标轴,得到该光照探针射线在各个坐标轴方向上的第一射线分量,进而根据入射点以及第一射线分量,确定光照探针射线在各个坐标轴方向上的第一步进时长,该第一步进时长即表征光照探针射线从体素交叠面进入命中体素之后到达入射点的时长,从而计算机设备即可以根据光照探针射线在各个坐标轴方向上的第一步进时长,确定光照探针射线的目标有效交叠面。
其中,关于确定第一步进时长的方式,在一种可能的实施方式中,计算机设备首先确定三个第一射线分量在命中体素中分别所指向的体素交叠面,进而根据入射点的空间坐标以及体素交叠面的空间坐标,计算入射点与体素交叠面之间的射线距离,同时对第一射线分量进行归一化处理,得到经过归一化处理后的第一射线分量,从而利用射线距离除以经过归一化处理后的第一射线分量,即可以确定光照探针射线在各个坐标轴方向上的第一步进时长。
示意性的,如图10所示,以二维平面图示意,光照探针射线1002对应命中体素1001,且在命中体素1001内有入射点1003,从而计算机设备基于入射点1003,对经过反向处理的光照探针射线1002进行投影,得到第一射线分量1004,从而计算机设备分别计算入射点1003到各个体素交叠面的射线距离,并对第一射线分量1004进行归一化处理,进而以射线距离除以经过归一化处理的第一射线分量即可以得到各个坐标轴方向上的第一步进时长。
其中,关于确定目标有效交叠面的方式,在一种可能的实施方式中,在得到光照探针射线在各个坐标轴方向上的第一步进时长之后,计算机设备即可以将最短第一步进时长对应的第一射线分量所指向的体素交叠面确定为待采样交叠面,即光照探针射线是从待采样交叠面入射。进一步的,考虑到光照探针射线的入射角度具有多样性,在入射角度比较倾斜的情况下,通过上述方式确定的待采样交叠面可能为无效交叠面,即无法采样得到光照信息,因此为了保证光照采样信息的质量,在确定待采样交叠面之后,计算机设备还需要先判断待采样交叠面是否为有效交叠面,只有在待采样交叠面为有效交叠面的情况下,计算机设备才会将该待采样交叠面确定为光照探针射线的目标有效交叠面。
在待采样交叠面不是有效交叠面的情况下,即表示光照探针射线的入射角度较倾斜,因此计算机设备需要重新确定目标有效交叠面。在一种可能的实施方式中,由于待采样交叠面对应的第一步进时长最短,即光照探针射线从待采样交叠面入射,因此计算机设备可以首先确定光照探针射线与待采样交叠面之间的射线交点,进而通过将射线交点视为待采样交叠面另一侧体素的入射点,在待采样交叠面另一侧体素中重复上述步骤。根据射线交点以及光照探针射线的入射方向,重新对光照探针射线进行反向处理,并分别投影至各个坐标轴,得到光照探针射线在各个坐标轴方向上的第二射线分量,进而根据射线交点以及第二射线分量,确定光照探针射线在各个坐标轴方向上的第二步进时长,并根据第二步进时长,将最短第二步进时长对应的第二射线分量所指向的体素交叠面确定为新的待采样交叠面,在该待采样交叠面为有效交叠面的情况下,即可以将该待采样交叠面确定为光照探针射线的目标有效交叠面。而在待采样交叠面仍然不是有效交叠面的情况下,计算机设备即需要继续重复上述步骤,直至所确定的待采样交叠面为有效交叠面。
示意性的,如图11所示,以二维平面图示意,光照探针射线1104对应命中体素1103,命中体素1103内存在入射点1101,但光照探针射线1104的入射方向较倾斜,经过上述步骤确定得到的待采样交叠面1106,而待采样交叠面1106为无效交叠面,因此计算机设备即需要确定光照探针射线1104与待采样交叠面1106之间的射线交点1102,并基于射线交点1102以及待采样交叠面1106另一侧的相邻体素1105,重新执行上述步骤,直至确定光照探针射线1104对应的目标有效交叠面。
步骤411,通过光照探针射线采集目标有效交叠面的光照信息,得到光照探针射线的光照采样信息。
在一些实施例中,在确定光照探针射线对应的目标有效交叠面之后,计算机设备即可以通过光照探针射线采集目标有效交叠面的光照信息,从而得到光照探针射线的光照采样信息,该光照采样信息包括直接光照采样信息和间接光照采样信息。
进而,在完成各个光照探针射线的光照采集之后,计算机设备通过对从同一光照探针发射的多条光照探针射线的光照采样信息进行加权融合,即可以得到各个光照探针对应的光照采样信息。其中,光照探针射线对应的采样权重可以根据需要进行设定并更改,本申请实施例对此不作限定。
步骤412,基于光照探针的光照采样信息进行光照渲染,得到目标场景对应的光照渲染图像。
在一些实施例中,在确定各个光照探针的光照采样信息之后,计算机设备即可以通过对屏幕空间内的像素进行光照插值,确定各个像素点的光照信息,进而根据插值得到的光照信息进行光照渲染,即可以得到目标场景对应的光照渲染图像。
在一种可能的实施方式中,在进行光照插值之前,计算机设备还可以对光照探针进行时空滤波处理,时空滤波包括在时间上和空间上的滤波,以减少噪点加速收敛。在进行光照插值之后,计算机设备还可以对插值得到的光照信息进行去噪处理,以提高光照渲染质量。
上述实施例中,在对目标场景进行体素化处理之后,通过沿坐标轴方向对体素进行遍历,确定相邻体素之间的体素交叠面,从而对各个体素交叠面进行存储,即相邻体素之间的两个相邻面共用一个面的存储空间,相当于一个体素仅需存储三个面,相较于直接存储各个体素的六个面,大大减少了体素存储空间。
并且在光照注入阶段,根据相邻体素的体素特征,从体素交叠面中筛选确定出有效交叠面,从而仅对有效交叠面进行光照计算处理,避免了对无效交叠面进行光照计算,减少了光照计算量,提高了光照计算效率。
此外,在利用光照探针射线进行光照信息采集时,通过对光照探针射线进行反向处理和投影处理,并根据各个射线分量对应的步进时长直接确定光照探针射线对应的目标有效交叠面,从而仅需对目标有效交叠面的光照信息进行采样,相较于对命中体素的三个面分别采样法线和光照信息,大大减少了采样数据量,提高了光照信息采样效率和准确性。
请参考图12,其示出了本申请一个示例性实施例提供的光照渲染装置的结构框图,该装置包括以下模块。
第一交叠面确定模块1201,用于基于目标场景内体素的体素特征,确定相邻体素之间的有效交叠面,所述体素为通过对所述目标场景内的面片网格进行体素化处理得到;
光照注入模块1202,用于基于所述目标场景内的光源,确定所述有效交叠面的光照信息;
光照采样模块1203,用于基于所述有效交叠面的所述光照信息,确定光照探针射线的光照采样信息,所述光照探针射线由光照探针发射,所述光照探针射线用于为所述光照探针采集光照信息;
光照渲染模块1204,用于基于所述光照探针的所述光照采样信息进行光照渲染,得到所述目标场景对应的光照渲染图像。
可选的,所述第一交叠面确定模块1201,包括:
体素化处理单元,用于对所述目标场景内的面片网格进行体素化处理,得到所述目标场景的体素集合;
交叠面存储单元,用于对所述体素集合中相邻体素之间的体素交叠面进行存储,所述体素交叠面为所述相邻体素的贴合面;
体素划分单元,用于遍历所述体素集合中的所述体素,基于所述体素与所述面片网格的空间位置关系,确定有值体素以及无值体素,所述有值体素中包含所述面片网格的网格顶点,所述无值体素中不包含所述面片网格的网格顶点;
第一交叠面确定单元,用于在所述体素交叠面两侧的相邻体素分别为所述有值体素和所述无值体素的情况下,将所述体素交叠面确定为所述有效交叠面。
可选的,所述体素化处理单元,用于:
基于所述目标场景以及相机位置,构建空间坐标系以及所述目标场景的至少一级空间包围盒,且所述空间包围盒的包围盒体积逐级递增;
分别沿坐标轴方向对所述至少一级空间包围盒内的所述面片网格进行体素化处理,得到所述目标场景的至少一级体素集合,所述体素集合内的体素大小和所述空间包围盒的包围盒体积呈正相关关系。
可选的,所述装置还包括:
贴图创建模块,用于创建各个坐标轴方向的纹理贴图,所述纹理贴图用于存储所述坐标轴方向上所述体素交叠面的交叠面信息;
顶点确定模块,用于沿所述坐标轴方向分别遍历所述目标场景内的所述有效交叠面,确定与所述有效交叠面距离最近的所述面片网格的网格顶点;
属性确定模块,用于将所述网格顶点的顶点属性确定为所述有效交叠面的交叠面属性,并存储至所述纹理贴图。
可选的,所述第一交叠面确定单元,用于:
对于第一级体素集合内的所述体素交叠面,在所述体素交叠面两侧的相邻体素分别为所述有值体素和所述无值体素的情况下,将所述体素交叠面确定为所述有效交叠面;
对于第n+1级体素集合内的所述体素交叠面,在所述体素交叠面两侧的相邻体素分别为所述有值体素和所述无值体素,且所述体素交叠面与第1至n级体素集合内的有效交叠面不存在交叠的情况下,将所述体素交叠面确定为所述有效交叠面,n大于等于1。
可选的,所述光照采样模块1203,包括:
探针创建单元,用于基于屏幕空间划分结果,创建屏幕空间内各个划分区域的光照探针,并通过所述光照探针发射至少一条所述光照探针射线;
体素确定单元,用于在所述光照探针射线命中屏幕像素的情况下,确定所述光照探针射线的命中体素;
第二交叠面确定单元,用于基于所述光照探针射线的入射方向以及所述命中体素,确定所述光照探针射线的目标有效交叠面;
光照采样单元,用于通过所述光照探针射线采集所述目标有效交叠面的光照信息,得到所述光照探针射线的所述光照采样信息。
可选的,所述第二交叠面确定单元,用于:
基于所述光照探针射线在所述命中体素内的入射点以及所述入射方向,对所述光照探针射线进行反向处理;
将经过反向处理的所述光照探针射线分别投影至各个坐标轴,得到所述光照探针射线在各个坐标轴方向上的第一射线分量;
基于所述入射点以及所述第一射线分量,确定所述光照探针射线在各个坐标轴方向上的第一步进时长,所述第一步进时长表征所述光照探针射线从体素交叠面进入所述命中体素之后到达所述入射点的时长;
基于所述光照探针射线在各个坐标轴方向上的第一步进时长,确定所述光照探针射线的所述目标有效交叠面。
可选的,所述第二交叠面确定单元,还用于:
确定所述第一射线分量在所述命中体素中所指向的体素交叠面;
计算所述入射点与所述体素交叠面之间的射线距离;
基于所述射线距离以及经过归一化处理后的所述第一射线分量,确定所述光照探针射线在各个坐标轴方向上的所述第一步进时长。
可选的,所述第二交叠面确定单元,还用于:
基于所述光照探针射线在各个坐标轴方向上的所述第一步进时长,将最短第一步进时长对应的所述第一射线分量所指向的体素交叠面确定为待采样交叠面;
在所述待采样交叠面为所述有效交叠面的情况下,将所述待采样交叠面确定为所述光照探针射线的所述目标有效交叠面。
可选的,所述装置还包括:
交点确定模块,用于在所述待采样交叠面不是所述有效交叠面的情况下,确定所述光照探针射线与所述待采样交叠面之间的射线交点;
射线投影模块,用于基于所述射线交点以及所述入射方向,对所述光照探针射线进行反向处理并分别投影至各个坐标轴,得到所述光照探针射线在各个坐标轴方向上的第二射线分量;
时长确定模块,用于基于所述射线交点以及所述第二射线分量,确定所述光照探针射线在各个坐标轴方向上的第二步进时长;
第二交叠面确定模块,用于基于所述光照探针射线在各个坐标轴方向上的第二步进时长,确定所述光照探针射线的所述目标有效交叠面。
可选的,所述光照注入模块1202,用于:
对于各个有效交叠面,遍历所述目标场景内的所述光源,确定所述有效交叠面的有效光源;
基于所述有效光源以及所述有效交叠面的交叠面属性,通过直接光照计算得到所述有效交叠面的直接光照信息;
基于从物体表面反射产生的间接光源以及所述有效交叠面的交叠面属性,通过间接光照计算得到所述有效交叠面的间接光照信息。
综上所述,本申请实施例中,在对目标场景内的面片网格进行体素化处理之后,通过确定相邻体素之间的有效交叠面,并根据目标场景内的光源,确定有效交叠面的光照信息,进而根据有效交叠面的光照信息,通过光照探针发射的光照探针射线进行光照采集,得到各个光照探针射线的光照采样信息,最终根据光照探针的光照采样信息进行光照渲染,即可以得到目标场景对应的光照渲染图像。采用本申请实施例提供的方案,在对目标场景进行体素化处理之后,仅针对有效交叠面进行光照注入和光照采样,相较于直接对体素的各个体素面进行光照处理,大大减少了光照渲染过程中所需的数据存储空间以及计算量,提高了光照渲染效率。
需要说明的是:上述实施例提供的装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其实现过程详见方法实施例,这里不再赘述。
请参考图13,其示出了本申请一个示例性实施例提供的计算机设备的结构示意图。具体来讲:所述计算机设备1300包括中央处理单元(Central Processing Unit,CPU)1301、包括随机存取存储器1302和只读存储器1303的系统存储器1304,以及连接系统存储器1304和中央处理单元1301的系统总线1305。所述计算机设备1300还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(Input/Output,I/O系统)1306,和用于存储操作系统1313、应用程序1314和其他程序模块1315的大容量存储设备1307。
所述基本输入/输出系统1306包括有用于显示信息的显示器1308和用于用户输入信息的诸如鼠标、键盘之类的输入设备1309。其中所述显示器1308和输入设备1309都通过连接到系统总线1305的输入输出控制器1310连接到中央处理单元1301。所述基本输入/输出系统1306还可以包括输入输出控制器1310以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1310还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备1307通过连接到系统总线1305的大容量存储控制器(未示出)连接到中央处理单元1301。所述大容量存储设备1307及其相关联的计算机可读介质为计算机设备1300提供非易失性存储。也就是说,所述大容量存储设备1307可以包括诸如硬盘或者驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括随机存取记忆体(RAM,Random Access Memory)、只读存储器(ROM,Read Only Memory)、闪存或其他固态存储其技术,只读光盘(Compact Disc Read-Only Memory,CD-ROM)、数字通用光盘(Digital Versatile Disc,DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器1304和大容量存储设备1307可以统称为存储器。
存储器存储有一个或多个程序,一个或多个程序被配置成由一个或多个中央处理单元1301执行,一个或多个程序包含用于实现上述方法的指令,中央处理单元1301执行该一个或多个程序实现上述各个方法实施例提供的光照渲染方法。
根据本申请的各种实施例,所述计算机设备1300还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备1300可以通过连接在所述系统总线1305上的网络接口单元1312连接到网络1311,或者说,也可以使用网络接口单元1312来连接到其他类型的网络或远程计算机系统(未示出)。
本申请实施例还提供一种计算机可读存储介质,该可读存储介质中存储有至少一条计算机指令,至少一条计算机指令由处理器加载并执行以实现上述实施例所述的光照渲染方法。
可选地,该计算机可读存储介质可以包括:ROM、RAM、固态硬盘(SSD,Solid StateDrives)或光盘等。其中,RAM可以包括电阻式随机存取记忆体(ReRAM,Resistance RandomAccess Memory)和动态随机存取存储器(DRAM,Dynamic Random Access Memory)。
本申请实施例提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例所述的光照渲染方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选的实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (15)
1.一种光照渲染方法,其特征在于,所述方法包括:
基于目标场景内体素的体素特征,确定相邻体素之间的有效交叠面,所述体素为通过对所述目标场景内的面片网格进行体素化处理得到;
基于所述目标场景内的光源,确定所述有效交叠面的光照信息;
基于所述有效交叠面的所述光照信息,确定光照探针射线的光照采样信息,所述光照探针射线由光照探针发射,所述光照探针射线用于为所述光照探针采集光照信息;
基于所述光照探针的所述光照采样信息进行光照渲染,得到所述目标场景对应的光照渲染图像。
2.根据权利要求1所述的方法,其特征在于,所述基于目标场景内体素的体素特征,确定相邻体素之间的有效交叠面,包括:
对所述目标场景内的面片网格进行体素化处理,得到所述目标场景的体素集合;
对所述体素集合中相邻体素之间的体素交叠面进行存储,所述体素交叠面为所述相邻体素的贴合面;
遍历所述体素集合中的所述体素,基于所述体素与所述面片网格的空间位置关系,确定有值体素以及无值体素,所述有值体素中包含所述面片网格的网格顶点,所述无值体素中不包含所述面片网格的网格顶点;
在所述体素交叠面两侧的相邻体素分别为所述有值体素和所述无值体素的情况下,将所述体素交叠面确定为所述有效交叠面。
3.根据权利要求2所述的方法,其特征在于,所述对所述目标场景内的面片网格进行体素化处理,得到所述目标场景的体素集合,包括:
基于所述目标场景以及相机位置,构建空间坐标系以及所述目标场景的至少一级空间包围盒,且所述空间包围盒的包围盒体积逐级递增;
分别沿坐标轴方向对所述至少一级空间包围盒内的所述面片网格进行体素化处理,得到所述目标场景的至少一级体素集合,所述体素集合内的体素大小和所述空间包围盒的包围盒体积呈正相关关系。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
创建各个坐标轴方向的纹理贴图,所述纹理贴图用于存储所述坐标轴方向上所述体素交叠面的交叠面信息;
沿所述坐标轴方向分别遍历所述目标场景内的所述有效交叠面,确定与所述有效交叠面距离最近的所述面片网格的网格顶点;
将所述网格顶点的顶点属性确定为所述有效交叠面的交叠面属性,并存储至所述纹理贴图。
5.根据权利要求3所述的方法,其特征在于,所述在所述体素交叠面两侧的相邻体素分别为所述有值体素和所述无值体素的情况下,将所述体素交叠面确定为所述有效交叠面,包括:
对于第一级体素集合内的所述体素交叠面,在所述体素交叠面两侧的相邻体素分别为所述有值体素和所述无值体素的情况下,将所述体素交叠面确定为所述有效交叠面;
对于第n+1级体素集合内的所述体素交叠面,在所述体素交叠面两侧的相邻体素分别为所述有值体素和所述无值体素,且所述体素交叠面与第1至n级体素集合内的有效交叠面不存在交叠的情况下,将所述体素交叠面确定为所述有效交叠面,n大于等于1。
6.根据权利要求1所述的方法,其特征在于,所述基于所述有效交叠面的所述光照信息,确定光照探针射线的光照采样信息,包括:
基于屏幕空间划分结果,创建屏幕空间内各个划分区域的光照探针,并通过所述光照探针发射至少一条所述光照探针射线;
在所述光照探针射线命中屏幕像素的情况下,确定所述光照探针射线的命中体素;
基于所述光照探针射线的入射方向以及所述命中体素,确定所述光照探针射线的目标有效交叠面;
通过所述光照探针射线采集所述目标有效交叠面的光照信息,得到所述光照探针射线的所述光照采样信息。
7.根据权利要求6所述的方法,其特征在于,所述基于所述光照探针射线的入射方向以及所述命中体素,确定所述光照探针射线的目标有效交叠面,包括:
基于所述光照探针射线在所述命中体素内的入射点以及所述入射方向,对所述光照探针射线进行反向处理;
将经过反向处理的所述光照探针射线分别投影至各个坐标轴,得到所述光照探针射线在各个坐标轴方向上的第一射线分量;
基于所述入射点以及所述第一射线分量,确定所述光照探针射线在各个坐标轴方向上的第一步进时长,所述第一步进时长表征所述光照探针射线从体素交叠面进入所述命中体素之后到达所述入射点的时长;
基于所述光照探针射线在各个坐标轴方向上的第一步进时长,确定所述光照探针射线的所述目标有效交叠面。
8.根据权利要求7所述的方法,其特征在于,所述基于所述入射点以及所述第一射线分量,确定所述光照探针射线在各个坐标轴方向上的第一步进时长,包括:
确定所述第一射线分量在所述命中体素中所指向的体素交叠面;
计算所述入射点与所述体素交叠面之间的射线距离;
基于所述射线距离以及经过归一化处理后的所述第一射线分量,确定所述光照探针射线在各个坐标轴方向上的所述第一步进时长。
9.根据权利要求7所述的方法,其特征在于,所述基于所述光照探针射线在各个坐标轴方向上的第一步进时长,确定所述光照探针射线的所述目标有效交叠面,包括:
基于所述光照探针射线在各个坐标轴方向上的所述第一步进时长,将最短第一步进时长对应的所述第一射线分量所指向的体素交叠面确定为待采样交叠面;
在所述待采样交叠面为所述有效交叠面的情况下,将所述待采样交叠面确定为所述光照探针射线的所述目标有效交叠面。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
在所述待采样交叠面不是所述有效交叠面的情况下,确定所述光照探针射线与所述待采样交叠面之间的射线交点;
基于所述射线交点以及所述入射方向,对所述光照探针射线进行反向处理并分别投影至各个坐标轴,得到所述光照探针射线在各个坐标轴方向上的第二射线分量;
基于所述射线交点以及所述第二射线分量,确定所述光照探针射线在各个坐标轴方向上的第二步进时长;
基于所述光照探针射线在各个坐标轴方向上的第二步进时长,确定所述光照探针射线的所述目标有效交叠面。
11.根据权利要求1所述的方法,其特征在于,所述基于所述目标场景内的光源,确定所述有效交叠面的光照信息,包括:
对于各个有效交叠面,遍历所述目标场景内的所述光源,确定所述有效交叠面的有效光源;
基于所述有效光源以及所述有效交叠面的交叠面属性,通过直接光照计算得到所述有效交叠面的直接光照信息;
基于从物体表面反射产生的间接光源以及所述有效交叠面的交叠面属性,通过间接光照计算得到所述有效交叠面的间接光照信息。
12.一种光照渲染装置,其特征在于,所述装置包括:
第一交叠面确定模块,用于基于目标场景内体素的体素特征,确定相邻体素之间的有效交叠面,所述体素为通过对所述目标场景内的面片网格进行体素化处理得到;
光照注入模块,用于基于所述目标场景内的光源,确定所述有效交叠面的光照信息;
光照采样模块,用于基于所述有效交叠面的所述光照信息,确定光照探针射线的光照采样信息,所述光照探针射线由光照探针发射,所述光照探针射线用于为所述光照探针采集光照信息;
光照渲染模块,用于基于所述光照探针的所述光照采样信息进行光照渲染,得到所述目标场景对应的光照渲染图像。
13.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器;所述存储器存储有至少一条计算机指令,所述至少一条计算机指令用于被所述处理器执行以实现如权利要求1至11任一所述的光照渲染方法。
14.一种计算机可读存储介质,其特征在于,所述可读存储介质中存储有至少一条计算机指令,所述至少一条计算机指令由处理器加载并执行以实现如权利要求1至11任一所述的光照渲染方法。
15.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机指令,所述计算机指令存储在计算机可读存储介质中;计算机设备的处理器从所述计算机可读存储介质读取所述计算机指令,所述处理器执行所述计算机指令,使得所述计算机设备执行如权利要求1至11任一所述的光照渲染方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410282660.7A CN117876572B (zh) | 2024-03-13 | 2024-03-13 | 光照渲染方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410282660.7A CN117876572B (zh) | 2024-03-13 | 2024-03-13 | 光照渲染方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117876572A true CN117876572A (zh) | 2024-04-12 |
CN117876572B CN117876572B (zh) | 2024-08-16 |
Family
ID=90590351
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410282660.7A Active CN117876572B (zh) | 2024-03-13 | 2024-03-13 | 光照渲染方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117876572B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5898793A (en) * | 1993-04-13 | 1999-04-27 | Karron; Daniel | System and method for surface rendering of internal structures within the interior of a solid object |
CN115131482A (zh) * | 2021-03-30 | 2022-09-30 | 完美世界(北京)软件科技发展有限公司 | 游戏场景中光照信息的渲染方法、装置及设备 |
CN116188666A (zh) * | 2022-12-13 | 2023-05-30 | 南京大学 | 实时渲染中光照探针自适应排布方法及装置 |
CN116758208A (zh) * | 2023-06-02 | 2023-09-15 | 粒界(上海)信息科技有限公司 | 全局光照渲染方法、装置、存储介质及电子设备 |
CN117218273A (zh) * | 2023-09-26 | 2023-12-12 | 珠海金山数字网络科技有限公司 | 图像渲染方法以及装置 |
-
2024
- 2024-03-13 CN CN202410282660.7A patent/CN117876572B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5898793A (en) * | 1993-04-13 | 1999-04-27 | Karron; Daniel | System and method for surface rendering of internal structures within the interior of a solid object |
CN115131482A (zh) * | 2021-03-30 | 2022-09-30 | 完美世界(北京)软件科技发展有限公司 | 游戏场景中光照信息的渲染方法、装置及设备 |
CN116188666A (zh) * | 2022-12-13 | 2023-05-30 | 南京大学 | 实时渲染中光照探针自适应排布方法及装置 |
CN116758208A (zh) * | 2023-06-02 | 2023-09-15 | 粒界(上海)信息科技有限公司 | 全局光照渲染方法、装置、存储介质及电子设备 |
CN117218273A (zh) * | 2023-09-26 | 2023-12-12 | 珠海金山数字网络科技有限公司 | 图像渲染方法以及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN117876572B (zh) | 2024-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4769732B2 (ja) | 複雑な動的3次元シーンをレイトレーシング法により写真現実的に表示する装置 | |
US8692825B2 (en) | Parallelized streaming accelerated data structure generation | |
JP5476138B2 (ja) | 変化する視野に基づいてフレーム間の光線追跡のアクセラレーション・データ構造体を更新する方法 | |
US8243073B2 (en) | Tree insertion depth adjustment based on view frustum and distance culling | |
CN113674389B (zh) | 场景渲染方法、装置、电子设备及存储介质 | |
Richter et al. | Out-of-core real-time visualization of massive 3D point clouds | |
CN113808244B (zh) | 支持运动模糊和运动/变形几何形状的光线追踪硬件加速 | |
US20100194751A1 (en) | Ray tracing a three dimensional scene using a grid | |
US9208610B2 (en) | Alternate scene representations for optimizing rendering of computer graphics | |
CN111968215A (zh) | 一种体积光渲染方法、装置、电子设备及存储介质 | |
JPH10510074A (ja) | 像構成 | |
CN114419240B (zh) | 光照渲染方法、装置、计算机设备和存储介质 | |
US7990380B2 (en) | Diffuse photon map decomposition for parallelization of global illumination algorithm | |
CN111788608A (zh) | 用于建模光反射的混合射线跟踪方法 | |
US11508112B2 (en) | Early release of resources in ray tracing hardware | |
US11380044B2 (en) | Methods and systems for volumetric reconstruction based on a confidence field | |
US20240203030A1 (en) | 3d model rendering method and apparatus, electronic device, and storage medium | |
CN117876572B (zh) | 光照渲染方法、装置、设备及存储介质 | |
AU778099B2 (en) | Energy propagation modelling apparatus | |
CN116824082B (zh) | 虚拟地形的绘制方法、装置、设备、存储介质及程序产品 | |
CN116993894B (zh) | 虚拟画面的生成方法、装置、设备、存储介质及程序产品 | |
CN117274473B (zh) | 一种多重散射实时渲染的方法、装置及电子设备 | |
Chan et al. | Particle–mesh coupling in the interaction of fluid and deformable bodies with screen space refraction rendering | |
WO2024183489A1 (zh) | 阴影渲染方法、装置、计算机设备和存储介质 | |
CN118628639A (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 |