CN115082611B - 光照渲染方法、装置、设备和介质 - Google Patents
光照渲染方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN115082611B CN115082611B CN202210993392.0A CN202210993392A CN115082611B CN 115082611 B CN115082611 B CN 115082611B CN 202210993392 A CN202210993392 A CN 202210993392A CN 115082611 B CN115082611 B CN 115082611B
- Authority
- CN
- China
- Prior art keywords
- light source
- sampling
- target
- virtual
- bounding box
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- 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)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本申请涉及一种光照渲染方法、装置、设备和介质。所述方法包括:针对虚拟场景中的待着色点,在每次对待着色点进行光源采样时,从虚拟场景对应的多种光源类型中,确定本次光源采样的目标光源类型;多种光源类型,是对虚拟场景中的光源进行类型划分得到的;多种光源类型包括虚拟光源类型和发光物体光源类型;从虚拟场景中采样符合目标光源类型的光源,得到本次光源采样的目标光源;目标光源类型包括虚拟光源类型和发光物体光源类型中的至少一种;在对待着色点进行多次光源采样后,根据各次光源采样得到的目标光源对待着色点进行光照渲染。采用本方法能够提升图像的渲染质量。
Description
技术领域
本申请涉及图像渲染技术,特别是涉及一种光照渲染方法、装置、设备和介质。
背景技术
随着图像处理技术的发展,出现了光照渲染技术。光照渲染技术,是对虚拟场景中的物体进行光照渲染的技术,比如,通过光照渲染技术,可以实现对游戏场景中的物体进行光照渲染。传统技术中,通常采用随机均匀的光源采样方法对场景中的光源进行采样。但是,随机均匀采样光源的方法通常仅适用于只有一种光源的场景,然而,通常情况下,虚拟场景中的光源不只有一种,通过随机均匀采样光源的方法对场景中的光源进行采样,会导致渲染出来的图像质量较差。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提升图像的渲染质量的光照渲染方法、装置、设备和介质。
第一方面,本申请提供了一种光照渲染方法,所述方法包括:
针对虚拟场景中的待着色点,在每次对所述待着色点进行光源采样时,从所述虚拟场景对应的多种光源类型中,确定本次光源采样的目标光源类型;所述多种光源类型,是对所述虚拟场景中的光源进行类型划分得到的;所述多种光源类型包括虚拟光源类型和发光物体光源类型;
从所述虚拟场景中采样符合所述目标光源类型的光源,得到本次光源采样的目标光源;所述目标光源类型包括所述虚拟光源类型和发光物体光源类型中的至少一种;
在对所述待着色点进行多次光源采样后,根据各次光源采样得到的目标光源对所述待着色点进行光照渲染。
第二方面,本申请提供了一种光照渲染装置,所述装置包括:
确定模块,用于针对虚拟场景中的待着色点,在每次对所述待着色点进行光源采样时,从所述虚拟场景对应的多种光源类型中,确定本次光源采样的目标光源类型;所述多种光源类型,是对所述虚拟场景中的光源进行类型划分得到的;所述多种光源类型包括虚拟光源类型和发光物体光源类型;
采样模块,用于从所述虚拟场景中采样符合所述目标光源类型的光源,得到本次光源采样的目标光源;所述目标光源类型包括所述虚拟光源类型和发光物体光源类型中的至少一种;
渲染模块,用于在对所述待着色点进行多次光源采样后,根据各次光源采样得到的目标光源对所述待着色点进行光照渲染。
在一个实施例中,所述确定模块还用于确定所述虚拟场景对应的光源采样模式;在所述光源采样模式为第一采样模式的情况下,从所述虚拟场景对应的多种光源类型中选取部分光源类型,作为本次光源采样的目标光源类型;在所述光源采样模式为第二采样模式的情况下,将所述虚拟场景对应的多种光源类型作为本次光源采样的目标光源类型。
在一个实施例中,所述确定模块还用于在所述光源采样模式为第一采样模式的情况下,确定所述虚拟场景对应的多种光源类型中每种光源类型的综合光通量;获取针对本次光源采样的类型采样随机数;根据所述类型采样随机数和所述每种光源类型的综合光通量,从所述多种光源类型中确定本次光源采样的目标光源类型。
在一个实施例中,所述采样模块还用于在所述目标光源类型包括所述虚拟光源类型的情况下,从针对虚拟光源预先构建的候选空间网格中,确定所述待着色点所属的目标空间网格;所述虚拟光源,是所述虚拟场景中符合所述虚拟光源类型的光源;对所述目标空间网格中的虚拟光源进行采样,得到本次光源采样的目标光源。
在一个实施例中,所述采样模块还用于在所述目标空间网格中虚拟光源的数量满足光源稠密条件的情况下,根据针对所述目标空间网格中虚拟光源预先构建的虚拟光源包围盒树,对所述目标空间网格中的虚拟光源进行采样,得到本次光源采样的目标光源;其中,所述虚拟光源包围盒树中的节点用于记录所述目标空间网格中的虚拟光源。
在一个实施例中,所述采样模块还用于在所述目标空间网格中虚拟光源的数量满足光源稀疏条件的情况下,分别确定所述目标空间网格中各个虚拟光源针对所述待着色点的第一辐照度;获取针对本次光源采样的虚拟光源采样随机数;根据所述虚拟光源采样随机数和所述第一辐照度,对所述目标空间网格中的虚拟光源进行采样,得到本次光源采样的目标光源。
在一个实施例中,所述装置还包括:
第一构建模块,用于针对所述虚拟场景中的每一个虚拟光源,根据所述虚拟光源的光照影响半径和光照影响角度,确定所述虚拟光源的光照影响范围;根据所述虚拟场景中各个虚拟光源的光照影响范围,构建第一空间包围盒;所述第一空间包围盒包围所述虚拟场景中各个虚拟光源的光照影响范围;对所述第一空间包围盒进行空间网格划分,得到针对虚拟光源的候选空间网格;其中,每个候选空间网格中记录有影响该候选空间网格的虚拟光源的光源标识。
在一个实施例中,所述采样模块还用于在所述目标光源类型包括所述发光物体光源类型的情况下,根据针对发光物体光源预先构建的发光物体光源包围盒树,对所述虚拟场景中的发光物体光源进行采样,得到本次光源采样的目标光源;其中,所述发光物体光源,是所述虚拟场景中符合所述发光物体光源类型的光源;所述发光物体光源包围盒树中的节点用于记录所述虚拟场景中的发光物体光源。
在一个实施例中,所述采样模块还用于确定针对所述目标光源类型预先构建的光源包围盒树;所述光源包围盒树中的节点用于记录所述虚拟场景中符合所述目标光源类型的光源;将所述光源包围盒树的根节点作为本轮节点采样的目标节点,分别确定所述目标节点下各个子节点对所述待着色点的节点采样权重;获取针对本轮节点采样的节点采样随机数;根据所述节点采样随机数和所述节点采样权重,从所述目标节点下各个子节点中确定本轮节点采样的采样节点;将所述采样节点作为本轮节点采样的目标节点,将下一轮节点采样作为本轮节点采样,返回所述分别确定所述目标节点下各个子节点对所述待着色点的节点采样权重的步骤以迭代执行,直至满足节点采样迭代停止条件时停止,并对最后一轮确定的采样节点中的、且符合所述目标光源类型的光源进行采样,得到本次光源采样的目标光源。
在一个实施例中,所述采样模块还用于针对所述目标节点下的每一个子节点,根据所述子节点中各个光源的光通量,确定所述子节点对应的节点光通量;根据所述子节点和所述待着色点之间的相对位置,确定所述子节点对应的节点朝向参数;根据所述节点光通量、所述节点朝向参数、以及所述子节点与所述待着色点之间的距离,确定所述子节点对所述待着色点的节点采样权重。
在一个实施例中,所述采样模块还用于分别计算所述最后一轮确定的采样节点中的、且符合所述目标光源类型的各个光源针对所述待着色点的第二辐照度;获取针对本次光源采样的光源采样随机数;根据光源采样随机数和所述第二辐照度,对最后一轮确定的采样节点中的、且符合所述目标光源类型的光源进行采样,得到本次光源采样的目标光源。
在一个实施例中,所述本次光源采样的目标光源是通过针对所述目标光源类型预先创建的光源包围盒树采样得到的;所述装置还包括:
第二构建模块,用于根据所述虚拟场景中符合同一种光源类型的各个光源的体积,构建第二空间包围盒;所述第二空间包围盒包围所述符合同一种光源类型的各个光源;将所述第二空间包围盒作为本轮划分的目标包围盒,确定本轮划分针对所述目标包围盒的划分平面; 根据所述划分平面,将所述目标包围盒划分为左包围盒和右包围盒;将所述左包围盒和右包围盒分别作为本轮划分的目标包围盒,将下一轮划分作为本轮划分,返回所述确定本轮划分针对所述目标包围盒的划分平面的步骤以迭代执行,直至满足划分迭代停止条件时停止,得到光源包围盒树。
在一个实施例中,所述第二构建模块还用于针对本轮划分所预设的多个候选划分平面中的每个候选划分平面,根据所述候选划分平面将所述目标包围盒划分为候选左包围盒和候选右包围盒;根据所述候选左包围盒中各个光源的光通量、表面积和朝向,确定所述候选左包围盒对应的第一光源特征参数,根据所述候选右包围盒中各个光源的光通量、表面积和朝向,确定所述候选右包围盒对应的第二光源特征参数;根据所述目标包围盒中各个光源的表面积和朝向,确定所述目标包围盒对应的第三光源特征参数;根据所述第一光源特征参数、所述第二光源特征参数和所述第三光源特征参数,确定所述候选划分平面对应的划分参数;根据各个候选划分平面分别对应的划分参数,从所述各个候选划分平面中确定本轮划分针对所述目标包围盒的划分平面。
第三方面,本申请提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现本申请各方法实施例中的步骤。
第四方面,本申请提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现本申请各方法实施例中的步骤。
第五方面,本申请提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时实现本申请各方法实施例中的步骤。
上述光照渲染方法、装置、设备、介质和计算机程序产品,针对虚拟场景中的待着色点,在每次对待着色点进行光源采样时,从虚拟场景对应的多种光源类型中,确定本次光源采样的目标光源类型。多种光源类型,是对虚拟场景中的光源进行类型划分得到的,多种光源类型包括虚拟光源类型和发光物体光源类型。从虚拟场景中采样符合目标光源类型的光源,得到本次光源采样的目标光源,目标光源类型包括虚拟光源类型和发光物体光源类型中的至少一种。由于每一次光源采样都会从虚拟场景对应的多种光源类型中,确定本次光源采样的目标光源类型,并从虚拟场景中采样符合目标光源类型的目标光源,因此,对待着色点进行多次光源采样得到的光源中,极大概率会包含多种光源类型对应的光源,避免了光源类型的单一性。这样,在对待着色点进行多次光源采样后,根据各次光源采样得到的目标光源对待着色点进行光照渲染,可以提升针对待着色点的渲染效果,从而可以提升图像的渲染质量。
附图说明
图1为一个实施例中光照渲染方法的应用环境图;
图2为一个实施例中光照渲染方法的流程示意图;
图3为一个实施例中光源采样的原理示意图;
图4为一个实施例中候选空间网格构建示意图;
图5为一个实施例中针对虚拟光源的配置界面示意图;
图6为一个实施例中发光物体光源包围盒树的示意图;
图7为一个实施例中计算节点采样权重的原理示意图;
图8为一个实施例中候选空间网格和光源包围盒树构建流程示意图;
图9为一个实施例中光源采样的流程示意图;
图10为一个实施例中本申请光照渲染方法对应的光照渲染结果与传统光照渲染方法对应的光照渲染结果的对比示意图;
图11为另一个实施例中本申请光照渲染方法对应的光照渲染结果与传统光照渲染方法对应的光照渲染结果的对比示意图;
图12为一个实施例中通过简单虚拟场景对本申请光照渲染方法和传统光照渲染方法分别进行耗时测试的示意图;
图13为另一个实施例中光照渲染方法的流程示意图;
图14为一个实施例中光照渲染装置的结构框图;
图15为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的光照渲染方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他服务器上。其中,终端102可以但不限于是各种台式计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端102以及服务器104可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
针对虚拟场景中的待着色点,在每次对待着色点进行光源采样时,终端102可从虚拟场景对应的多种光源类型中,确定本次光源采样的目标光源类型。多种光源类型,是对虚拟场景中的光源进行类型划分得到的,多种光源类型包括虚拟光源类型和发光物体光源类型。终端102可从虚拟场景中采样符合目标光源类型的光源,得到本次光源采样的目标光源,目标光源类型包括虚拟光源类型和发光物体光源类型中的至少一种。终端102可在对待着色点进行多次光源采样后,根据各次光源采样得到的目标光源对待着色点进行光照渲染,得到渲染图像。
可以理解,终端102可以直接展示渲染图像,终端102还可以将渲染图像发送至服务器104,服务器104可接收渲染图像并存储。本实施例对此不做限定,可以理解,图1中的应用场景仅为示意说明,并不限定于此。
在一个实施例中,如图2所示,提供了一种光照渲染方法,本实施例以该方法应用于图1中的终端102为例进行说明,包括以下步骤:
步骤202,针对虚拟场景中的待着色点,在每次对待着色点进行光源采样时,从虚拟场景对应的多种光源类型中,确定本次光源采样的目标光源类型;多种光源类型,是对虚拟场景中的光源进行类型划分得到的;多种光源类型包括虚拟光源类型和发光物体光源类型。
其中,虚拟场景是待渲染的虚拟的场景,比如,电子游戏中的游戏场景则属于虚拟场景。待着色点是虚拟场景中待渲染的点,可以理解,在虚拟场景被渲染得到渲染图像之后,虚拟场景中的待着色点即为渲染图像中的一个像素点。光源类型是光源所属的类型,光源类型是对虚拟场景中的光源进行类型划分得到的,可以理解,虚拟场景中存在多种类型光源,即多种类型的光源。多种光源类型至少包括虚拟光源类型和发光物体光源类型。虚拟光源类型是虚拟光源所属的类型,可以理解,虚拟场景中符合虚拟光源类型的光源则是虚拟光源。虚拟光源是渲染引擎中定义的基础类型光源。渲染引擎中定义的虚拟光源包括平行光、点光源、聚光灯和矩形面光源等中的至少一种。发光物体光源类型是发光物体光源所属的类型,可以理解,虚拟场景中符合发光物体光源类型的光源则是发光物体光源。发光物体光源是虚拟场景中具有自发光属性的物体,需要说明的是,在渲染引擎中,虚拟场景中具有自发光属性的物体由自发光三角面片构成,一个自发光三角面片即为一个发光物体光源。目标光源类型是本次光源采样的光源类型,需要说明的是,每次光源采样的光源类型可以为一种或多种,即,目标光源类型可包括一种或多种光源类型。
举例说明,太阳光则属于平行光,灯泡则属于点光源,手电筒则属于聚光灯,矩形灯则属于矩形面光源。发光物体光源可包括虚拟场景中的广告牌和灯带等中的至少一种。
具体地,终端可从虚拟场景中确定待着色点,可以理解,对待着色点的进行光照渲染,需要针对待着色点进行多次光源采样,即,从虚拟场景中采样一部分光源对待着色点进行光照渲染。针对虚拟场景中的待着色点,在每次对待着色点进行光源采样时,终端可从虚拟场景对应的多种光源类型中,确定本次光源采样的目标光源类型。
在一个实施例中,本申请可提供多种光源采样模式,用户可从多种光源采样模式中选择其中一种作为虚拟场景对应的光源采样模式。针对虚拟场景中的待着色点,在每次对待着色点进行光源采样时,终端可根据该虚拟场景对应的光源采样模式,从虚拟场景对应的多种光源类型中,确定本次光源采样的目标光源类型。
步骤204,从虚拟场景中采样符合目标光源类型的光源,得到本次光源采样的目标光源;目标光源类型包括虚拟光源类型和发光物体光源类型中的至少一种。
其中,目标光源是本次光源采样从虚拟场景中采样得到的光源。可以理解,由于目标光源类型可以包括虚拟光源类型和发光物体光源类型中的至少一种,因此,目标光源可以包括虚拟光源和发光物体光源中的至少一种。
具体地,每种光源类型分别对应各自的光源采样方式。由于目标光源类型可包括一种或多种光源类型,因此,针对目标光源类型中的每一种光源类型,终端可根据该光源类型对应的光源采样方式,从虚拟场景中采样符合该光源类型的光源,得到本次光源采样的目标光源。
在一个实施例中,在目标光源类型包括虚拟光源类型的情况下,终端可根据虚拟光源类型对应的光源采样方式,从虚拟场景中采样符合虚拟光源类型的光源,得到本次光源采样的目标光源。
在一个实施例中,在目标光源类型包括发光物体光源类型的情况下,终端可根据发光物体光源类型对应的光源采样方式,从虚拟场景中采样符合发光物体光源类型的光源,得到本次光源采样的目标光源。
步骤206,在对待着色点进行多次光源采样后,根据各次光源采样得到的目标光源对待着色点进行光照渲染。
具体地,针对多次光源采样得到的多个目标光源中的每一个目标光源,终端可从该目标光源中随机采样一个光源点。进而,终端可根据多个目标光源分别对应的光源点,对待着色点进行光照渲染。其中,光源点是目标光源中的点。
在一个实施例中,终端可根据各个目标光源的发光颜色、待着色点的表面材质对应的材质参数、入射光的方向向量和待着色点的表面法向量,确定针对待着色点的出射光的颜色。进而,终端可根据出射光的颜色对待着色点进行光照渲染。其中,入射光是指射入待着色点的光线,出射光是指射出待着色点的光线,可以理解,出射光即为射入用户眼睛的光线。本实施例中,通过综合考虑目标光源的发光颜色、待着色点的表面材质、入射光的方向向量和待着色点的表面法向量,可以准确地确定各个目标光源对待着色点的光照贡献,提升针对待着色点的光照渲染效果,从而提升最终渲染得到的图像的质量。
在一个实施例中,终端对待着色点进行光照渲染可以通过以下渲染方程实现:
其中,x表示待着色点,表示入射光的方向向量,表示出射光的方向向量,表示待着色点x的表面法向量,表示所有入射光的集合,f是双向反射分布函数,可以理解,表示待着色点x的表面材质对应的材质参数,表示入射光的颜色,即目标光源的发光颜色,表示出射光的颜色。
在一个实施例中,终端对待着色点进行光照渲染还可以通过以下渲染方程实现:
其中,表示直接入射光的方向向量,表示反射入射光的方向向量,表示所有直接入射光的集合,表示所有反射入射光的集合,表示直接入射光的颜色,表示反射入射光的颜色。可以理解,直接入射光和反射入射光都属于入射光。如图3所示,直接入射光用于表征目标光源发射出的光线直接射入待着色点,反射入射光用于表征目标光源发射出的光线经过虚拟场景中的物体反射之后射入待着色点,最终经过待着色点反射进入用户眼睛的光线即为,即待着色点被渲染的颜色。
上述光照渲染方法中,针对虚拟场景中的待着色点,在每次对待着色点进行光源采样时,从虚拟场景对应的多种光源类型中,确定本次光源采样的目标光源类型。多种光源类型,是对虚拟场景中的光源进行类型划分得到的,多种光源类型包括虚拟光源类型和发光物体光源类型。从虚拟场景中采样符合目标光源类型的光源,得到本次光源采样的目标光源,目标光源类型包括虚拟光源类型和发光物体光源类型中的至少一种。由于每一次光源采样都会从虚拟场景对应的多种光源类型中,确定本次光源采样的目标光源类型,并从虚拟场景中采样符合目标光源类型的目标光源,因此,对待着色点进行多次光源采样得到的光源中,极大概率会包含多种光源类型对应的光源,避免了光源类型的单一性。这样,在对待着色点进行多次光源采样后,根据各次光源采样得到的目标光源对待着色点进行光照渲染,可以提升针对待着色点的渲染效果,从而可以提升图像的渲染质量。
在一个实施例中,从虚拟场景对应的多种光源类型中,确定本次光源采样的目标光源类型,包括:确定虚拟场景对应的光源采样模式;在光源采样模式为第一采样模式的情况下,从虚拟场景对应的多种光源类型中选取部分光源类型,作为本次光源采样的目标光源类型;在光源采样模式为第二采样模式的情况下,将虚拟场景对应的多种光源类型作为本次光源采样的目标光源类型。
其中,第一采样模式,是用于指示从虚拟场景对应的多种光源类型中选取部分光源类型的光源采样模式。第二采样模式,是用于指示选取虚拟场景对应的各种光源类型的光源采样模式。
具体地,终端可提供用于光源采样的多种光源采样模式,用户可从多种光源采样模式中选择其中一种对虚拟场景中的光源进行采样。终端可将用户选择的光源采样模式,确定为虚拟场景对应的光源采样模式。在光源采样模式为第一采样模式的情况下,终端可从虚拟场景对应的多种光源类型中选取部分光源类型,作为本次光源采样的目标光源类型。在光源采样模式为第二采样模式的情况下,终端可将虚拟场景对应的多种光源类型直接作为本次光源采样的目标光源类型。举例说明,虚拟场景对应的多种光源类型包括虚拟光源类型和发光物体光源类型,终端可将虚拟光源类型和发光物体光源类型这两种光源类型,直接作为本次光源采样的目标光源类型。
在一个实施例中,在光源采样模式为第一采样模式的情况下,终端可从虚拟场景对应的多种光源类型中随机选取部分光源类型,直接作为本次光源采样的目标光源类型。举例说明,虚拟场景对应的多种光源类型包括虚拟光源类型和发光物体光源类型,终端可从虚拟光源类型和发光物体光源类型中,随机选择其中一种直接作为本次光源采样的目标光源类型。
上述实施例中,在光源采样模式为第一采样模式的情况下,从虚拟场景对应的多种光源类型中选取部分光源类型,作为本次光源采样的目标光源类型,这样,可在提升图像渲染质量的前提下,保证图像的渲染效率,非常适用于图像的实时渲染。在光源采样模式为第二采样模式的情况下,将虚拟场景对应的多种光源类型作为本次光源采样的目标光源类型,这样,可进一步提升图像的渲染质量,非常适用于对图像质量要求高的场景。
在一个实施例中,在光源采样模式为第一采样模式的情况下,从虚拟场景对应的多种光源类型中选取部分光源类型,作为本次光源采样的目标光源类型,包括:在光源采样模式为第一采样模式的情况下,确定虚拟场景对应的多种光源类型中每种光源类型的综合光通量;获取针对本次光源采样的类型采样随机数;根据类型采样随机数和每种光源类型的综合光通量,从多种光源类型中确定本次光源采样的目标光源类型。
其中,综合光通量,是每种光源类型对应的各个光源的光通量的总和。类型采样随机数,是每次光源采样中用于从多种光源类型中确定目标光源类型的随机数。
具体地,在光源采样模式为第一采样模式的情况下,针对每一种光源类型,终端可计算符合该光源类型的各个光源的光通量。终端可将该光源类型的各个光源的光通量进行累加,得到该光源类型的综合光通量。终端可获取针对本次光源采样的类型采样随机数,并根据类型采样随机数和每种光源类型的综合光通量,从多种光源类型中确定本次光源采样的目标光源类型。
在一个实施例中,终端可根据每种光源类型的综合光通量,分别确定每种光源类型对应的采样权重范围,每次进行光源采样时,判断类型采样随机数落在哪种光源类型对应的采样权重范围之内,终端可将类型采样随机数所属的采样权重范围对应的光源类型,确定为本次光源采样的目标光源类型。可以理解,综合光通量越大的光源类型,其对应的采样权重范围就越大,类型采样随机数落在其采样权重范围的概率就越大,即,综合光通量越大的光源类型被确定为目标光源类型的概率就越大,反之则越小。
上述实施例中,根据类型采样随机数和每种光源类型的综合光通量,从多种光源类型中确定本次光源采样的目标光源类型,综合光通量越大的光源类型被确定为目标光源类型的概率就越大,这样,可进一步提升针对待着色点的渲染效果,从而进一步提升图像的渲染质量。
在一个实施例中,从虚拟场景中采样符合目标光源类型的光源,得到本次光源采样的目标光源,包括:在目标光源类型包括虚拟光源类型的情况下,从针对虚拟光源预先构建的候选空间网格中,确定待着色点所属的目标空间网格;虚拟光源,是虚拟场景中符合虚拟光源类型的光源;对目标空间网格中的虚拟光源进行采样,得到本次光源采样的目标光源。
具体地,在目标光源类型包括虚拟光源类型的情况下,终端可根据待着色点的世界空间坐标,从针对虚拟光源预先构建的候选空间网格中,确定待着色点所属的目标空间网格。可以理解,终端可对待着色点的世界空间坐标与各个候选空间网格的世界空间坐标求交集,并将与待着色点的世界空间坐标存在交集的候选空间网格,作为待着色点所属的目标空间网格。进而,终端可对目标空间网格中的虚拟光源进行采样,得到本次光源采样的目标光源。
在一个实施例中,如图4所示,虚拟光源包括点光源、聚光灯、矩形面光源和平行光。需要说明的是,平行光的影响范围是无穷远,因此,平行光发出的光线可影响每一个候选空间网格。图4中的401至404分别为针对虚拟光源预先构建的候选空间网格,影响候选空间网格401的为点光源和平行光,影响候选空间网格402的为聚光灯和平行光,影响候选空间网格403的为平行光,影响候选空间网格404的为矩形面光源和平行光。从图4中可以看到,待着色点所属的候选空间网格为403,即,候选空间网格403即为目标空间网格。从图4中还可以看到,影响目标空间网格403中的虚拟光源只有平行光,因此,对目标空间网格403中的平行光进行采样,可以得到本次光源采样的目标光源。
在一个实施例中,终端可确定目标空间网格中虚拟光源的数量是满足光源稠密条件还是满足光源稀疏条件。在目标空间网格中虚拟光源的数量满足光源稠密条件的情况下,终端可根据光源稠密条件对应的光源采样方式,对目标空间网格中的虚拟光源进行采样,得到本次光源采样的目标光源。在目标空间网格中虚拟光源的数量满足光源稀疏条件的情况下,终端可根据光源稀疏条件对应的光源采样方式,对目标空间网格中的虚拟光源进行采样,得到本次光源采样的目标光源。
在一个实施例中,光源稠密条件可以是目标空间网格中虚拟光源的数量大于或等于预设的光源数量,也可以是目标空间网格中虚拟光源的数量落在预设的第一光源数量范围之内。光源稀疏条件可以是目标空间网格中虚拟光源的数量小于预设的光源数量,也可以是目标空间网格中虚拟光源的数量落在预设的第二光源数量范围之内。其中,第一光源数量范围对应的数值大于第二光源数量范围对应的数值。
上述实施例中,从针对虚拟光源预先构建的候选空间网格中,确定待着色点所属的目标空间网格,由于对待着色点光照贡献较大的虚拟光源大概率都落在目标空间网格中,此时,对目标空间网格中的虚拟光源进行采样,可以快速得到本次光源采样的目标光源,从而提升虚拟光源的采样效率。
在一个实施例中,对目标空间网格中的虚拟光源进行采样,得到本次光源采样的目标光源,包括:在目标空间网格中虚拟光源的数量满足光源稠密条件的情况下,根据针对目标空间网格中虚拟光源预先构建的虚拟光源包围盒树,对目标空间网格中的虚拟光源进行采样,得到本次光源采样的目标光源;其中,虚拟光源包围盒树中的节点用于记录目标空间网格中的虚拟光源。
其中,虚拟光源包围盒树,是针对目标空间网格中虚拟光源预先构建的光源包围盒树,可以理解,虚拟光源包围盒树是一种树状的数据存储结构,虚拟光源包围盒树由多个节点组成,每个节点用于记录目标空间网格中的虚拟光源。
具体地,在目标空间网格中虚拟光源的数量满足光源稠密条件的情况下,终端可根据光源稠密条件对应的光源采样方式,对目标空间网格中的虚拟光源进行采样,即,终端可获取针对目标空间网格中虚拟光源预先构建的虚拟光源包围盒树,并根据针对目标空间网格中虚拟光源预先构建的虚拟光源包围盒树,对目标空间网格中的虚拟光源进行采样,得到本次光源采样的目标光源。
上述实施例中,在目标空间网格中虚拟光源的数量满足光源稠密条件的情况下,说明目标空间网格中虚拟光源的数量较大,此时,根据针对目标空间网格中虚拟光源预先构建的虚拟光源包围盒树,对目标空间网格中的虚拟光源进行采样,得到本次光源采样的目标光源,可以提升虚拟光源的采样效率。
在一个实施例中,对目标空间网格中的虚拟光源进行采样,得到本次光源采样的目标光源,包括:在目标空间网格中虚拟光源的数量满足光源稀疏条件的情况下,分别确定目标空间网格中各个虚拟光源针对待着色点的第一辐照度;获取针对本次光源采样的虚拟光源采样随机数;根据虚拟光源采样随机数和第一辐照度,对目标空间网格中的虚拟光源进行采样,得到本次光源采样的目标光源。
其中,第一辐照度,是目标空间网格中各个虚拟光源针对待着色点的辐照度。虚拟光源采样随机数,是用于对目标空间网格中的虚拟光源进行采样的随机数。
具体地,在目标空间网格中虚拟光源的数量满足光源稀疏条件的情况下,终端可分别确定目标空间网格中各个虚拟光源针对待着色点的第一辐照度。终端可获取针对本次光源采样的虚拟光源采样随机数,并根据虚拟光源采样随机数和第一辐照度,对目标空间网格中的虚拟光源进行采样,得到本次光源采样的目标光源。
在一个实施例中,终端可根据目标空间网格中各个虚拟光源针对待着色点的第一辐照度,分别确定各个虚拟光源对应的采样权重范围,每次进行光源采样时,判断虚拟光源采样随机数落在哪个虚拟光源对应的采样权重范围之内,终端可将虚拟光源采样随机数所属的采样权重范围对应的虚拟光源,确定为本次光源采样的目标光源。可以理解,第一辐照度越大的虚拟光源,其对应的采样权重范围就越大,虚拟光源采样随机数落在其采样权重范围的概率就越大,即,第一辐照度越大的虚拟光源被确定为目标光源的概率就越大,反之则越小。
在一个实施例中,针对目标空间网格中的每一个虚拟光源,终端可根据该虚拟光源的光通量、朝向、待着色点与该虚拟光源之间的相对位置、以及待着色点与该虚拟光源之间的距离,确定目标空间网格中各个虚拟光源针对待着色点的第一辐照度。
上述实施例中,在目标空间网格中虚拟光源的数量满足光源稀疏条件的情况下,说明目标空间网格中虚拟光源的数量较小,此时,根据虚拟光源采样随机数和各个虚拟光源分别对应的第一辐照度,直接对目标空间网格中的虚拟光源进行采样,可以提升虚拟光源的采样效率。同时,由于第一辐照度越大的虚拟光源,其被采样到的概率也越大,可以进一步提升图像的渲染质量。
在一个实施例中,终端可将虚拟场景所在的空间作为待划分的空间包围盒,并对该空间包围盒进行空间网格划分,得到针对虚拟光源的候选空间网格。
在一个实施例中,方法还包括:针对虚拟场景中的每一个虚拟光源,根据虚拟光源的光照影响半径和光照影响角度,确定虚拟光源的光照影响范围;根据虚拟场景中各个虚拟光源的光照影响范围,构建第一空间包围盒;第一空间包围盒包围虚拟场景中各个虚拟光源的光照影响范围;对第一空间包围盒进行空间网格划分,得到针对虚拟光源的候选空间网格;其中,每个候选空间网格中记录有影响该候选空间网格的虚拟光源的光源标识。
其中,光照影响半径,是虚拟光源发射的光线所能到达的距离。光照影响角度,是虚拟光源发射的光线所在方位的并集。光照影响范围,是虚拟光源发射的光线所能影响的范围,可以理解,只有待着色点位于虚拟光源的光照影响范围之内,该虚拟光源对该待着色点才有光照贡献,若待着色点位于虚拟光源的光照影响范围之外,则该虚拟光源对该待着色点没有光照贡献。第一空间包围盒,是基于虚拟场景中各个虚拟光源的光照影响范围所构建得到的空间包围盒。
具体地,针对虚拟场景中的每一个虚拟光源,终端可获取虚拟光源的光照影响半径和光照影响角度,并根据虚拟光源的光照影响半径和光照影响角度,确定虚拟光源的光照影响范围。终端可根据虚拟场景中各个虚拟光源的光照影响范围,构建第一空间包围盒。终端可对第一空间包围盒进行空间网格划分,得到针对虚拟光源的候选空间网格,其中,每个候选空间网格中记录有影响该候选空间网格的虚拟光源的光源标识。
在一个实施例中,第一空间包围盒的形状为长方体,终端可选取第一空间包围盒中边长最长的、且互相垂直的两条边,对第一空间包围盒进行空间网格划分,得到针对虚拟光源的候选空间网格。这样,可避免划分得到的候选空间网格中的各条边的边长比例悬殊,从而使得划分得到的候选空间网格更加合理。
在一个实施例中,终端可对第一空间包围盒进行空间网格划分,得到初始空间网格。进而,终端可对虚拟光源的光照影响范围和各个初始空间网格进行求交集。针对每一个初始空间网格,终端可将与该初始空间网格存在交集的光照影响范围对应的虚拟光源,确定为对该初始空间网格存在光照影响的虚拟光源,并将这些虚拟光源的标识记录于该初始空间网格中,得到候选空间网格。
在一个实施例中,如图5所示,终端可提供针对虚拟光源的配置界面,在该配置界面上,可分别对划分光源网格的分辨率、每个网格中最大的虚拟光源数和虚拟光源采样模式进行设置。可以理解,终端可按设置的分辨率划分得到候选空间网格,划分得到的候选空间网格中的虚拟光源的数量不超过设置的最大的虚拟光源数。设置的虚拟光源采样模式表征可通过网格和光源包围盒树的方式对虚拟场景中的虚拟光源进行采样。
上述实施例中,根据虚拟场景中各个虚拟光源的光照影响范围,构建第一空间包围盒,可以使得构建的第一空间包围盒更加贴合虚拟场景中的各个虚拟光源,即,可避免构建的第一空间包围盒空间过大,进而对第一空间包围盒进行空间网格划分,得到针对虚拟光源的候选空间网格,可以提升候选空间网格的合理性,从而进一步提升图像渲染质量。
在一个实施例中,从虚拟场景中采样符合目标光源类型的光源,得到本次光源采样的目标光源,包括:在目标光源类型包括发光物体光源类型的情况下,根据针对发光物体光源预先构建的发光物体光源包围盒树,对虚拟场景中的发光物体光源进行采样,得到本次光源采样的目标光源;其中,发光物体光源,是虚拟场景中符合发光物体光源类型的光源;发光物体光源包围盒树中的节点用于记录虚拟场景中的发光物体光源。
其中,发光物体光源包围盒树,是针对虚拟场景中的发光物体光源预先构建的光源包围盒树,可以理解,发光物体光源包围盒树是一种树状的数据存储结构,发光物体光源包围盒树由多个节点组成,每个节点用于记录虚拟场景中的发光物体光源。
具体地,在目标光源类型包括发光物体光源类型的情况下,终端可获取针对发光物体光源预先构建的发光物体光源包围盒树,并根据针对发光物体光源预先构建的发光物体光源包围盒树,对虚拟场景中的发光物体光源进行采样,得到本次光源采样的目标光源。
在一个实施例中,如图6所示,图6中的601、602和603表示发光物体光源包围盒树中的节点,图6中的604表示虚拟场景中的发光物体光源,可以理解,601为发光物体光源包围盒树的根节点,602和603为根节点601下的左子节点和右子节点。
上述实施例中,在目标光源类型包括发光物体光源类型的情况下,由于光物体光源类型对应的光物体光源的数量较大,此时,根据针对发光物体光源预先构建的发光物体光源包围盒树,对虚拟场景中的发光物体光源进行采样,得到本次光源采样的目标光源,可以提升光物体光源的采样效率。
在一个实施例中,从虚拟场景中采样符合目标光源类型的光源,得到本次光源采样的目标光源,包括:确定针对目标光源类型预先构建的光源包围盒树;光源包围盒树中的节点用于记录虚拟场景中符合目标光源类型的光源;将光源包围盒树的根节点作为本轮节点采样的目标节点,分别确定目标节点下各个子节点对待着色点的节点采样权重;获取针对本轮节点采样的节点采样随机数;根据节点采样随机数和节点采样权重,从目标节点下各个子节点中确定本轮节点采样的采样节点;将采样节点作为本轮节点采样的目标节点,将下一轮节点采样作为本轮节点采样,返回分别确定目标节点下各个子节点对待着色点的节点采样权重的步骤以迭代执行,直至满足节点采样迭代停止条件时停止,并对最后一轮确定的采样节点中的、且符合目标光源类型的光源进行采样,得到本次光源采样的目标光源。
其中,节点采样权重,是用于从目标节点下各个子节点中确定采样节点的权中。节点采样随机数,是用于从目标节点下各个子节点中确定采样节点的随机数。采样节点,是从目标节点下各个子节点中采样得到的子节点。可以理解,光源包围盒树包括上述的虚拟光源包围盒树和上述的发光物体光源包围盒树。
在一个实施例中,节点采样迭代停止条件可以是采样得到的采样节点为光源包围盒树的叶子节点,也可以是节点采样的迭代次数达到预设的节点采样次数。
具体地,终端可确定针对目标光源类型预先构建的光源包围盒树,并将光源包围盒树的根节点作为本轮节点采样的目标节点。终端可分别确定目标节点下各个子节点对待着色点的节点采样权重。终端可获取针对本轮节点采样的节点采样随机数,并根据节点采样随机数和节点采样权重,从目标节点下各个子节点中确定本轮节点采样的采样节点。进而终端可将采样节点作为本轮节点采样的目标节点,将下一轮节点采样作为本轮节点采样,并返回分别确定目标节点下各个子节点对待着色点的节点采样权重的步骤以迭代执行,直至满足节点采样迭代停止条件时停止,并对最后一轮确定的采样节点中的、且符合目标光源类型的光源进行采样,得到本次光源采样的目标光源。
在一个实施例中,终端可根据目标节点下各个子节点对待着色点的节点采样权重,分别确定各个子节点对应的采样权重范围,每次进行节点采样时,判断节点采样随机数落在哪个子节点对应的采样权重范围之内,终端可将节点采样随机数所属的采样权重范围对应的子节点,确定为本次节点采样的采样节点。可以理解,节点采样权重越大的子节点,其对应的采样权重范围就越大,节点采样随机数落在其采样权重范围的概率就越大,即,节点采样权重越大的子节点被确定为采样节点的概率就越大,反之则越小。
在一个实施例中,在光源包围盒树为上述的虚拟光源包围盒树的情况下,终端可将虚拟光源包围盒树的根节点作为本轮节点采样的目标节点。终端可分别确定目标节点下各个子节点对待着色点的节点采样权重。终端可获取针对本轮节点采样的节点采样随机数,并根据节点采样随机数和节点采样权重,从目标节点下各个子节点中确定本轮节点采样的采样节点。进而终端可将采样节点作为本轮节点采样的目标节点,将下一轮节点采样作为本轮节点采样,并返回分别确定目标节点下各个子节点对待着色点的节点采样权重的步骤以迭代执行,直至满足节点采样迭代停止条件时停止,并对最后一轮确定的采样节点中虚拟光源进行采样,得到本次光源采样的目标光源。
在一个实施例中,在光源包围盒树为上述的发光物体光源包围盒树的情况下,终端可将发光物体光源包围盒树的根节点作为本轮节点采样的目标节点。终端可分别确定目标节点下各个子节点对待着色点的节点采样权重。终端可获取针对本轮节点采样的节点采样随机数,并根据节点采样随机数和节点采样权重,从目标节点下各个子节点中确定本轮节点采样的采样节点。进而终端可将采样节点作为本轮节点采样的目标节点,将下一轮节点采样作为本轮节点采样,并返回分别确定目标节点下各个子节点对待着色点的节点采样权重的步骤以迭代执行,直至满足节点采样迭代停止条件时停止,并对最后一轮确定的采样节点中的发光物体光源进行采样,得到本次光源采样的目标光源。
在一个实施例中,终端可根据目标节点下各个子节点中的、且符合目标光源类型的光源的光通量,分别确定目标节点下各个子节点对待着色点的节点采样权重。可以理解,针对每一个子节点,该子节点对应的光通量越大,则该子节点对待着色点的节点采样权重也越大。
在一个实施例中,终端可对最后一轮确定的采样节点中的、且符合目标光源类型的光源进行随机采样,得到本次光源采样的目标光源。可以理解,终端可直接随机从最后一轮确定的采样节点中的、且符合目标光源类型的光源中选取一个光源,作为本次光源采样的目标光源。
上述实施例中,将光源包围盒树的根节点作为本轮节点采样的目标节点,分别确定目标节点下各个子节点对待着色点的节点采样权重,根据节点采样随机数和节点采样权重,从目标节点下各个子节点中确定本轮节点采样的采样节点。可以理解,节点采样权重越大的子节点,其被采样的概率也越大。将采样节点作为新一轮节点采样的目标节点,并迭代节点采样过程,并对最后一轮确定的采样节点中的、且符合目标光源类型的光源进行采样,得到本次光源采样的目标光源,这样,可在保证光源采样效率的前提下,进一步提升光源采样的准确率,从而进一步提升图像的渲染质量。
在一个实施例中,分别确定目标节点下各个子节点对待着色点的节点采样权重,包括:针对目标节点下的每一个子节点,根据子节点中各个光源的光通量,确定子节点对应的节点光通量;根据子节点和待着色点之间的相对位置,确定子节点对应的节点朝向参数;根据节点光通量、节点朝向参数、以及子节点与待着色点之间的距离,确定子节点对待着色点的节点采样权重。
其中,节点光通量,是子节点中各个光源的光通量的总和。节点朝向参数,用于表征子节点相对于待着色点的朝向。
具体地,针对目标节点下的每一个子节点,终端可分别计算子节点中各个光源的光通量,并根据子节点中各个光源的光通量,确定子节点对应的节点光通量。终端可根据子节点和待着色点之间的相对位置,确定子节点对应的节点朝向参数。进而,终端可根据节点光通量、节点朝向参数、以及子节点与待着色点之间的距离,确定子节点对待着色点的节点采样权重。
在一个实施例中,子节点对待着色点的节点采样权重可通过以下公式计算得到:
其中,如图7所示,X表示待着色点,C表示子节点,表示子节点对应的节点光通量,表示节点边界圆锥的圆锥轴线与节点边界圆锥的母线之间的夹角,表示节点边界圆锥的圆锥轴线与待着色点的表面法向量n之间的夹角,表示光定向圆锥的圆锥轴线与光定向圆锥的母线之间的夹角,表示节点边界圆锥的圆锥轴线与光定向圆锥的圆锥轴线之间的夹角,表示预先设置的角度,表示子节点C对待着色点X的节点采样权重。节点边界圆锥,是指待着色点X发出的射线与子节点C的边界相切所形成的圆锥体。光定向圆锥,是指子节点C中所有光源发射出的光线所形成的圆锥体。
上述实施例中,根据节点光通量、节点朝向参数、以及子节点与待着色点之间的距离,确定子节点对待着色点的节点采样权重,可以提升节点采样权重的准确率,从而提升针对节点的采样准确率。
在一个实施例中,对最后一轮确定的采样节点中的、且符合目标光源类型的光源进行采样,得到本次光源采样的目标光源,包括:分别计算最后一轮确定的采样节点中的、且符合目标光源类型的各个光源针对待着色点的第二辐照度;获取针对本次光源采样的光源采样随机数;根据光源采样随机数和第二辐照度,对最后一轮确定的采样节点中的、且符合目标光源类型的光源进行采样,得到本次光源采样的目标光源。
其中,第二辐照度,是最后一轮确定的采样节点中的、且符合目标光源类型的各个光源针对待着色点的辐照度。光源采样随机数,是用于对最后一轮确定的采样节点中的、且符合目标光源类型的光源进行采样的随机数。
具体地,终端可分别计算最后一轮确定的采样节点中的、且符合目标光源类型的各个光源针对待着色点的第二辐照度,并获取针对本次光源采样的光源采样随机数。进而,终端可根据光源采样随机数和第二辐照度,对最后一轮确定的采样节点中的、且符合目标光源类型的光源进行采样,得到本次光源采样的目标光源。
在一个实施例中,终端可根据最后一轮确定的采样节点中的、且符合目标光源类型的各个光源针对待着色点的第二辐照度,分别确定各个光源对应的采样权重范围,每次进行光源采样时,判断光源采样随机数落在哪个光源对应的采样权重范围之内,终端可将光源采样随机数所属的采样权重范围对应的光源,确定为本次光源采样的目标光源。可以理解,第二辐照度越大的光源,其对应的采样权重范围就越大,光源采样随机数落在其采样权重范围的概率就越大,即,第二辐照度越大的光源被确定为目标光源的概率就越大,反之则越小。
在一个实施例中,针对最后一轮确定的采样节点中的、且符合目标光源类型的每一个光源,终端可根据该光源的光通量、朝向、待着色点与该光源之间的相对位置、以及待着色点与该光源之间的距离,确定最后一轮确定的采样节点中的、且符合目标光源类型的各个光源针对待着色点的第二辐照度。
上述实施例中,根据光源采样随机数和各个光源对应的第二辐照度,对最后一轮确定的采样节点中的、且符合目标光源类型的光源进行采样,得到本次光源采样的目标光源。由于第二辐照度越大的光源,其被采样的概率也越大,因此,可提升光源采样的准确率,从而进一步提升图像渲染质量。
在一个实施例中,本次光源采样的目标光源是通过针对目标光源类型预先创建的光源包围盒树采样得到的;方法还包括:根据虚拟场景中符合同一种光源类型的各个光源的体积,构建第二空间包围盒;第二空间包围盒包围符合同一种光源类型的各个光源;将第二空间包围盒作为本轮划分的目标包围盒,确定本轮划分针对目标包围盒的划分平面;根据划分平面,将目标包围盒划分为左包围盒和右包围盒;将左包围盒和右包围盒分别作为本轮划分的目标包围盒,将下一轮划分作为本轮划分,返回确定本轮划分针对目标包围盒的划分平面的步骤以迭代执行,直至满足划分迭代停止条件时停止,得到光源包围盒树。
其中,第二空间包围盒,是基于虚拟场景中符合同一种光源类型的各个光源的体积构建得到的空间包围盒。划分平面,是对目标包围盒进行包围盒划分的平面。左包围盒是位于目标包围盒左边的、且属于目标包围盒下的子包围盒。右包围盒是位于目标包围盒右边的、且属于目标包围盒下的子包围盒。可以理解,若将目标包围盒看做一个节点,则左包围盒和右包围盒是该节点下的左子节点和右子节点。
具体地,终端可根据虚拟场景中符合同一种光源类型的各个光源的体积,构建第二空间包围盒,并将第二空间包围盒作为本轮划分的目标包围盒。终端可确定本轮划分针对目标包围盒的划分平面,并根据划分平面,将目标包围盒划分为左包围盒和右包围盒。进而,终端可将左包围盒和右包围盒分别作为本轮划分的目标包围盒,将下一轮划分作为本轮划分,返回确定本轮划分针对目标包围盒的划分平面的步骤以迭代执行,直至满足划分迭代停止条件时停止,得到光源包围盒树。
在一个实施例中,划分迭代停止条件可以是平面划分的次数到达预设的平面划分次数,也可以是划分得到的目标包围盒中符合同一种光源类型的光源的数量达到预设的光源数量。
在一个实施例中,针对本轮划分所预设的多个候选划分平面中的每个候选划分平面,终端可根据候选划分平面将目标包围盒划分为候选左包围盒和候选右包围盒,并分别确定候选左包围盒和候选右包围盒中光源的数量。终端可将使得候选左包围盒中光源数量与候选右包围盒中光源的数量最接近的候选划分平面,作为本轮划分针对目标包围盒的划分平面。
上述实施例中,根据虚拟场景中符合同一种光源类型的各个光源的体积,构建第二空间包围盒,可以使得构建的第二空间包围盒更加贴合同一种光源类型的各个光源,避免第二空间包围盒的空间过大。将第二空间包围盒作为本轮划分的目标包围盒,确定本轮划分针对目标包围盒的划分平面,根据划分平面将目标包围盒划分为左包围盒和右包围盒,将左包围盒和右包围盒分别作为本轮划分的目标包围盒,以进行迭代划分,得到光源包围盒树。这样,可提升光源包围盒树的构建合理性。
在一个实施例中,确定本轮划分针对目标包围盒的划分平面,包括:针对本轮划分所预设的多个候选划分平面中的每个候选划分平面,根据候选划分平面将目标包围盒划分为候选左包围盒和候选右包围盒;根据候选左包围盒中各个光源的光通量、表面积和朝向,确定候选左包围盒对应的第一光源特征参数,根据候选右包围盒中各个光源的光通量、表面积和朝向,确定候选右包围盒对应的第二光源特征参数;根据目标包围盒中各个光源的表面积和朝向,确定目标包围盒对应的第三光源特征参数;根据第一光源特征参数、第二光源特征参数和第三光源特征参数,确定候选划分平面对应的划分参数;根据各个候选划分平面分别对应的划分参数,从各个候选划分平面中确定本轮划分针对目标包围盒的划分平面。
其中,第一光源特征参数,是用于表征候选左包围盒中光源的特征的参数。第二光源特征参数,是用于表征候选右包围盒中光源的特征的参数。第三光源特征参数,是用于表征目标包围盒中光源的特征的参数。划分参数,是用于描述候选划分平面对目标包围盒进行划分的效果评价参数。
需要说明的是,本实施例中的平面划分迭代过程与上述实施例中的节点采样迭代过程是相互独立的,两个迭代过程互不影响。
具体地,终端可获取针对本轮划分所预设的多个候选划分平面,针对本轮划分所预设的多个候选划分平面中的每个候选划分平面,终端可根据候选划分平面将目标包围盒划分为候选左包围盒和候选右包围盒。终端可分别确定候选左包围盒和候选右包围盒中各个光源的光通量、表面积和朝向,并根据候选左包围盒中各个光源的光通量、表面积和朝向,确定候选左包围盒对应的第一光源特征参数,根据候选右包围盒中各个光源的光通量、表面积和朝向,确定候选右包围盒对应的第二光源特征参数。终端可根据目标包围盒中各个光源的表面积和朝向,确定目标包围盒对应的第三光源特征参数。进而,终端可根据第一光源特征参数、第二光源特征参数和第三光源特征参数,确定候选划分平面对应的划分参数,并根据各个候选划分平面分别对应的划分参数,从各个候选划分平面中确定本轮划分针对目标包围盒的划分平面。
在一个实施例中,将目标包围盒划分为候选左包围盒和候选右包围盒的候选划分平面对应的划分参数,可通过以下公式计算得到:
其中,L表示候选左包围盒,R表示候选右包围盒,表示候选左包围盒中所有光源的光通量,表示候选右包围盒中所有光源的光通量,表示候选左包围盒中所有光源的表面积,表示候选右包围盒中所有光源的表面积,表示候选左包围盒中所有光源的朝向,表示候选右包围盒中所有光源的朝向,表示目标包围盒中所有光源的表面积,表示目标包围盒中所有光源的朝向,表示将目标包围盒划分为候选左包围盒和候选右包围盒的候选划分平面对应的划分参数。可以理解,表示第一光源特征参数,表示第二光源特征参数,表示第三光源特征参数。
上述实施例中,分别根据每个候选划分平面将目标包围盒划分为候选左包围盒和候选右包围盒,根据候选左包围盒中各个光源的光通量、表面积和朝向,确定候选左包围盒对应的第一光源特征参数,可以提升第一光源特征参数的准确性。根据候选右包围盒中各个光源的光通量、表面积和朝向,确定候选右包围盒对应的第二光源特征参数,可以提升第二光源特征参数的准确性。根据目标包围盒中各个光源的表面积和朝向,确定目标包围盒对应的第三光源特征参数,可以提升第三光源特征参数的准确性。进而根据第一光源特征参数、第二光源特征参数和第三光源特征参数,确定候选划分平面对应的划分参数,并根据各个候选划分平面分别对应的划分参数,从各个候选划分平面中确定本轮划分针对目标包围盒的划分平面,这样,可以提升划分平面选取的准确性,从而提升针对目标包围盒的划分合理性,从而进一步提升光源包围盒树的构建合理性。
在一个实施例中,如图8所示,终端可对虚拟场景中的各个光源进行判断,若虚拟场景中包括虚拟光源,则针对虚拟光源构建第一空间包围盒,并对第一空间包围盒进行空间网格划分,得到初始空间网格。终端可遍历各初始空间网格,并将影响各初始空间网格的虚拟光源的标识对应存储于相应初始空间网格中,得到候选空间网格。进而,终端可遍历各候选空间网格,以找到待着色点所在的目标空间网格。所该目标空间网格中的虚拟光源的数量大于预设光源阈值,则构建针对目标空间网格中虚拟光源的第二空间包围盒。终端可对第二空间包围盒进行迭代划分,直至最后划分的节点中的虚拟光源的数量小于预设划分数量阈值时停止划分,得到针对目标空间网格中的虚拟光源的虚拟光源包围盒树。若虚拟场景中包括发光物体光源,则构建针对虚拟场景中发光物体光源的第二空间包围盒。终端可对第二空间包围盒进行迭代划分,直至最后划分的节点中的发光物体光源的数量小于预设划分数量阈值时停止划分,得到针对虚拟场景中发光物体光源的发光物体光源包围盒树。
在一个实施例中,如图9所示,终端可对虚拟场景中的各个光源进行判断,若虚拟场景中包括虚拟光源,则根据待着色点的世界空间坐标确定目标空间网格。终端可判断目标空间网格中虚拟光源的数量是否大于预设光源阈值,若大于预设光源阈值,则获取针对该目标空间网格的虚拟光源包围盒树,并对虚拟光源包围盒树进行节点采样,当采样到的采样节点为虚拟光源包围盒树的叶子节点时,对采样到的该叶子节点进行虚拟光源采样,得到目标光源。若虚拟场景中包括发光物体光源,则获取针对该虚拟场景中的发光物体光源包围盒树,并对发光物体光源包围盒树进行节点采样,当采样到的采样节点为发光物体光源包围盒树的叶子节点时,对采样到的该叶子节点进行发光物体光源采样,得到目标光源。
在一个实施例中,如图10所示,图10中的(a)为采用本申请光照渲染方法对各个虚拟场景进行光照渲染得到的图像。图10中的(b)和(c)为分别采用传统光照渲染方法对各个虚拟场景进行光照渲染得到的图像。很明显,采用本申请光照渲染方法对各个虚拟场景进行光照渲染得到的图像的质量优于采用传统光照渲染方法对各个虚拟场景进行光照渲染得到的图像的质量,采用传统光照渲染方法对各个虚拟场景进行光照渲染得到的图像存在很多光斑和噪声。
在一个实施例中,如图11所示,图11中的(a)为采用本申请光照渲染方法对各个虚拟场景进行光照渲染得到的图像。图11中的(b)、(c)和(d)为分别采用传统光照渲染方法对各个虚拟场景进行光照渲染得到的图像。很明显,采用本申请光照渲染方法对各个虚拟场景进行光照渲染得到的图像的质量优于采用传统光照渲染方法对各个虚拟场景进行光照渲染得到的图像的质量,采用传统光照渲染方法对各个虚拟场景进行光照渲染得到的图像存在很多光斑和噪声。
在一个实施例中,通过图12所示的简单虚拟场景,对本申请光照渲染方法和传统光照渲染方法的光照渲染耗时进行测试,经测试可知,本申请光照渲染方法比传统光照渲染方法的光照渲染耗时更短。
如图13所示,在一个实施例中,提供了一种光照渲染方法,本实施例以该方法应用于图1中的终端102为例进行说明,该方法具体包括以下步骤:
步骤1302,针对虚拟场景中的待着色点,在每次对待着色点进行光源采样时,确定虚拟场景对应的光源采样模式。
步骤1304,在光源采样模式为第一采样模式的情况下,从虚拟场景对应的多种光源类型中选取部分光源类型,作为本次光源采样的目标光源类型;多种光源类型,是对虚拟场景中的光源进行类型划分得到的;多种光源类型包括虚拟光源类型和发光物体光源类型;目标光源类型包括虚拟光源类型和发光物体光源类型中的至少一种。
步骤1306,在光源采样模式为第二采样模式的情况下,将虚拟场景对应的多种光源类型作为本次光源采样的目标光源类型。
步骤1308,在目标光源类型包括虚拟光源类型的情况下,从针对虚拟光源预先构建的候选空间网格中,确定待着色点所属的目标空间网格;虚拟光源,是虚拟场景中符合虚拟光源类型的光源。
步骤1310,在目标空间网格中虚拟光源的数量满足光源稠密条件的情况下,根据针对目标空间网格中虚拟光源预先构建的虚拟光源包围盒树,对目标空间网格中的虚拟光源进行采样,得到本次光源采样的目标光源;其中,虚拟光源包围盒树中的节点用于记录目标空间网格中的虚拟光源。
步骤1312,在目标空间网格中虚拟光源的数量满足光源稀疏条件的情况下,分别确定目标空间网格中各个虚拟光源针对待着色点的第一辐照度。
步骤1314,获取针对本次光源采样的虚拟光源采样随机数。
步骤1316,根据虚拟光源采样随机数和第一辐照度,对目标空间网格中的虚拟光源进行采样,得到本次光源采样的目标光源。
步骤1318,在目标光源类型包括发光物体光源类型的情况下,根据针对发光物体光源预先构建的发光物体光源包围盒树,对虚拟场景中的发光物体光源进行采样,得到本次光源采样的目标光源;其中,发光物体光源,是虚拟场景中符合发光物体光源类型的光源;发光物体光源包围盒树中的节点用于记录虚拟场景中的发光物体光源。
步骤1320,在对待着色点进行多次光源采样后,根据各次光源采样得到的目标光源对待着色点进行光照渲染。
本申请还提供一种应用场景,该应用场景应用上述的光照渲染方法。具体地,该光照渲染方法可应用于游戏中虚拟对象渲染的场景。针对游戏场景中的待着色点,终端可在每次对待着色点进行光源采样时,确定游戏场景对应的光源采样模式。在光源采样模式为第一采样模式的情况下,从游戏场景对应的多种光源类型中选取部分光源类型,作为本次光源采样的目标光源类型;多种光源类型,是对游戏场景中的光源进行类型划分得到的;多种光源类型包括虚拟光源类型和发光物体光源类型;目标光源类型包括虚拟光源类型和发光物体光源类型中的至少一种。
在光源采样模式为第二采样模式的情况下,终端可将游戏场景对应的多种光源类型作为本次光源采样的目标光源类型。在目标光源类型包括虚拟光源类型的情况下,从针对虚拟光源预先构建的候选空间网格中,确定待着色点所属的目标空间网格;虚拟光源,是游戏场景中符合虚拟光源类型的光源。在目标空间网格中虚拟光源的数量满足光源稠密条件的情况下,根据针对目标空间网格中虚拟光源预先构建的虚拟光源包围盒树,对目标空间网格中的虚拟光源进行采样,得到本次光源采样的目标光源;其中,虚拟光源包围盒树中的节点用于记录目标空间网格中的虚拟光源。
在目标空间网格中虚拟光源的数量满足光源稀疏条件的情况下,终端可分别确定目标空间网格中各个虚拟光源针对待着色点的第一辐照度。获取针对本次光源采样的虚拟光源采样随机数。根据虚拟光源采样随机数和第一辐照度,对目标空间网格中的虚拟光源进行采样,得到本次光源采样的目标光源。
在目标光源类型包括发光物体光源类型的情况下,终端可根据针对发光物体光源预先构建的发光物体光源包围盒树,对游戏场景中的发光物体光源进行采样,得到本次光源采样的目标光源;其中,发光物体光源,是游戏场景中符合发光物体光源类型的光源;发光物体光源包围盒树中的节点用于记录游戏场景中的发光物体光源。终端可在对待着色点进行多次光源采样后,根据各次光源采样得到的目标光源对待着色点进行光照渲染。
本申请还另外提供一种应用场景,该应用场景应用上述的光照渲染方法。具体地,该光照渲染方法还可以应用于影视特效、可视化设计、VR(Virtual Reality,虚拟现实)、工业仿真和数字文创等场景。可以理解,在影视特效、可视化设计、VR(Virtual Reality,虚拟现实)、工业仿真和数字文创等场景中,也可能涉及针对虚拟场景的光照渲染。通过本申请的光照渲染方法,可提升针对影视特效、可视化设计、VR(Virtual Reality,虚拟现实)、工业仿真和数字文创等场景的渲染图像的质量。
应该理解的是,虽然上述各实施例的流程图中的各个步骤按照顺序依次显示,但是这些步骤并不是必然按照顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述各实施例中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图14所示,提供了一种光照渲染装置1400,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:
确定模块1402,用于针对虚拟场景中的待着色点,在每次对待着色点进行光源采样时,从虚拟场景对应的多种光源类型中,确定本次光源采样的目标光源类型;多种光源类型,是对虚拟场景中的光源进行类型划分得到的;多种光源类型包括虚拟光源类型和发光物体光源类型;
采样模块1404,用于从虚拟场景中采样符合目标光源类型的光源,得到本次光源采样的目标光源;目标光源类型包括虚拟光源类型和发光物体光源类型中的至少一种;
渲染模块1406,用于在对待着色点进行多次光源采样后,根据各次光源采样得到的目标光源对待着色点进行光照渲染。
在一个实施例中,确定模块1402还用于确定虚拟场景对应的光源采样模式;在光源采样模式为第一采样模式的情况下,从虚拟场景对应的多种光源类型中选取部分光源类型,作为本次光源采样的目标光源类型;在光源采样模式为第二采样模式的情况下,将虚拟场景对应的多种光源类型作为本次光源采样的目标光源类型。
在一个实施例中,确定模块1402还用于在光源采样模式为第一采样模式的情况下,确定虚拟场景对应的多种光源类型中每种光源类型的综合光通量;获取针对本次光源采样的类型采样随机数;根据类型采样随机数和每种光源类型的综合光通量,从多种光源类型中确定本次光源采样的目标光源类型。
在一个实施例中,采样模块1404还用于在目标光源类型包括虚拟光源类型的情况下,从针对虚拟光源预先构建的候选空间网格中,确定待着色点所属的目标空间网格;虚拟光源,是虚拟场景中符合虚拟光源类型的光源;对目标空间网格中的虚拟光源进行采样,得到本次光源采样的目标光源。
在一个实施例中,采样模块1404还用于在目标空间网格中虚拟光源的数量满足光源稠密条件的情况下,根据针对目标空间网格中虚拟光源预先构建的虚拟光源包围盒树,对目标空间网格中的虚拟光源进行采样,得到本次光源采样的目标光源;其中,虚拟光源包围盒树中的节点用于记录目标空间网格中的虚拟光源。
在一个实施例中,采样模块1404还用于在目标空间网格中虚拟光源的数量满足光源稀疏条件的情况下,分别确定目标空间网格中各个虚拟光源针对待着色点的第一辐照度;获取针对本次光源采样的虚拟光源采样随机数;根据虚拟光源采样随机数和第一辐照度,对目标空间网格中的虚拟光源进行采样,得到本次光源采样的目标光源。
在一个实施例中,装置还包括:
第一构建模块,用于针对虚拟场景中的每一个虚拟光源,根据虚拟光源的光照影响半径和光照影响角度,确定虚拟光源的光照影响范围;根据虚拟场景中各个虚拟光源的光照影响范围,构建第一空间包围盒;第一空间包围盒包围虚拟场景中各个虚拟光源的光照影响范围;对第一空间包围盒进行空间网格划分,得到针对虚拟光源的候选空间网格;其中,每个候选空间网格中记录有影响该候选空间网格的虚拟光源的光源标识。
在一个实施例中,采样模块1404还用于在目标光源类型包括发光物体光源类型的情况下,根据针对发光物体光源预先构建的发光物体光源包围盒树,对虚拟场景中的发光物体光源进行采样,得到本次光源采样的目标光源;其中,发光物体光源,是虚拟场景中符合发光物体光源类型的光源;发光物体光源包围盒树中的节点用于记录虚拟场景中的发光物体光源。
在一个实施例中,采样模块1404还用于确定针对目标光源类型预先构建的光源包围盒树;光源包围盒树中的节点用于记录虚拟场景中符合目标光源类型的光源;将光源包围盒树的根节点作为本轮节点采样的目标节点,分别确定目标节点下各个子节点对待着色点的节点采样权重;获取针对本轮节点采样的节点采样随机数;根据节点采样随机数和节点采样权重,从目标节点下各个子节点中确定本轮节点采样的采样节点;将采样节点作为本轮节点采样的目标节点,将下一轮节点采样作为本轮节点采样,返回分别确定目标节点下各个子节点对待着色点的节点采样权重的步骤以迭代执行,直至满足节点采样迭代停止条件时停止,并对最后一轮确定的采样节点中的、且符合目标光源类型的光源进行采样,得到本次光源采样的目标光源。
在一个实施例中,采样模块1404还用于针对目标节点下的每一个子节点,根据子节点中各个光源的光通量,确定子节点对应的节点光通量;根据子节点和待着色点之间的相对位置,确定子节点对应的节点朝向参数;根据节点光通量、节点朝向参数、以及子节点与待着色点之间的距离,确定子节点对待着色点的节点采样权重。
在一个实施例中,采样模块1404还用于分别计算最后一轮确定的采样节点中的、且符合目标光源类型的各个光源针对待着色点的第二辐照度;获取针对本次光源采样的光源采样随机数;根据光源采样随机数和第二辐照度,对最后一轮确定的采样节点中的、且符合目标光源类型的光源进行采样,得到本次光源采样的目标光源。
在一个实施例中,本次光源采样的目标光源是通过针对目标光源类型预先创建的光源包围盒树采样得到的;装置还包括:
第二构建模块,用于根据虚拟场景中符合同一种光源类型的各个光源的体积,构建第二空间包围盒;第二空间包围盒包围符合同一种光源类型的各个光源;将第二空间包围盒作为本轮划分的目标包围盒,确定本轮划分针对目标包围盒的划分平面; 根据划分平面,将目标包围盒划分为左包围盒和右包围盒;将左包围盒和右包围盒分别作为本轮划分的目标包围盒,将下一轮划分作为本轮划分,返回确定本轮划分针对目标包围盒的划分平面的步骤以迭代执行,直至满足划分迭代停止条件时停止,得到光源包围盒树。
在一个实施例中,第二构建模块还用于针对本轮划分所预设的多个候选划分平面中的每个候选划分平面,根据候选划分平面将目标包围盒划分为候选左包围盒和候选右包围盒;根据候选左包围盒中各个光源的光通量、表面积和朝向,确定候选左包围盒对应的第一光源特征参数,根据候选右包围盒中各个光源的光通量、表面积和朝向,确定候选右包围盒对应的第二光源特征参数;根据目标包围盒中各个光源的表面积和朝向,确定目标包围盒对应的第三光源特征参数;根据第一光源特征参数、第二光源特征参数和第三光源特征参数,确定候选划分平面对应的划分参数;根据各个候选划分平面分别对应的划分参数,从各个候选划分平面中确定本轮划分针对目标包围盒的划分平面。
上述光照渲染装置,针对虚拟场景中的待着色点,在每次对待着色点进行光源采样时,从虚拟场景对应的多种光源类型中,确定本次光源采样的目标光源类型。多种光源类型,是对虚拟场景中的光源进行类型划分得到的,多种光源类型包括虚拟光源类型和发光物体光源类型。从虚拟场景中采样符合目标光源类型的光源,得到本次光源采样的目标光源,目标光源类型包括虚拟光源类型和发光物体光源类型中的至少一种。由于每一次光源采样都会从虚拟场景对应的多种光源类型中,确定本次光源采样的目标光源类型,并从虚拟场景中采样符合目标光源类型的目标光源,因此,对待着色点进行多次光源采样得到的光源中,极大概率会包含多种光源类型对应的光源,避免了光源类型的单一性。这样,在对待着色点进行多次光源采样后,根据各次光源采样得到的目标光源对待着色点进行光照渲染,可以提升针对待着色点的渲染效果,从而可以提升图像的渲染质量。
上述光照渲染装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图15所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种光照渲染方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置,显示屏可以是液晶显示屏或电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图15中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (24)
1.一种光照渲染方法,其特征在于,所述方法包括:
针对虚拟场景中的待着色点,在每次对所述待着色点进行光源采样时,从所述虚拟场景对应的多种光源类型中,确定本次光源采样的目标光源类型;所述多种光源类型,是对所述虚拟场景中的光源进行类型划分得到的;所述多种光源类型包括虚拟光源类型和发光物体光源类型;
确定针对所述目标光源类型预先构建的光源包围盒树;所述光源包围盒树中的节点用于记录所述虚拟场景中符合所述目标光源类型的光源;
将所述光源包围盒树的根节点作为本轮节点采样的目标节点,针对所述目标节点下的每一个子节点,根据所述子节点中各个光源的光通量,确定所述子节点对应的节点光通量;根据所述子节点和所述待着色点之间的相对位置,确定所述子节点对应的节点朝向参数;根据所述节点光通量、所述节点朝向参数、以及所述子节点与所述待着色点之间的距离,确定所述子节点对所述待着色点的节点采样权重;
获取针对本轮节点采样的节点采样随机数;
根据所述节点采样随机数和所述节点采样权重,从所述目标节点下各个子节点中确定本轮节点采样的采样节点;
将所述采样节点作为本轮节点采样的目标节点,将下一轮节点采样作为本轮节点采样以迭代执行,直至满足节点采样迭代停止条件时停止,并对最后一轮确定的采样节点中的、且符合所述目标光源类型的光源进行采样,得到本次光源采样的目标光源;所述目标光源类型包括所述虚拟光源类型和发光物体光源类型中的至少一种;
在对所述待着色点进行多次光源采样后,根据各次光源采样得到的目标光源对所述待着色点进行光照渲染。
2.根据权利要求1所述的方法,其特征在于,所述从所述虚拟场景对应的多种光源类型中,确定本次光源采样的目标光源类型,包括:
确定所述虚拟场景对应的光源采样模式;
在所述光源采样模式为第一采样模式的情况下,从所述虚拟场景对应的多种光源类型中选取部分光源类型,作为本次光源采样的目标光源类型;
在所述光源采样模式为第二采样模式的情况下,将所述虚拟场景对应的多种光源类型作为本次光源采样的目标光源类型。
3.根据权利要求2所述的方法,其特征在于,所述在所述光源采样模式为第一采样模式的情况下,从所述虚拟场景对应的多种光源类型中选取部分光源类型,作为本次光源采样的目标光源类型,包括:
在所述光源采样模式为第一采样模式的情况下,确定所述虚拟场景对应的多种光源类型中每种光源类型的综合光通量;
获取针对本次光源采样的类型采样随机数;
根据所述类型采样随机数和所述每种光源类型的综合光通量,从所述多种光源类型中确定本次光源采样的目标光源类型。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述目标光源类型包括所述虚拟光源类型的情况下,从针对虚拟光源预先构建的候选空间网格中,确定所述待着色点所属的目标空间网格;所述虚拟光源,是所述虚拟场景中符合所述虚拟光源类型的光源;所述光源包围盒树包括针对所述目标空间网格中虚拟光源预先构建的虚拟光源包围盒树;
根据针对所述目标空间网格中的虚拟光源预先构建的虚拟光源包围盒树,对所述目标空间网格中虚拟光源执行光源采样的步骤。
5.根据权利要求4所述的方法,其特征在于,所述根据针对所述目标空间网格中虚拟光源预先构建的虚拟光源包围盒树,对所述目标空间网格中的虚拟光源执行光源采样的步骤,包括:
在所述目标空间网格中虚拟光源的数量满足光源稠密条件的情况下,根据针对所述目标空间网格中虚拟光源预先构建的虚拟光源包围盒树,对所述目标空间网格中的虚拟光源执行光源采样的步骤;
其中,所述虚拟光源包围盒树中的节点用于记录所述目标空间网格中的虚拟光源。
6.根据权利要求4所述的方法,其特征在于,所述对所述目标空间网格中的虚拟光源进行采样,得到本次光源采样的目标光源,包括:
在所述目标空间网格中虚拟光源的数量满足光源稀疏条件的情况下,分别确定所述目标空间网格中各个虚拟光源针对所述待着色点的第一辐照度;
获取针对本次光源采样的虚拟光源采样随机数;
根据所述虚拟光源采样随机数和所述第一辐照度,对所述目标空间网格中的虚拟光源进行采样,得到本次光源采样的目标光源。
7.根据权利要求4所述的方法,其特征在于,所述方法还包括:
针对所述虚拟场景中的每一个虚拟光源,根据所述虚拟光源的光照影响半径和光照影响角度,确定所述虚拟光源的光照影响范围;
根据所述虚拟场景中各个虚拟光源的光照影响范围,构建第一空间包围盒;所述第一空间包围盒包围所述虚拟场景中各个虚拟光源的光照影响范围;
对所述第一空间包围盒进行空间网格划分,得到针对虚拟光源的候选空间网格;其中,每个候选空间网格中记录有影响该候选空间网格的虚拟光源的光源标识。
8.根据权利要求1所述的方法,其特征在于,所述光源包围盒树包括针对发光物体光源预先构建的发光物体光源包围盒树;所述方法还包括:
在所述目标光源类型包括所述发光物体光源类型的情况下,根据针对发光物体光源预先构建的发光物体光源包围盒树,对所述虚拟场景中的发光物体光源执行光源采样的步骤;
其中,所述发光物体光源,是所述虚拟场景中符合所述发光物体光源类型的光源;所述发光物体光源包围盒树中的节点用于记录所述虚拟场景中的发光物体光源。
9.根据权利要求1所述的方法,其特征在于,所述对最后一轮确定的采样节点中的、且符合所述目标光源类型的光源进行采样,得到本次光源采样的目标光源,包括:
分别计算所述最后一轮确定的采样节点中的、且符合所述目标光源类型的各个光源针对所述待着色点的第二辐照度;
获取针对本次光源采样的光源采样随机数;
根据光源采样随机数和所述第二辐照度,对最后一轮确定的采样节点中的、且符合所述目标光源类型的光源进行采样,得到本次光源采样的目标光源。
10.根据权利要求1至9中任一项所述的方法,其特征在于,所述本次光源采样的目标光源是通过针对所述目标光源类型预先创建的光源包围盒树采样得到的;所述方法还包括:
根据所述虚拟场景中符合同一种光源类型的各个光源的体积,构建第二空间包围盒;所述第二空间包围盒包围所述符合同一种光源类型的各个光源;
将所述第二空间包围盒作为本轮划分的目标包围盒,确定本轮划分针对所述目标包围盒的划分平面;
根据所述划分平面,将所述目标包围盒划分为左包围盒和右包围盒;
将所述左包围盒和右包围盒分别作为本轮划分的目标包围盒,将下一轮划分作为本轮划分,返回所述确定本轮划分针对所述目标包围盒的划分平面的步骤以迭代执行,直至满足划分迭代停止条件时停止,得到光源包围盒树。
11.根据权利要求10所述的方法,其特征在于,所述确定本轮划分针对所述目标包围盒的划分平面,包括:
针对本轮划分所预设的多个候选划分平面中的每个候选划分平面,根据所述候选划分平面将所述目标包围盒划分为候选左包围盒和候选右包围盒;
根据所述候选左包围盒中各个光源的光通量、表面积和朝向,确定所述候选左包围盒对应的第一光源特征参数,根据所述候选右包围盒中各个光源的光通量、表面积和朝向,确定所述候选右包围盒对应的第二光源特征参数;
根据所述目标包围盒中各个光源的表面积和朝向,确定所述目标包围盒对应的第三光源特征参数;
根据所述第一光源特征参数、所述第二光源特征参数和所述第三光源特征参数,确定所述候选划分平面对应的划分参数;
根据各个候选划分平面分别对应的划分参数,从所述各个候选划分平面中确定本轮划分针对所述目标包围盒的划分平面。
12.一种光照渲染装置,其特征在于,所述装置包括:
确定模块,用于针对虚拟场景中的待着色点,在每次对所述待着色点进行光源采样时,从所述虚拟场景对应的多种光源类型中,确定本次光源采样的目标光源类型;所述多种光源类型,是对所述虚拟场景中的光源进行类型划分得到的;所述多种光源类型包括虚拟光源类型和发光物体光源类型;
采样模块,用于确定针对所述目标光源类型预先构建的光源包围盒树;所述光源包围盒树中的节点用于记录所述虚拟场景中符合所述目标光源类型的光源;将所述光源包围盒树的根节点作为本轮节点采样的目标节点,针对所述目标节点下的每一个子节点,根据所述子节点中各个光源的光通量,确定所述子节点对应的节点光通量;根据所述子节点和所述待着色点之间的相对位置,确定所述子节点对应的节点朝向参数;根据所述节点光通量、所述节点朝向参数、以及所述子节点与所述待着色点之间的距离,确定所述子节点对所述待着色点的节点采样权重;获取针对本轮节点采样的节点采样随机数;根据所述节点采样随机数和所述节点采样权重,从所述目标节点下各个子节点中确定本轮节点采样的采样节点;将所述采样节点作为本轮节点采样的目标节点,将下一轮节点采样作为本轮节点采样以迭代执行,直至满足节点采样迭代停止条件时停止,并对最后一轮确定的采样节点中的、且符合所述目标光源类型的光源进行采样,得到本次光源采样的目标光源;所述目标光源类型包括所述虚拟光源类型和发光物体光源类型中的至少一种;
渲染模块,用于在对所述待着色点进行多次光源采样后,根据各次光源采样得到的目标光源对所述待着色点进行光照渲染。
13.根据权利要求12所述的装置,其特征在于,所述确定模块还用于确定所述虚拟场景对应的光源采样模式;在所述光源采样模式为第一采样模式的情况下,从所述虚拟场景对应的多种光源类型中选取部分光源类型,作为本次光源采样的目标光源类型;在所述光源采样模式为第二采样模式的情况下,将所述虚拟场景对应的多种光源类型作为本次光源采样的目标光源类型。
14.根据权利要求13所述的装置,其特征在于,所述确定模块还用于在所述光源采样模式为第一采样模式的情况下,确定所述虚拟场景对应的多种光源类型中每种光源类型的综合光通量;获取针对本次光源采样的类型采样随机数;根据所述类型采样随机数和所述每种光源类型的综合光通量,从所述多种光源类型中确定本次光源采样的目标光源类型。
15.根据权利要求12所述的装置,其特征在于,所述采样模块还用于在所述目标光源类型包括所述虚拟光源类型的情况下,从针对虚拟光源预先构建的候选空间网格中,确定所述待着色点所属的目标空间网格;所述虚拟光源,是所述虚拟场景中符合所述虚拟光源类型的光源;所述光源包围盒树包括针对所述目标空间网格中虚拟光源预先构建的虚拟光源包围盒树;根据针对所述目标空间网格中的虚拟光源预先构建的虚拟光源包围盒树,对所述目标空间网格中虚拟光源执行光源采样的步骤。
16.根据权利要求15所述的装置,其特征在于,所述采样模块还用于在所述目标空间网格中虚拟光源的数量满足光源稠密条件的情况下,根据针对所述目标空间网格中虚拟光源预先构建的虚拟光源包围盒树,对所述目标空间网格中的虚拟光源执行光源采样的步骤;其中,所述虚拟光源包围盒树中的节点用于记录所述目标空间网格中的虚拟光源。
17.根据权利要求15所述的装置,其特征在于,所述采样模块还用于在所述目标空间网格中虚拟光源的数量满足光源稀疏条件的情况下,分别确定所述目标空间网格中各个虚拟光源针对所述待着色点的第一辐照度;获取针对本次光源采样的虚拟光源采样随机数;根据所述虚拟光源采样随机数和所述第一辐照度,对所述目标空间网格中的虚拟光源进行采样,得到本次光源采样的目标光源。
18.根据权利要求15所述的装置,其特征在于,所述装置还包括:
第一构建模块,用于针对所述虚拟场景中的每一个虚拟光源,根据所述虚拟光源的光照影响半径和光照影响角度,确定所述虚拟光源的光照影响范围;根据所述虚拟场景中各个虚拟光源的光照影响范围,构建第一空间包围盒;所述第一空间包围盒包围所述虚拟场景中各个虚拟光源的光照影响范围;对所述第一空间包围盒进行空间网格划分,得到针对虚拟光源的候选空间网格;其中,每个候选空间网格中记录有影响该候选空间网格的虚拟光源的光源标识。
19.根据权利要求12所述的装置,其特征在于,所述光源包围盒树包括针对发光物体光源预先构建的发光物体光源包围盒树;所述采样模块还用于在所述目标光源类型包括所述发光物体光源类型的情况下,根据针对发光物体光源预先构建的发光物体光源包围盒树,对所述虚拟场景中的发光物体光源执行光源采样的步骤;其中,所述发光物体光源,是所述虚拟场景中符合所述发光物体光源类型的光源;所述发光物体光源包围盒树中的节点用于记录所述虚拟场景中的发光物体光源。
20.根据权利要求12所述的装置,其特征在于,所述采样模块还用于分别计算所述最后一轮确定的采样节点中的、且符合所述目标光源类型的各个光源针对所述待着色点的第二辐照度;获取针对本次光源采样的光源采样随机数;根据光源采样随机数和所述第二辐照度,对最后一轮确定的采样节点中的、且符合所述目标光源类型的光源进行采样,得到本次光源采样的目标光源。
21.根据权利要求12至20中任一项所述的装置,其特征在于,所述本次光源采样的目标光源是通过针对所述目标光源类型预先创建的光源包围盒树采样得到的;所述装置还包括:
第二构建模块,用于根据所述虚拟场景中符合同一种光源类型的各个光源的体积,构建第二空间包围盒;所述第二空间包围盒包围所述符合同一种光源类型的各个光源;将所述第二空间包围盒作为本轮划分的目标包围盒,确定本轮划分针对所述目标包围盒的划分平面;根据所述划分平面,将所述目标包围盒划分为左包围盒和右包围盒;将所述左包围盒和右包围盒分别作为本轮划分的目标包围盒,将下一轮划分作为本轮划分,返回所述确定本轮划分针对所述目标包围盒的划分平面的步骤以迭代执行,直至满足划分迭代停止条件时停止,得到光源包围盒树。
22.根据权利要求21所述的装置,其特征在于,所述第二构建模块还用于针对本轮划分所预设的多个候选划分平面中的每个候选划分平面,根据所述候选划分平面将所述目标包围盒划分为候选左包围盒和候选右包围盒;根据所述候选左包围盒中各个光源的光通量、表面积和朝向,确定所述候选左包围盒对应的第一光源特征参数,根据所述候选右包围盒中各个光源的光通量、表面积和朝向,确定所述候选右包围盒对应的第二光源特征参数;根据所述目标包围盒中各个光源的表面积和朝向,确定所述目标包围盒对应的第三光源特征参数;根据所述第一光源特征参数、所述第二光源特征参数和所述第三光源特征参数,确定所述候选划分平面对应的划分参数;根据各个候选划分平面分别对应的划分参数,从所述各个候选划分平面中确定本轮划分针对所述目标包围盒的划分平面。
23.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至11中任一项所述的方法的步骤。
24.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至11中任一项所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210993392.0A CN115082611B (zh) | 2022-08-18 | 2022-08-18 | 光照渲染方法、装置、设备和介质 |
PCT/CN2023/101570 WO2024037176A1 (zh) | 2022-08-18 | 2023-06-21 | 虚拟场景的渲染方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210993392.0A CN115082611B (zh) | 2022-08-18 | 2022-08-18 | 光照渲染方法、装置、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115082611A CN115082611A (zh) | 2022-09-20 |
CN115082611B true CN115082611B (zh) | 2022-11-11 |
Family
ID=83244770
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210993392.0A Active CN115082611B (zh) | 2022-08-18 | 2022-08-18 | 光照渲染方法、装置、设备和介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115082611B (zh) |
WO (1) | WO2024037176A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115082611B (zh) * | 2022-08-18 | 2022-11-11 | 腾讯科技(深圳)有限公司 | 光照渲染方法、装置、设备和介质 |
CN116612225B (zh) * | 2023-07-18 | 2023-12-22 | 腾讯科技(深圳)有限公司 | 光照渲染方法、装置、设备和介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017167084A1 (zh) * | 2016-03-29 | 2017-10-05 | 浙江大学 | 基于虚拟光源和自适应稀疏矩阵还原的全局光照绘制方法 |
CN110599574A (zh) * | 2019-09-17 | 2019-12-20 | 网易(杭州)网络有限公司 | 游戏场景的渲染方法、装置及电子设备 |
CN112215938A (zh) * | 2020-10-14 | 2021-01-12 | 网易(杭州)网络有限公司 | 游戏中反射光照数据的生成方法、装置以及计算机设备 |
CN112927341A (zh) * | 2021-04-02 | 2021-06-08 | 腾讯科技(深圳)有限公司 | 光照渲染方法、装置、计算机设备和存储介质 |
CN114119853A (zh) * | 2022-01-26 | 2022-03-01 | 腾讯科技(深圳)有限公司 | 图像渲染方法、装置、设备和介质 |
WO2022042003A1 (zh) * | 2020-08-31 | 2022-03-03 | 华为技术有限公司 | 三维着色的方法、装置、计算设备和存储介质 |
CN114549730A (zh) * | 2020-11-27 | 2022-05-27 | 华为技术有限公司 | 多光源场景渲染的光源采样权重确定方法及相关设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2545226A (en) * | 2015-12-09 | 2017-06-14 | Samsung Electronics Co Ltd | Determining lighting in a 3D virtual scene |
KR102558737B1 (ko) * | 2016-01-04 | 2023-07-24 | 삼성전자주식회사 | 3d 렌더링 방법 및 장치 |
CN108961373B (zh) * | 2018-05-23 | 2022-06-07 | 福建天晴在线互动科技有限公司 | 一种毛发渲染的方法及终端 |
CN111260766B (zh) * | 2020-01-17 | 2024-03-15 | 网易(杭州)网络有限公司 | 虚拟光源处理方法、装置、介质及电子设备 |
CN115082611B (zh) * | 2022-08-18 | 2022-11-11 | 腾讯科技(深圳)有限公司 | 光照渲染方法、装置、设备和介质 |
-
2022
- 2022-08-18 CN CN202210993392.0A patent/CN115082611B/zh active Active
-
2023
- 2023-06-21 WO PCT/CN2023/101570 patent/WO2024037176A1/zh unknown
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017167084A1 (zh) * | 2016-03-29 | 2017-10-05 | 浙江大学 | 基于虚拟光源和自适应稀疏矩阵还原的全局光照绘制方法 |
CN110599574A (zh) * | 2019-09-17 | 2019-12-20 | 网易(杭州)网络有限公司 | 游戏场景的渲染方法、装置及电子设备 |
WO2022042003A1 (zh) * | 2020-08-31 | 2022-03-03 | 华为技术有限公司 | 三维着色的方法、装置、计算设备和存储介质 |
CN112215938A (zh) * | 2020-10-14 | 2021-01-12 | 网易(杭州)网络有限公司 | 游戏中反射光照数据的生成方法、装置以及计算机设备 |
CN114549730A (zh) * | 2020-11-27 | 2022-05-27 | 华为技术有限公司 | 多光源场景渲染的光源采样权重确定方法及相关设备 |
CN112927341A (zh) * | 2021-04-02 | 2021-06-08 | 腾讯科技(深圳)有限公司 | 光照渲染方法、装置、计算机设备和存储介质 |
CN114119853A (zh) * | 2022-01-26 | 2022-03-01 | 腾讯科技(深圳)有限公司 | 图像渲染方法、装置、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2024037176A1 (zh) | 2024-02-22 |
CN115082611A (zh) | 2022-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115082611B (zh) | 光照渲染方法、装置、设备和介质 | |
US11270497B2 (en) | Object loading method and apparatus, storage medium, and electronic device | |
CN111467806B (zh) | 游戏场景中资源生成方法、装置、介质及电子设备 | |
CN114119853B (zh) | 图像渲染方法、装置、设备和介质 | |
CN114419240B (zh) | 光照渲染方法、装置、计算机设备和存储介质 | |
CN109146943A (zh) | 静止物体的检测方法、装置及电子设备 | |
CN110990516A (zh) | 地图数据的处理方法、装置和服务器 | |
CN115830208B (zh) | 全局光照渲染方法、装置、计算机设备和存储介质 | |
CN111627119B (zh) | 纹理贴图方法及装置、设备、存储介质 | |
CN116030180B (zh) | 辐照度缓存光照计算方法及装置、存储介质、计算机设备 | |
GB2513699A (en) | 3-D Graphics rendering with implicit geometry | |
US20120299921A1 (en) | Directing indirect illumination to visibly influenced scene regions | |
CN114299220A (zh) | 光照贴图的数据生成方法、装置、设备、介质及程序产品 | |
Sahraoui et al. | Integrated GIS software for computing landscape visibility metrics | |
CN112528508A (zh) | 电磁可视化方法和装置 | |
US10957025B2 (en) | Photograph with variable light source distribution | |
Uznir et al. | Improving 3D spatial queries search: Newfangled technique of space filling curves in 3D city modeling | |
CN114596401A (zh) | 渲染方法、设备以及系统 | |
CN115984440B (zh) | 对象渲染方法、装置、计算机设备和存储介质 | |
CN116012520B (zh) | 阴影渲染方法、装置、计算机设备和存储介质 | |
US8922556B2 (en) | Line space gathering for single scattering in large scenes | |
CN116912817A (zh) | 三维场景模型拆分方法、装置、电子设备和存储介质 | |
CN115775294A (zh) | 一种场景渲染方法及装置 | |
CN113313809A (zh) | 一种渲染方法和装置 | |
CN117274473B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40073648 Country of ref document: HK |