CN114119853B - 图像渲染方法、装置、设备和介质 - Google Patents
图像渲染方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN114119853B CN114119853B CN202210090734.8A CN202210090734A CN114119853B CN 114119853 B CN114119853 B CN 114119853B CN 202210090734 A CN202210090734 A CN 202210090734A CN 114119853 B CN114119853 B CN 114119853B
- Authority
- CN
- China
- Prior art keywords
- light source
- grid
- image
- rendered
- pixel point
- 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
- 238000009877 rendering Methods 0.000 title claims abstract description 183
- 238000000034 method Methods 0.000 title claims abstract description 56
- 239000000463 material Substances 0.000 claims abstract description 245
- 238000005286 illumination Methods 0.000 claims abstract description 230
- 238000006243 chemical reaction Methods 0.000 claims abstract description 50
- 238000012545 processing Methods 0.000 claims abstract description 47
- 238000004040 coloring Methods 0.000 claims abstract description 32
- 238000005070 sampling Methods 0.000 claims description 148
- 230000005855 radiation Effects 0.000 claims description 82
- 239000013598 vector Substances 0.000 claims description 60
- 239000007787 solid Substances 0.000 claims description 54
- 230000008859 change Effects 0.000 claims description 45
- 238000005315 distribution function Methods 0.000 claims description 43
- 230000004907 flux Effects 0.000 claims description 26
- 238000004364 calculation method Methods 0.000 claims description 25
- 230000005484 gravity Effects 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 17
- 238000003860 storage Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 claims description 7
- 230000000694 effects Effects 0.000 description 22
- 238000010586 diagram Methods 0.000 description 10
- 238000004088 simulation Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000009776 industrial production Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 241000519995 Stachys sylvatica Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004020 luminiscence type Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000002310 reflectometry Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
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/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/04—Texture mapping
-
- 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
- G06T15/80—Shading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/50—Image enhancement or restoration using two or more images, e.g. averaging or subtraction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/90—Determination of colour characteristics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20212—Image combination
- G06T2207/20221—Image fusion; Image merging
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Computing Systems (AREA)
- Geometry (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Generation (AREA)
Abstract
本申请涉及一种图像渲染方法、装置、设备和介质,属于光照渲染技术领域。方法包括:获取待渲染图像;待渲染图像中物体的材质包括光源材质;光源材质,是通过将相应着色模型设置为自定义的网格光源着色模型,而被赋予光源属性的材质;从待渲染图像中查找具有光源材质的物体网格,并将光源材质的物体网格进行光源结构转换处理,得到光源网格;物体网格是用于构成待渲染图像中的物体的网格;分别以各个光源网格作为光源,对待渲染图像中各个像素点进行直接光照渲染,并融合各光源网格分别针对每个像素点的直接光照渲染结果,得到渲染后的目标图像。采用本方法能够提升渲染的图像质量。
Description
技术领域
本申请涉及图像处理技术领域,特别是涉及一种图像渲染方法、装置、设备和介质。
背景技术
随着图像处理技术的发展,出现了光照渲染技术。光照渲染技术,是对场景中的物体进行光照渲染的技术,比如,通过光照渲染技术,可以实现对游戏场景中的物体进行光照渲染。传统技术中,具有自发光材质的物体,对场景的光照影响,主要是通过间接光照的方式,判断抵达物体表面之后所反弹的光线是否击中该物体,以此来获得自发光材质对物体表面的光照贡献。
然而,目前的间接光照方案,对场景中物体的光照渲染效果较差,从而导致最终渲染得到的图像存在较多的噪声,图像质量较低。
发明内容
基于此,有必要针对上述技术问题,提供一种提升图像质量的图像渲染方法、装置、设备和介质。
第一方面,本申请提供了一种图像渲染方法,所述方法包括:
获取待渲染图像;所述待渲染图像中物体的材质包括光源材质;所述光源材质,是通过将相应着色模型设置为自定义的网格光源着色模型,而被赋予光源属性的材质;
从所述待渲染图像中查找具有所述光源材质的物体网格,并将所述光源材质的物体网格进行光源结构转换处理,得到光源网格;所述物体网格是用于构成所述待渲染图像中的物体的网格;
分别以各个所述光源网格作为光源,对所述待渲染图像中各个像素点进行直接光照渲染,并融合各所述光源网格分别针对每个所述像素点的直接光照渲染结果,得到渲染后的目标图像。
第二方面,本申请提供了一种图像渲染装置,所述装置包括:
获取模块,用于获取待渲染图像;所述待渲染图像中物体的材质包括光源材质;所述光源材质,是通过将相应着色模型设置为自定义的网格光源着色模型,而被赋予光源属性的材质;
查找模块,用于从所述待渲染图像中查找具有所述光源材质的物体网格,并将所述光源材质的物体网格进行光源结构转换处理,得到光源网格;所述物体网格是用于构成所述待渲染图像中的物体的网格;
渲染模块,用于分别以各个所述光源网格作为光源,对所述待渲染图像中各个像素点进行直接光照渲染,并融合各所述光源网格分别针对每个所述像素点的直接光照渲染结果,得到渲染后的目标图像。
在一个实施例中,所述待渲染图像中同一物体包括多个同材质网格区域;所述同材质网格区域是同一物体中材质相同、且相邻的多个物体网格所构成的区域;所述查找模块还用于从所述待渲染图像中各个所述同材质网格区域中,查找具有光源属性的同材质网格区域,得到自发光同材质网格区域;所述自发光同材质网格区域中包括的各个物体网格为光源材质的物体网格;对所述自发光同材质网格区域中的各所述光源材质的物体网格进行光源结构转换处理,得到光源网格。
在一个实施例中,所述查找模块还用于针对每个所述自发光同材质网格区域,获取与所述自发光同材质网格区域对应的计算调度指令;根据所述计算调度指令启用计算着色器,以执行所述计算着色器中的多个线程,并行地对所述自发光同材质网格区域中各个光源材质的物体网格进行光源结构转换处理,得到光源网格。
在一个实施例中,所述渲染模块还用于分别以各个所述光源网格作为光源,确定所述光源网格的辐射光照信息;基于各个所述光源网格的辐射光照信息,对所述待渲染图像中各个像素点进行直接光照渲染。
在一个实施例中,所述辐射光照信息包括辐射颜色值;所述渲染模块还用于若所述光源网格为纯色光源网格,则将所述纯色光源网格对应的自发光颜色值作为所述纯色光源网格的辐射颜色值;所述自发光颜色值,是所述纯色光源网格对应的网格光源着色模型中预先设置的颜色值。
在一个实施例中,所述辐射光照信息包括辐射颜色值;所述渲染模块还用于若所述光源网格为纹理光源网格,则确定所述纹理光源网格中各纹理颜色的平均颜色值,得到所述纹理光源网格的辐射颜色值。
在一个实施例中,所述渲染模块还用于若所述光源网格为纹理光源三角网格,则确定所述纹理光源三角网格中各条边的长度;根据所述纹理光源三角网格中最短边的长度,确定所述纹理光源三角网格在纹理空间中的第一纹理信息变化率;根据所述纹理光源三角网格中两条长边各自对应的长度,确定所述纹理光源三角网格在纹理空间中的第二纹理信息变化率;所述两条长边是所述纹理光源三角网格中除所述最短边之外的两条边;根据所述纹理光源三角网格对应的第一纹理信息变化率和第二纹理信息变化率,确定所述纹理光源三角网格中各纹理颜色的平均颜色值,得到所述纹理光源三角网格的辐射颜色值。
在一个实施例中,所述查找模块还用于将所述光源材质的物体网格进行光源结构转换处理,得到初始光源网格;确定所述初始光源网格的网格面积和辐射光照信息;针对每个初始光源网格,根据所述初始光源网格的网格面积和辐射光照信息,确定所述初始光源网格的光通量;根据所述初始光源网格的光通量,对所述初始光源网格进行采样,得到光源网格。
在一个实施例中,所述渲染模块还用于针对每个光源网格,确定所述光源网格对所述待渲染图像中各个像素点的直接光照贡献值;根据所述直接光照贡献值和所述辐射光照信息,确定所述光源网格对所述待渲染图像中各个像素点所贡献的渲染光照值;融合各所述光源网格分别针对每个所述像素点的渲染光照值,得到渲染后的目标图像。
在一个实施例中,所述渲染模块还用于针对每个光源网格,按照概率密度分布函数对所述光源网格中的点进行采样,得到所述光源网格中的各个采样点;针对所述待渲染图像中的每个像素点,根据各个所述采样点分别对应的位置信息和相机的位置信息,分别确定各个所述采样点相对于所述像素点的第一贡献系数;根据各个所述采样点针对所述像素点的入射光线与所述像素点的法线之间的夹角,分别确定各个所述采样点相对于所述像素点的第二贡献系数;根据用于采样每个采样点的概率密度分布函数值,确定每个所述采样点相对于所述像素点的第三贡献系数;根据各个所述采样点相对于所述像素点的所述第一贡献系数、所述第二贡献系数和所述第三贡献系数,确定所述光源网格对所述待渲染图像中所述像素点的直接光照贡献值。
在一个实施例中,所述渲染模块还用于针对每个光源网格,确定所述光源网格的重心和网格面积;针对所述待渲染图像中的每个像素点,确定所述光源网格的重心与所述待渲染图像中的所述像素点之间的距离;基于所述距离和所述光源网格的网格面积,确定所述光源网格相对于所述像素点的第一立体角;根据所述第一立体角,确定用于采样每个采样点的概率密度分布函数值,并将所述用于采样每个采样点的概率密度分布函数值作为每个所述采样点相对于所述像素点的第三贡献系数。
在一个实施例中,所述渲染模块还用于针对所述待渲染图像中的每个像素点,分别确定所述像素点与所述光源网格的各个顶点所构成的各条棱边的向量;根据各条所述棱边的向量,分别确定所述像素点与所述光源网格的各个顶点所构成的多棱锥中、且所述像素点所在的各个面的法向量;根据所述像素点所在的各个面的法向量,确定所述光源网格相对于所述像素点的第二立体角;将所述第二立体角作为所述光源网格对所述待渲染图像中所述像素点的直接光照贡献值。
第三方面,本申请提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取待渲染图像;所述待渲染图像中物体的材质包括光源材质;所述光源材质,是通过将相应着色模型设置为自定义的网格光源着色模型,而被赋予光源属性的材质;
从所述待渲染图像中查找具有所述光源材质的物体网格,并将所述光源材质的物体网格进行光源结构转换处理,得到光源网格;所述物体网格是用于构成所述待渲染图像中的物体的网格;
分别以各个所述光源网格作为光源,对所述待渲染图像中各个像素点进行直接光照渲染,并融合各所述光源网格分别针对每个所述像素点的直接光照渲染结果,得到渲染后的目标图像。
第四方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取待渲染图像;所述待渲染图像中物体的材质包括光源材质;所述光源材质,是通过将相应着色模型设置为自定义的网格光源着色模型,而被赋予光源属性的材质;
从所述待渲染图像中查找具有所述光源材质的物体网格,并将所述光源材质的物体网格进行光源结构转换处理,得到光源网格;所述物体网格是用于构成所述待渲染图像中的物体的网格;
分别以各个所述光源网格作为光源,对所述待渲染图像中各个像素点进行直接光照渲染,并融合各所述光源网格分别针对每个所述像素点的直接光照渲染结果,得到渲染后的目标图像。
第五方面,本申请提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取待渲染图像;所述待渲染图像中物体的材质包括光源材质;所述光源材质,是通过将相应着色模型设置为自定义的网格光源着色模型,而被赋予光源属性的材质;
从所述待渲染图像中查找具有所述光源材质的物体网格,并将所述光源材质的物体网格进行光源结构转换处理,得到光源网格;所述物体网格是用于构成所述待渲染图像中的物体的网格;
分别以各个所述光源网格作为光源,对所述待渲染图像中各个像素点进行直接光照渲染,并融合各所述光源网格分别针对每个所述像素点的直接光照渲染结果,得到渲染后的目标图像。
上述图像渲染方法、装置、设备和介质,获取待渲染图像;待渲染图像中物体的材质包括光源材质,光源材质,是通过将相应着色模型设置为自定义的网格光源着色模型,而被赋予光源属性的材质通过从待渲有自发光染图像中查找具有光源材质的物体网格,并将光源材质的物体网格进行光源结构转换处理,可以得到直接作为光源的光源网格。进而,分别以各个光源网格作为光源,可以对待渲染图像中各个像素点进行直接光照渲染,通过融合各光源网格分别针对每个像素点的直接光照渲染结果,可以得到渲染后的目标图像。通过将进行光源结构转换处理得到的光源网格,直接作为光源对待渲染图像中各个像素点进行直接光照渲染,可以提升对场景中物体的光照渲染效果,从而可以减少最终渲染得到的目标图像的噪声,提升图像质量。
附图说明
图1为一个实施例中图像渲染方法的应用环境图;
图2为一个实施例中图像渲染方法的流程示意图;
图3为一个实施例中对材质的着色模型进行设置的界面示意图;
图4为一个实施例中光源网格作为光源对场景进行直接光照的示意图;
图5为另一个实施例中光源网格作为光源对场景进行直接光照的示意图;
图6为本申请直接光照方案与传统的间接光照方案的光照效果比对示意图;
图7为一个实施例中基于光源三角网格计算第一纹理信息变化率和第二纹理信息变化率的原理示意图;
图8为一个实施例中计算第一立体角的原理示意图;
图9为一个实施例中计算第二立体角的原理示意图;
图10为另一个实施例中图像渲染方法的流程示意图;
图11为一个实施例中图像渲染装置的结构框图;
图12为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的图像渲染方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、便携式可穿戴设备和车载终端,服务器104可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端102以及服务器104可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
终端102可获取待渲染图像;待渲染图像中物体的材质包括光源材质;光源材质,是通过将相应着色模型设置为自定义的网格光源着色模型,而被赋予光源属性的材质。终端102可从待渲染图像中查找具有光源材质的物体网格,并将光源材质的物体网格进行光源结构转换处理,得到光源网格;物体网格是用于构成待渲染图像中的物体的网格。进而,终端102可分别以各个光源网格作为光源,对待渲染图像中各个像素点进行直接光照渲染,并融合各光源网格分别针对每个像素点的直接光照渲染结果,得到渲染后的目标图像。
可以理解,服务器104可以提供待渲染图像,终端102可对服务器104所提供的待渲染图像进行光照渲染。终端102也可以从本地获取待渲染图像,并对从本地获取待渲染图像进行光照渲染。本实施例对此不做限定,可以理解,图1中的应用场景仅为示意说明,并不限定于此。
在一个实施例中,如图2所示,提供了一种图像渲染方法,该方法可应用于终端,由终端自身单独执行,也可以通过终端和服务器之间的交互来实现。本实施例以该方法应用于图1中的终端102为例进行说明,包括以下步骤:
步骤202,获取待渲染图像;待渲染图像中物体的材质包括光源材质;光源材质,是通过将相应着色模型设置为自定义的网格光源着色模型,而被赋予光源属性的材质。
其中,待渲染图像是待渲染的图像。物体的材质,是指一系列描述物体表面性质的参数和资源,比如,物体表面的反射率、粗糙度和自发光等中的至少一种。光源材质,是指具备光源属性的材质,即,光源材质具备光源能力,能够对场景进行直接光照渲染的材质。着色模型,是用于描述特定材质如何接收和反射光线的公式。网格光源着色模型,是用于赋予材质光源属性、以使具有该材质的物体网格能够作为光源的着色模型。光源属性,是指可作为光源对待渲染图像中的物体进行直接光照的属性。可以理解,通过将材质的着色模型设置为自定义的网格光源模型后,该材质才具备光源属性,能够对场景进行直接光照渲染,因此,光源材质是一种通过自定义实现的能进行直接光照渲染的材质,与传统的实现间接光照渲染的自发光材质是不同的概念。
在一个实施例中,终端可获取待渲染的场景数据,并基于待渲染的场景数据,生成待渲染图像。
在一个实施例中,服务器中存储有待渲染图像,终端可与服务器进行通信,并从服务器中获取待渲染图像。
在一个实施例中,如图3所示,终端可将某种材质的着色模型设置为自定义的网格光源着色模型,即,图3的301中预先定有各种类型的着色模型,终端可响应于针对301中网格光源着色模型的选择操作,将该种材质的着色模型设置为自定义的网格光源着色模型。终端还可基于302中的自发光颜色设置项,在网格光源着色模型中设置该种材质的自发光颜色值(如303所示)。终端还可以基于纹理颜色设置区域304,设置该种材质的纹理颜色。305即为展示的对该种材质的光照效果。
步骤204,从待渲染图像中查找具有光源材质的物体网格,并将光源材质的物体网格进行光源结构转换处理,得到光源网格;物体网格是用于构成待渲染图像中的物体的网格。
其中,光源结构转换处理,是将物体网格的物体结构转换为光源结构的处理过程。光源网格,是具备光源属性的物体网格。可以理解,光源网格,是可直接作为光源对待渲染图像中的物体进行直接光照的物体网格。
具体地,待渲染图像中的物体是由很多物体网格构成的,这些物体网格中可能包含具有光源材质的物体网格。终端可从待渲染图像中的众多物体网格中,查找具有光源材质的物体网格。可以理解,终端可确定各物体网格所对应的着色模型,并将着色模型为自定义的网格光源着色模型的物体网格,确定为所需要查找的具有光源材质的物体网格。进而,终端可将查找到的光源材质的物体网格进行光源结构转换处理,得到光源网格。
在一个实施例中,终端可以以各个物体网格为查找单位,从待渲染图像中的众多物体网格中,逐一确定各个物体网格的材质,以查找出具有光源材质的物体网格。
在一个实施例中,终端可将查找到的光源材质的物体网格进行光源结构转换处理,得到初始光源网格。进而,终端可从初始光源网格中筛选出作为光源的光源网格。
在一个实施例中,终端可将查找到的光源材质的物体网格进行光源结构转换处理,并将进行光源结构转换处理后的所有具有光源材质的物体网格,直接作为光源网格。
在一个实施例中,物体网格可以是任意多边形的物体网格,比如,物体网格可以是三角形的物体网格,也可以是四边形的物体网格,还可以是五边形的物体网格,本实施例对物体网格的网格形状不做具体限定。
步骤206,分别以各个光源网格作为光源,对待渲染图像中各个像素点进行直接光照渲染,并融合各光源网格分别针对每个像素点的直接光照渲染结果,得到渲染后的目标图像。
其中,直接光照,是待渲染图像中各个像素点被光源直接照亮的光照效果,可以理解,直接光照是计算待渲染图像中各个像素点直接来源于光源的光照贡献的过程。直接光照渲染,是一种以光源网格作为光源,对待渲染图像中的像素点进行直接光照计算的渲染方式。直接光照渲染结果,是采用直接光照渲染方式对待渲染图像中各个像素点进行图像渲染所得到的渲染结果。
具体地,终端可分别以各个光源网格作为光源,对待渲染图像中各个像素点进行直接光照渲染,分别得到各个像素点的直接光照渲染结果。进而,终端可将各光源网格分别针对每个像素点的直接光照渲染结果进行融合,并基于融合后的直接光照渲染结果,得到渲染后的目标图像。
在一个实施例中,如图4所示,终端可以光源网格401作为光源,对待渲染图像中的地面402进行直接光照渲染,从图4中可知,光源网格401照亮了地面402的一部分。
在一个实施例中,如图5所示,待渲染图像中包括具有光源材质的物体501、502和503,物体501、502和503分别由多个光源网格构成。物体501、502和503可分别通过各自的光源网格对场景进行直接光照渲染。比如,图5中504中即示意出对地面进行直接光照渲染的效果。
上述图像渲染方法中,获取待渲染图像;待渲染图像中物体的材质包括光源材质,光源材质,是通过将相应着色模型设置为自定义的网格光源着色模型,而被赋予光源属性的材质通过从待渲有自发光染图像中查找具有光源材质的物体网格,并将光源材质的物体网格进行光源结构转换处理,可以得到直接作为光源的光源网格。进而,分别以各个光源网格作为光源,可以对待渲染图像中各个像素点进行直接光照渲染,通过融合各光源网格分别针对每个像素点的直接光照渲染结果,可以得到渲染后的目标图像。通过将进行光源结构转换处理得到的光源网格,直接作为光源对待渲染图像中各个像素点进行直接光照渲染,可以提升对场景中物体的光照渲染效果,从而可以减少最终渲染得到的目标图像的噪声,提升图像质量。
图6中的(a)和(b)是通过传统的间接光照方案实现的对场景的光照效果,其中,图6的(a)中光照效果存在一块亮一块暗的情况,渲染得到的图像存在较多的噪声。图6的(b)中光照效果存在较多的白点,渲染得到的图像也存在较多的噪声。而图6中的(c)是通过本申请的直接光照方案实现的对场景的光照效果,其中,图6中的(c)中光照效果最接近真实的光照效果,渲染得到的目标图像存在较少的噪声,提升了图像质量。
在一个实施例中,待渲染图像中同一物体包括多个同材质网格区域;同材质网格区域是同一物体中材质相同、且相邻的多个物体网格所构成的区域;从待渲染图像中查找具有光源材质的物体网格,并将光源材质的物体网格进行光源结构转换处理,得到光源网格,包括:从待渲染图像中各个同材质网格区域中,查找具有光源属性的同材质网格区域,得到自发光同材质网格区域;自发光同材质网格区域中包括的各个物体网格为光源材质的物体网格;对自发光同材质网格区域中的各光源材质的物体网格进行光源结构转换处理,得到光源网格。
其中,自发光同材质网格区域,是具有光源属性的同材质网格区域,可以理解,同一自发光同材质网格区域中的各个物体网格具有相同的光源材质。
具体地,待渲染图像中包括很多物体,每个物体可包括多个同材质网格区域,其中,多个同材质网格区域中可包括具有光源属性的同材质网格区域。终端可从待渲染图像中的各个同材质网格区域中,查找具有光源属性的同材质网格区域,并将查找到的具有光源属性的同材质网格区域作为自发光同材质网格区域。自发光同材质网格区域中包括多个具有光源材质的物体网格,进而,终端可对自发光同材质网格区域中的各光源材质的物体网格进行光源结构转换处理,得到光源网格。
在一个实施例中,终端可生成多个查找任务,每个查找任务包括多个同材质网格区域,一个查找任务对应一个查找线程,各查找线程并行处理。终端可通过各个查找任务分别对应的查找线程,分别查找具有光源属性的同材质网格区域,得到自发光同材质网格区域。
在一个实施例中,光源网格为光源三角网格,终端可将光源三角网格定义为如下结构:
{
Pos; // Pos表示光源三角网格其中一个顶点 V0 的坐标
Edge0;// Edge0表示以V0为顶点的一条边
Edge1;// Edge1表示以V0为顶点的另一条边
Normal; // Normal表示光源三角网格的法线
TriangleArea;// TriangleArea表示光源三角网格的网格面积
Radiance;// 光源三角网格的辐射光照信息
}
上述实施例中,通过先从待渲染图像中各个同材质网格区域中,查找自发光同材质网格区域,再对自发光同材质网格区域中的各光源材质的物体网格进行光源结构转换处理,得到光源网格,可以提升具有光源材质的物体网格的查找速率,以及生成光源网络的效率。
在一个实施例中,对自发光同材质网格区域中的各光源材质的物体网格进行光源结构转换处理,得到光源网格,包括:针对每个自发光同材质网格区域,获取与自发光同材质网格区域对应的计算调度指令;根据计算调度指令启用计算着色器,以执行计算着色器中的多个线程,并行地对自发光同材质网格区域中各个光源材质的物体网格进行光源结构转换处理,得到光源网格。
其中,计算调度指令,是用于启用计算着色器的计算机指令。计算着色器,是一种功能灵活的着色器,用于在 GPU (Graphics Processing Unit,图形处理器)上实现较为复杂的运算。
具体地,针对每个自发光同材质网格区域,终端可获取与自发光同材质网格区域对应的计算调度指令。可以理解,一个自发光同材质网格区域,获取一条计算调度指令。进而,终端可响应于计算调度指令启用计算着色器,启用的计算机着色器可执行其内部的多个线程,以通过多个线程并行地对自发光同材质网格区域中各个光源材质的物体网格进行光源结构转换处理,得到光源网格。
在一个实施例中,计算着色器启用的计算线程的数量,可以与自发光同材质网格区域中物体网格的数量相同。可以理解,自发光同材质网格区域中的一个物体网格,可对应一个计算线程,通过各计算线程,并行处理自发光同材质网格区域各个物体网格。
在一个实施例中,计算着色器启用的计算线程的数量,可以与自发光同材质网格区域中物体网格的数量不相同。可以理解,自发光同材质网格区域中的多个物体网格,可对应一个计算线程,通过各计算线程,并行处理自发光同材质网格区域各个物体网格。
上述实施例中,针对每个自发光同材质网格区域,通过与该自发光同材质网格区域对应的计算调度指令,可以启用计算着色器,通过执行计算着色器中的多个线程,可以并行地对自发光同材质网格区域中各个光源材质的物体网格进行光源结构转换处理,得到光源网格,提升了自发光同材质网格区域中各个光源材质的物体网格的处理效率。
在一个实施例中,分别以各个光源网格作为光源,对待渲染图像中各个像素点进行直接光照渲染,包括:分别以各个光源网格作为光源,确定光源网格的辐射光照信息;基于各个光源网格的辐射光照信息,对待渲染图像中各个像素点进行直接光照渲染。
其中,辐射光照信息,是光源网格作为光源所辐射出来的光照信息。
具体地,终端可分别以各个光源网格作为光源。针对每一个作为光源的光源网格,终端可确定该光源网格的辐射光照信息。终端可基于各个光源网格的辐射光照信息,对待渲染图像中各个像素点进行直接光照渲染。
上述实施例中,分别以各个光源网格作为光源,可以确定光源网格的辐射光照信息,基于各个光源网格的辐射光照信息,可以对待渲染图像中各个像素点进行直接光照渲染,从而可提升对待渲染图像中各个像素点的光照渲染效果。
在一个实施例中,辐射光照信息包括辐射颜色值;确定光源网格的辐射光照信息,包括:若光源网格为纯色光源网格,则将纯色光源网格对应的自发光颜色值作为纯色光源网格的辐射颜色值;自发光颜色值,是纯色光源网格对应的网格光源着色模型中预先设置的颜色值。
其中,辐射颜色值,是光源网格作为光源所辐射出来的颜色值。纯色光源网格,是包含单一颜色的光源网格,可以理解,纯色光源网格中各个像素点的颜色值均相同。
具体地,若光源网格为纯色光源网格,则终端可确定纯色光源网格对应的自发光颜色值,并将纯色光源网格对应的自发光颜色值,直接作为纯色光源网格的辐射颜色值。
在一个实施例中,终端可在光源网格的网格光源着色模型中设置颜色值,如图1所示,303中所设置的纯色光源网格对应的自发光颜色值,即可直接作为纯色光源网格的辐射颜色值。
上述实施例中,若光源网格为纯色光源网格,则直接将纯色光源网格对应的自发光颜色值作为纯色光源网格的辐射颜色值,可以提升纯色光源网格的辐射颜色值的计算速率。
在一个实施例中,辐射光照信息包括辐射颜色值;确定光源网格的辐射光照信息,包括:若光源网格为纹理光源网格,则确定纹理光源网格中各纹理颜色的平均颜色值,得到纹理光源网格的辐射颜色值。
其中,纹理光源网格,是指带纹理的光源网络,可以理解,纹理光源网格中各个像素点的颜色值可不相同。
具体地,若光源网格为纹理光源网格,则终端可确定纹理光源网格中各纹理颜色的平均颜色值,可以理解,终端可确定纹理光源网格中各像素点的颜色值,并对纹理光源网格中各像素点的颜色值求平均,得到各纹理颜色的平均颜色值。进而,终端可将纹理光源网格中各纹理颜色的平均颜色值,直接作为纹理光源网格的辐射颜色值。
上述实施例中,若光源网格为纹理光源网格,则可以确定纹理光源网格中各纹理颜色的平均颜色值,并将平均颜色值作为纹理光源网格的辐射颜色值,可以提升纹理光源网格的辐射颜色值的计算速率。
在一个实施例中,若光源网格为纹理光源网格,则确定纹理光源网格中各纹理颜色的平均颜色值,得到纹理光源网格的辐射颜色值,包括:若光源网格为纹理光源三角网格,则确定纹理光源三角网格中各条边的长度;根据纹理光源三角网格中最短边的长度,确定纹理光源三角网格在纹理空间中的第一纹理信息变化率;根据纹理光源三角网格中两条长边各自对应的长度,确定纹理光源三角网格在纹理空间中的第二纹理信息变化率;两条长边是纹理光源三角网格中除最短边之外的两条边;根据纹理光源三角网格对应的第一纹理信息变化率和第二纹理信息变化率,确定纹理光源三角网格中各纹理颜色的平均颜色值,得到纹理光源三角网格的辐射颜色值。
其中,纹理光源三角网格,是形状为三角形的纹理光源网格。最短边,是指纹理光源三角网格中长度最短的边。纹理信息变化率,用于表征纹理光源三角网格中的纹理信息的变化情况。第一纹理信息变化率,是基于纹理光源三角网格中最短边的长度确定得到的纹理信息变化率。第二纹理信息变化率,是基于纹理光源三角网格中两条长边各自对应的长度所确定得到的纹理信息变化率。
具体地,若光源网格为纹理光源三角网格,针对每个纹理光源三角网格,终端可分别确定该纹理光源三角网格中各条边的长度,可以理解,终端可确定纹理光源三角网格中最短边的长度,以及纹理光源三角网格中两条长边各自对应的长度。进而,终端可根据纹理光源三角网格中最短边的长度,计算纹理光源三角网格在纹理空间中的第一纹理信息变化率,并根据纹理光源三角网格中两条长边各自对应的长度,计算纹理光源三角网格在纹理空间中的第二纹理信息变化率。终端可根据纹理光源三角网格对应的第一纹理信息变化率和第二纹理信息变化率,计算纹理光源三角网格中各纹理颜色的平均颜色值,并将计算得到的平均颜色值直接作为纹颜理光源三角网格的辐射颜色值。
在一个实施例中,终端可将纹理光源三角网格对应的第一纹理信息变化率和第二纹理信息变化率,作为层级确定函数的参数,以获得相应的纹理映射的层级。进而,终端可将该纹理映射(Mipmao)的层级对应的纹理颜色值,直接作为纹颜理光源三角网格的辐射颜色值。其中,层级确定函数是预先内置的、且用于判断纹理映射的层级的函数。
在一个实施例中,如图7所示,终端可确定纹理光源三角网格701中最短边a的长度,以及纹理光源三角网格701中长边b和长边c各自对应的长度。进而,终端可根据纹理光源三角网格701中最短边a的长度,计算纹理光源三角网格701在纹理空间中的第一纹理信息变化率e,并根据纹理光源三角网格701中两条长边b和c各自对应的长度,计算纹理光源三角网格701在纹理空间中的第二纹理信息变化率d。可以理解,纹理光源三角网格701中的内接椭圆的短轴的长度即为第一纹理信息变化率e,纹理光源三角网格701中的内接椭圆的长轴的长度即为第二纹理信息变化率d。
在一个实施例中,终端可将纹理光源三角网格中最短边的长度与第一预设常数的比值,作为纹理光源三角网格在纹理空间中的第一纹理信息变化率。终端可将纹理光源三角网格中两条长边各自对应的长度相加,将相加后的结果与第二预设常数的比值,作为纹理光源三角网格在纹理空间中的第二纹理信息变化率。
在一个实施例中,纹理光源三角网格在纹理空间中的第一纹理信息变化率可通过以下公式计算得到:
ShortGradient = ShortEdge*(2.0/3.0)
纹理光源三角网格在纹理空间中的第二纹理信息变化率可通过以下公式计算得到:
LongGradient = (LongEdge1 + LongEdge2) / 3.0
其中,ShortGradient表示第一纹理信息变化率,ShortEdge表示纹理光源三角网格中最短边的长度,LongGradient表示第二纹理信息变化率,LongEdge1和LongEdge2分别表示纹理光源三角网格中两条长边各自对应的长度,2.0和3.0是预先设置的常数。
上述实施例中,通过纹理光源三角网格中最短边的长度,可以快速确定纹理光源三角网格在纹理空间中的第一纹理信息变化率,通过纹理光源三角网格中两条长边各自对应的长度,可以快速确定纹理光源三角网格在纹理空间中的第二纹理信息变化率。进而,再根据纹理光源三角网格对应的第一纹理信息变化率和第二纹理信息变化率,可以快速确定纹理光源三角网格的辐射颜色值,从而提升纹理光源三角网格的辐射颜色值的计算速率。
在一个实施例中,将光源材质的物体网格进行光源结构转换处理,得到光源网格,包括:将光源材质的物体网格进行光源结构转换处理,得到初始光源网格;确定初始光源网格的网格面积和辐射光照信息;针对每个初始光源网格,根据初始光源网格的网格面积和辐射光照信息,确定初始光源网格的光通量;根据初始光源网格的光通量,对初始光源网格进行采样,得到光源网格。
其中,光通量,是初始光源网格作为光源在单位时间内发射出的光线。可以理解,光通量越大的初始光源网格,其对待渲染图像中各个像素点的光照贡献越大,反之则越小。
具体地,终端可将光源材质的物体网格进行光源结构转换处理,得到初始光源网格。终端可分别确定各个初始光源网格的网格面积和辐射光照信息。针对每个初始光源网格,终端可根据初始光源网格的网格面积和辐射光照信息,计算初始光源网格的光通量,并根据初始光源网格的光通量,对初始光源网格进行采样,得到光源网格。可以理解,光通量越大的光源网格越容易被采样到。通过光通量的大小,筛选一部分对待渲染图像中各个像素点的光照贡献较大的初始光源网格作为后续进行直接光照计算的光源网格。
在一个实施例中,辐射光照信息包括辐射颜色值,终端可将初始光源网格的网格面积与初始光源网格的辐射颜色值相乘,并将相乘后的结果与圆周率相乘,得到初始光源网格的光通量。
在一个实施例中,初始光源网格的光通量可通过以下公式计算得到:
Flux = SurfaceArea * EmissiveColor * Pi
其中,Flux表示初始光源网格的光通量,SurfaceArea表示初始光源网格的网格面积,EmissiveColor表示初始光源网格的辐射颜色值,Pi表示圆周率。
上述实施例中,通过将光源材质的物体网格进行光源结构转换处理,可以得到初始光源网格,进而,再根据初始光源网格的光通量,对初始光源网格进行采样,得到光源网格,可以进一步减少最终渲染得到的目标图像的噪声,提升图像质量。
在一个实施例中,基于各个光源网格的辐射光照信息,对待渲染图像中各个像素点进行直接光照渲染,包括:针对每个光源网格,确定光源网格对待渲染图像中各个像素点的直接光照贡献值;根据直接光照贡献值和辐射光照信息,确定光源网格对待渲染图像中各个像素点所贡献的渲染光照值;融合各光源网格分别针对每个像素点的直接光照渲染结果,得到渲染后的目标图像,包括:融合各光源网格分别针对每个像素点的渲染光照值,得到渲染后的目标图像。
其中,直接光照贡献值,是光源网格作为光源,对待渲染图像中各个像素点进行直接光照所贡献的光照权重值。渲染光照值,是待渲染图像中各个像素点从光源网格最终接收的、且用于进行光照渲染的光照值。可以理解,光源网格作为光源,其产生的辐射光照信息对应的光照值与待渲染图像中各个像素点所最终接收的渲染光照值是不相等的,由于光照过程中存在一定的光照衰减,因此,待渲染图像中各个像素点所最终接收的渲染光照值一般会小于光源网格产生的辐射光照信息对应的光照值。
具体地,针对每个光源网格,终端可确定光源网格对待渲染图像中各个像素点的直接光照贡献值,并根据直接光照贡献值和辐射光照信息,计算光源网格对待渲染图像中各个像素点所贡献的渲染光照值。进而,终端可融合各光源网格分别针对每个像素点的渲染光照值,得到渲染后的目标图像。
上述实施例中,通过光源网格对待渲染图像中各个像素点的直接光照贡献值、以及光源网格的辐射光照信息,可以确定待渲染图像中各个像素点所贡献的渲染光照值,通过融合各光源网格分别针对每个像素点的渲染光照值,可以得到渲染后的目标图像,从而可以提升对待渲染图像中各个像素点的光照渲染效果,以进一步提升图像质量。
在一个实施例中,针对每个光源网格,确定光源网格对待渲染图像中各个像素点的直接光照贡献值,包括:针对每个光源网格,按照概率密度分布函数对光源网格中的点进行采样,得到光源网格中的各个采样点;针对待渲染图像中的每个像素点,根据各个采样点分别对应的位置信息和相机的位置信息,分别确定各个采样点相对于像素点的第一贡献系数;根据各个采样点针对像素点的入射光线与像素点的法线之间的夹角,分别确定各个采样点相对于像素点的第二贡献系数;根据用于采样每个采样点的概率密度分布函数值,确定每个采样点相对于像素点的第三贡献系数;根据各个采样点相对于像素点的第一贡献系数、第二贡献系数和第三贡献系数,确定光源网格对待渲染图像中像素点的直接光照贡献值。
其中,概率密度分布函数,用于表征对光源网格中的点进行随机采样。采样点,是从光源网格中采样得到的点。第一贡献系数,是基于各个采样点分别对应的位置信息和相机的位置信息所确定得到的贡献系数。第二贡献系数,是基于各个采样点针对像素点的入射光线与像素点的法线之间的夹角所确定得到的贡献系数。入射光线,是指从采样点发射出来并最终入射至待渲染图像中像素点的光线。概率密度分布函数值,是按照概率密度分布函数对光源网格中的点进行采样,并随机采样到每个采样点的概率值。第三贡献系数,是基于每个采样点的概率密度分布函数值所确定得到的贡献系数。相机的位置信息,是指相机相对于待渲染图像中的各个像素点的位置信息。
具体地,针对每个光源网格,终端可按照预先设定的概率密度分布函数对光源网格中的点进行随机采样,得到光源网格中的各个采样点。针对待渲染图像中的每个像素点,确定各个采样点分别对应的位置信息和相机的位置信息,并根据各个采样点分别对应的位置信息和相机的位置信息,分别计算各个采样点相对于像素点的第一贡献系数。终端可确定各个采样点针对像素点的入射光线与像素点的法线之间的夹角,并根据各个采样点针对像素点的入射光线与像素点的法线之间的夹角,分别计算各个采样点相对于像素点的第二贡献系数。终端可确定用于采样每个采样点的概率密度分布函数值,并根据用于采样每个采样点的概率密度分布函数值,计算每个采样点相对于像素点的第三贡献系数。进而,终端可根据各个采样点相对于像素点的第一贡献系数、第二贡献系数和第三贡献系数,计算光源网格对待渲染图像中像素点的直接光照贡献值。
在一个实施例中,本申请提供一种针对像素点的渲染光照值的计算方式,该计算方式的渲染方程如下:
其中,表示像素点最终接收到的渲染光照值,N表示从光源网格中采样得到的所有采样点的数量,表示第k个采样点所发射的入射光线的辐射光照信息,v表示相机的坐标,表示入射光线与像素点的法线之间的夹角,为双向反射分布函数,用于描述入射光线照射至像素点(即物体)后光线反射的强度和方向,表示相机的坐标为v时,入射光线的概率密度分布函数值。
上述实施例中,通过概率密度分布函数对光源网格中的点进行采样,可以得到光源网格中的各个采样点,根据各个采样点分别对应的位置信息和相机的位置信息,可以分别确定各个采样点相对于像素点的第一贡献系数,根据各个采样点针对像素点的入射光线与像素点的法线之间的夹角,可以分别确定各个采样点相对于像素点的第二贡献系数,根据用于采样每个采样点的概率密度分布函数值,可以准确地确定每个采样点相对于像素点的第三贡献系数。进而,通过各个采样点相对于像素点的第一贡献系数、第二贡献系数和第三贡献系数,可以准确地确定光源网格对待渲染图像中像素点的直接光照贡献值,从而提升直接光照贡献值的计算准确率,进一步提升光照效果。
在一个实施例中,根据用于采样每个采样点的概率密度分布函数值,确定每个采样点相对于像素点的第三贡献系数,包括:针对每个光源网格,确定光源网格的重心和网格面积;针对待渲染图像中的每个像素点,确定光源网格的重心与待渲染图像中的像素点之间的距离;基于距离和光源网格的网格面积,确定光源网格相对于像素点的第一立体角;根据第一立体角,确定用于采样每个采样点的概率密度分布函数值,并将用于采样每个采样点的概率密度分布函数值作为每个采样点相对于像素点的第三贡献系数。
其中,立体角,是一个光源网格对某个像素点的三维空间的角度,可以理解,立体角是平面角在三维空间中的类比。第一立体角,是基于光源网格的重心与待渲染图像中的像素点之间的距离,以及光源网格的网格面积所确定得到的立体角。
具体地,针对每个光源网格,终端可分别确定光源网格的重心和网格面积;针对待渲染图像中的每个像素点,终端可确定光源网格的重心与待渲染图像中的像素点之间的距离。进而,终端额基于距离和光源网格的网格面积,计算光源网格相对于像素点的第一立体角。终端可根据第一立体角,计算用于采样每个采样点的概率密度分布函数值,并将用于采样每个采样点的概率密度分布函数值直接作为每个采样点相对于像素点的第三贡献系数。
在一个实施例中,终端可将第一立体角的倒数,直接作为用于采样每个采样点的概率密度分布函数值。
在一个实施例中,如图8所示,针对某个像素点Q,终端可确定光源网格801的重心P与待渲染图像中的像素点Q之间的距离L。进而,终端可基于距离L和光源网格801的网格面积,计算光源网格801相对于像素点Q的第一立体角β1。
在一个实施例中,终端可计算光源网格的重心与待渲染图像中的像素点之间的距离的平方,得到平方后的结果。终端可将光源网格的网格面积与平方后的结果的比值,作为光源网格相对于像素点的第一立体角。
在一个实施例中,光源网格相对于像素点的第一立体角可通过以下公式估算得到:
SolidAngle ≈ TriangleArea / (Distance*Distance)
其中,SolidAngle表示光源网格相对于像素点的第一立体角(即β1),TriangleArea表示光源网格的网格面积,Distance表示光源网格的重心与待渲染图像中的像素点之间的距离(即L)。
在一个实施例中,针对每个光源网格,终端可确定光源网格的法向量。针对待渲染图像中的每个像素点,终端可确定像素点的法向量。进而,终端可根据光源网格的法向量和像素点的法向量之间的夹角,确定光源网格相对于像素点的朝向。若朝向为正向,则执行上述根据第一立体角,确定用于采样每个采样点的概率密度分布函数值的步骤。若朝向为背向,则说明光源网格对像素点的没有光照贡献。
上述实施例中,通过光源网格的重心与待渲染图像中的像素点之间的距离、以及光源网格的网格面积,可以快速确定光源网格相对于像素点的第一立体角。根据第一立体角,可以快速确定用于采样每个采样点的概率密度分布函数值,并将用于采样每个采样点的概率密度分布函数值,直接作为每个采样点相对于像素点的第三贡献系数,提升了第三贡献系数的计算速率。
在一个实施例中,针对每个光源网格,确定光源网格对待渲染图像中各个像素点的直接光照贡献值,包括:针对待渲染图像中的每个像素点,分别确定像素点与光源网格的各个顶点所构成的各条棱边的向量;根据各条棱边的向量,分别确定像素点与光源网格的各个顶点所构成的多棱锥中、且像素点所在的各个面的法向量;根据像素点所在的各个面的法向量,确定光源网格相对于像素点的第二立体角;将第二立体角作为光源网格对待渲染图像中像素点的直接光照贡献值。
其中,第二立体角,是基于像素点所在的各个面的法向量所确定得到的立体角。
具体地,像素点与光源网格的各个顶点相连可构成多棱锥。针对待渲染图像中的每个像素点,终端可分别确定像素点与光源网格的各个顶点所构成的各条棱边的向量。终端可根据像素点与光源网格的各个顶点所构成的各条棱边的向量,分别确定像素点与光源网格的各个顶点所构成的多棱锥中、且像素点所在的各个面的法向量。进而,终端可根据像素点所在的各个面的法向量,确定光源网格相对于像素点的第二立体角,并将第二立体角直接作为光源网格对待渲染图像中像素点的直接光照贡献值。
在一个实施例中,本申请提供另一种针对像素点的渲染光照值的计算方式,该计算方式的渲染方程如下:
其中,表示对所有入射光线的方向的积分,可以理解,第二立体角的数值大小等于,而是终端预先计算得到并存储在本地的常数,终端在对待渲染图像中的像素点进行直接光照渲染时,可直接使用该常数。可以理解,终端可将作为直接光照贡献值,并基于直接光照贡献值和光源网格的辐射光照信息,计算光源网格对待渲染图像中像素点所贡献的渲染光照值。
在一个实施例中,如图9所示,光源网格901为光源三角网格,在像素点O与光源网格901的各个顶点(即A、B、C)所构成的多棱锥中,终端可将像素点O所在的三个面(即,OAB、OAC、OBC)的法向量。终端可确定这三个面的法向量中任意两两法向量之间的夹角,并将得到的三个夹角相加。进而,终端可将三个夹角相加后的结果与圆周率之差,作为光源网格相对于像素点的第二立体角β2。
举例说明,如图9所示,光源网格901为光源三角网格,终端可将光源网格901中的顶点A的位置作为光源网格901的位置。终端可基于顶点A的位置和与顶点A相连的两条边的向量,计算出光源网格901三个顶点的向量,光源网格901三个顶点的向量可通过以下公式计算得到:
OA = Triangle.Pos;
OB = Triangle.Pos + Triangle.Edge0;
OC = Triangle.Pos + Triangle.Edge1;
其中,OA、OB和OC分别表示像素点O与三个顶点A、B、C之间的向量,Triangle.Pos表示光源网格中的顶点A的向量,Triangle.Edge0和Triangle.Edge1分别表示与顶点A相连的两条边的向量。
终端可将OA、OB和OC向量间两两叉乘,计算得到平面 OAC,OAB 和 OBC这三个面的法向量。OAB、OAC和OBC这三个面的法向量可通过以下公式计算得到:
n0 = normalize(cross(OB,OA));
n1 = normalize(cross(OA, OC));
n2 = normalize(cross(OC, OB));
其中,n0、n1和n2分别表示OAB 、OAC和OBC这三个面的法向量,cross()表示将法向量进行两两叉乘,normalize()表示进行规范化处理。
终端可分别计算法向量n0、n1和n2两两之间的夹角,可以理解,此夹角等于平面OAB、OAC和OBC之间的夹角。法向量n0、n1和n2两两之间的夹角可通过以下公式计算得到:
angle0 = acos(-dot(n0, n1));
angle1 = acos(-dot(n1, n2));
angle2 = acos(-dot(n2, n0));
其中,angle0表示法向量n0和n1两两之间的夹角, angle1表示法向量n1和n2两两之间的夹角,angle2表示法向量n2和n0两两之间的夹角。
终端可根据夹角angle0、angle1和angle2,确定光源网格相对于像素点的第二立体角。光源网格相对于像素点的第二立体角可通过以下公式计算得到:
SolidAngle = angle0 + angle1 + angle2 - Pi;
其中,SolidAngle表示光源网格相对于像素点的第二立体角(即β2),Pi表示圆周率。
上述实施例中,通过确定像素点与光源网格的各个顶点所构成的各条棱边的向量,进而可以根据各条棱边的向量,分别准确地确定像素点与光源网格的各个顶点所构成的多棱锥中、且像素点所在的各个面的法向量。根据像素点所在的各个面的法向量,可以准确地确定光源网格相对于像素点的第二立体角,通过将第二立体角作为光源网格对待渲染图像中像素点的直接光照贡献值,可以提升直接光照贡献值的准确率。
如图10所示,在一个实施例中,提供了一种图像渲染方法,该方法具体包括以下步骤:
步骤1002,获取待渲染图像;待渲染图像中物体的材质包括光源材质;光源材质,是通过将相应着色模型设置为自定义的网格光源着色模型,而被赋予光源属性的材质。
步骤1004,从待渲染图像中查找具有光源材质的物体网格,将光源材质的物体网格进行光源结构转换处理,得到初始光源网格。
步骤1006,确定初始光源网格的网格面积和辐射光照信息。
步骤1008,针对每个初始光源网格,根据初始光源网格的网格面积和辐射光照信息,确定初始光源网格的光通量。
步骤1010,根据初始光源网格的光通量,对初始光源网格进行采样,得到光源网格。
步骤1012,分别以各个光源网格作为光源,确定光源网格的辐射光照信息。
步骤1014,针对每个光源网格,按照概率密度分布函数对光源网格中的点进行采样,得到光源网格中的各个采样点。
步骤1016,针对待渲染图像中的每个像素点,根据各个采样点分别对应的位置信息和相机的位置信息,分别确定各个采样点相对于像素点的第一贡献系数。
步骤1018,根据各个采样点针对像素点的入射光线与像素点的法线之间的夹角,分别确定各个采样点相对于像素点的第二贡献系数。
步骤1020,针对每个光源网格,确定光源网格的重心和网格面积。
步骤1022,针对待渲染图像中的每个像素点,确定光源网格的重心与待渲染图像中的像素点之间的距离。
步骤1024,基于距离和光源网格的网格面积,确定光源网格相对于像素点的第一立体角。
步骤1026,根据第一立体角,确定用于采样每个采样点的概率密度分布函数值,并将用于采样每个采样点的概率密度分布函数值作为每个采样点相对于像素点的第三贡献系数。
步骤1028,根据各个采样点相对于像素点的第一贡献系数、第二贡献系数和第三贡献系数,确定光源网格对待渲染图像中像素点的直接光照贡献值。
在一个实施例中,针对待渲染图像中的每个像素点,分别确定像素点与光源网格的各个顶点所构成的各条棱边的向量;根据各条棱边的向量,分别确定像素点与光源网格的各个顶点所构成的多棱锥中、且像素点所在的各个面的法向量;根据像素点所在的各个面的法向量,确定光源网格相对于像素点的第二立体角;将第二立体角作为光源网格对待渲染图像中像素点的直接光照贡献值。
步骤1030,根据直接光照贡献值和辐射光照信息,确定光源网格对待渲染图像中各个像素点所贡献的渲染光照值,融合各光源网格分别针对每个像素点的渲染光照值,得到渲染后的目标图像。
本申请还提供一种应用场景,该应用场景应用上述的图像渲染方法。具体地,该图像渲染方法可应用于游戏图像渲染的场景。终端可获取待渲染游戏图像;待渲染游戏图像中物体的材质包括光源材质;光源材质,是通过将相应着色模型设置为自定义的网格光源着色模型,而被赋予光源属性的材质。从待渲染游戏图像中查找具有光源材质的物体网格,将光源材质的物体网格进行光源结构转换处理,得到初始光源网格。确定初始光源网格的网格面积和辐射光照信息。针对每个初始光源网格,根据初始光源网格的网格面积和辐射光照信息,确定初始光源网格的光通量。根据初始光源网格的光通量,对初始光源网格进行采样,得到光源网格。
终端可分别以各个光源网格作为光源,确定光源网格的辐射光照信息。针对每个光源网格,按照概率密度分布函数对光源网格中的点进行采样,得到光源网格中的各个采样点。针对待渲染游戏图像中的每个像素点,根据各个采样点分别对应的位置信息和相机的位置信息,分别确定各个采样点相对于像素点的第一贡献系数。根据各个采样点针对像素点的入射光线与像素点的法线之间的夹角,分别确定各个采样点相对于像素点的第二贡献系数。针对每个光源网格,确定光源网格的重心和网格面积。针对待渲染游戏图像中的每个像素点,确定光源网格的重心与待渲染游戏图像中的像素点之间的距离。基于距离和光源网格的网格面积,确定光源网格相对于像素点的第一立体角。根据第一立体角,确定用于采样每个采样点的概率密度分布函数值,并将用于采样每个采样点的概率密度分布函数值作为每个采样点相对于像素点的第三贡献系数。根据各个采样点相对于像素点的第一贡献系数、第二贡献系数和第三贡献系数,确定光源网格对待渲染游戏图像中像素点的直接光照贡献值。
针对待渲染游戏图像中的每个像素点,终端可分别确定像素点与光源网格的各个顶点所构成的各条棱边的向量;根据各条棱边的向量,分别确定像素点与光源网格的各个顶点所构成的多棱锥中、且像素点所在的各个面的法向量;根据像素点所在的各个面的法向量,确定光源网格相对于像素点的第二立体角;将第二立体角作为光源网格对待渲染游戏图像中像素点的直接光照贡献值。
终端可根据直接光照贡献值和辐射光照信息,确定待渲染游戏图像中各个像素点所贡献的渲染光照值,融合各光源网格分别针对每个像素点的渲染光照值,得到渲染后的目标游戏图像。
本申请还另外提供一种应用场景,该应用场景应用上述的图像渲染方法。具体地,该图像渲染方法可应用于模拟图像的渲染场景。终端可从待渲染模拟图像中查找具有光源材质的物体网格,并将光源材质的物体网格进行光源结构转换处理,得到光源网格。分别以各个光源网格作为光源,对待渲染图像中各个像素点进行直接光照渲染,以得到渲染后的目标模拟图像。
可以理解,本申请还可以应用于影视特效、可视化设计、VR(Virtual Reality,虚拟现实)、虚拟对象、工业仿真和数字文创等场景中。其中,虚拟对象具体可以包括虚拟人物、虚拟动物和虚拟物体等中的至少一种。数字文创具体可以包括渲染出来的建筑物或旅游景点等。可以理解,在影视特效、可视化设计、VR、虚拟对象和数字文创等场景中可涉及对虚拟图像的渲染。其中,对上述各个场景中虚拟图像的渲染可通过本申请的图像渲染方法实现。具体地,通过从待渲染虚拟图像中的各个虚拟物体中查找具有光源材质的物体网格,并将光源材质的物体网格进行光源结构转换处理,得到光源网格,进而,再以各个光源网格作为光源,可对待渲染虚拟图像中各个像素点进行直接光照渲染。通过本申请的图像渲染方法实现对虚拟图像的渲染,可以提升对场景中虚拟物体的光照渲染效果,从而可以减少最终渲染得到的虚拟图像的噪声,提升虚拟图像质量。
比如,在数字文创渲染场景中,可能会涉及到渲染具有文化代表意义的建筑物的情况,比如渲染博物馆或者历史建筑等,可以从待渲染数字文创图像中查找具有光源材质的物体网格,并转换为光源网格,进而,再以各个光源网格作为光源,可对待渲染数字文创图像中各个像素点进行直接光照渲染,从而提升对建筑物等渲染对象的光照渲染效果,得到更为逼真的数字文创建筑物。
又比如,在工业仿真场景中,可能会涉及到工业生产环境进行仿真渲染,比如,仿真工厂的生产车间、流水线或者生产设备等,因而,可以通过本申请的图像渲染方法从待渲染工业仿真图像中查找具有光源材质的物体网格,并转换为光源网格,以各个光源网格作为光源,可对待渲染工业仿真图像中各个像素点进行直接光照渲染,可以提升对工业仿真图像中各渲染对象的光照渲染效果,得到更为准确、更具参考性的工业生产仿真环境。
应该理解的是,虽然上述各实施例的流程图中的各个步骤按照顺序依次显示,但是这些步骤并不是必然按照顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述各实施例中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图11所示,提供了一种图像渲染装置1100,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:
获取模块1102,用于获取待渲染图像;待渲染图像中物体的材质包括光源材质;光源材质,是通过将相应着色模型设置为自定义的网格光源着色模型,而被赋予光源属性的材质。
查找模块1104,用于从待渲染图像中查找具有光源材质的物体网格,并将光源材质的物体网格进行光源结构转换处理,得到光源网格;物体网格是用于构成待渲染图像中的物体的网格。
渲染模块1106,用于分别以各个光源网格作为光源,对待渲染图像中各个像素点进行直接光照渲染,并融合各光源网格分别针对每个像素点的直接光照渲染结果,得到渲染后的目标图像。
在一个实施例中,待渲染图像中同一物体包括多个同材质网格区域;同材质网格区域是同一物体中材质相同、且相邻的多个物体网格所构成的区域;查找模块1104还用于从待渲染图像中各个同材质网格区域中,查找具有光源属性的同材质网格区域,得到自发光同材质网格区域;自发光同材质网格区域中包括的各个物体网格为光源材质的物体网格;对自发光同材质网格区域中的各光源材质的物体网格进行光源结构转换处理,得到光源网格。
在一个实施例中,查找模块1104还用于针对每个自发光同材质网格区域,获取与自发光同材质网格区域对应的计算调度指令;根据计算调度指令启用计算着色器,以执行计算着色器中的多个线程,并行地对自发光同材质网格区域中各个光源材质的物体网格进行光源结构转换处理,得到光源网格。
在一个实施例中,渲染模块1106还用于分别以各个光源网格作为光源,确定光源网格的辐射光照信息;基于各个光源网格的辐射光照信息,对待渲染图像中各个像素点进行直接光照渲染。
在一个实施例中,辐射光照信息包括辐射颜色值;渲染模块1106还用于若光源网格为纯色光源网格,则将纯色光源网格对应的自发光颜色值作为纯色光源网格的辐射颜色值;自发光颜色值,是纯色光源网格对应的网格光源着色模型中预先设置的颜色值。
在一个实施例中,辐射光照信息包括辐射颜色值;渲染模块1106还用于若光源网格为纹理光源网格,则确定纹理光源网格中各纹理颜色的平均颜色值,得到纹理光源网格的辐射颜色值。
在一个实施例中,渲染模块1106还用于若光源网格为纹理光源三角网格,则确定纹理光源三角网格中各条边的长度;根据纹理光源三角网格中最短边的长度,确定纹理光源三角网格在纹理空间中的第一纹理信息变化率;根据纹理光源三角网格中两条长边各自对应的长度,确定纹理光源三角网格在纹理空间中的第二纹理信息变化率;两条长边是纹理光源三角网格中除最短边之外的两条边;根据纹理光源三角网格对应的第一纹理信息变化率和第二纹理信息变化率,确定纹理光源三角网格中各纹理颜色的平均颜色值,得到纹理光源三角网格的辐射颜色值。
在一个实施例中,查找模块1104还用于将光源材质的物体网格进行光源结构转换处理,得到初始光源网格;确定初始光源网格的网格面积和辐射光照信息;针对每个初始光源网格,根据初始光源网格的网格面积和辐射光照信息,确定初始光源网格的光通量;根据初始光源网格的光通量,对初始光源网格进行采样,得到光源网格。
在一个实施例中,渲染模块1106还用于针对每个光源网格,确定光源网格对待渲染图像中各个像素点的直接光照贡献值;根据直接光照贡献值和辐射光照信息,确定光源网格对待渲染图像中各个像素点所贡献的渲染光照值;融合各光源网格分别针对每个像素点的渲染光照值,得到渲染后的目标图像。
在一个实施例中,渲染模块1106还用于针对每个光源网格,按照概率密度分布函数对光源网格中的点进行采样,得到光源网格中的各个采样点;针对待渲染图像中的每个像素点,根据各个采样点分别对应的位置信息和相机的位置信息,分别确定各个采样点相对于像素点的第一贡献系数;根据各个采样点针对像素点的入射光线与像素点的法线之间的夹角,分别确定各个采样点相对于像素点的第二贡献系数;根据用于采样每个采样点的概率密度分布函数值,确定每个采样点相对于像素点的第三贡献系数;根据各个采样点相对于像素点的第一贡献系数、第二贡献系数和第三贡献系数,确定光源网格对待渲染图像中像素点的直接光照贡献值。
在一个实施例中,渲染模块1106还用于针对每个光源网格,确定光源网格的重心和网格面积;针对待渲染图像中的每个像素点,确定光源网格的重心与待渲染图像中的像素点之间的距离;基于距离和光源网格的网格面积,确定光源网格相对于像素点的第一立体角;根据第一立体角,确定用于采样每个采样点的概率密度分布函数值,并将用于采样每个采样点的概率密度分布函数值作为每个采样点相对于像素点的第三贡献系数。
在一个实施例中,渲染模块1106还用于针对待渲染图像中的每个像素点,分别确定像素点与光源网格的各个顶点所构成的各条棱边的向量;根据各条棱边的向量,分别确定像素点与光源网格的各个顶点所构成的多棱锥中、且像素点所在的各个面的法向量;根据像素点所在的各个面的法向量,确定光源网格相对于像素点的第二立体角;将第二立体角作为光源网格对待渲染图像中像素点的直接光照贡献值。
上述图像渲染装置,获取待渲染图像;待渲染图像中物体的材质包括光源材质,光源材质,是通过将相应着色模型设置为自定义的网格光源着色模型,而被赋予光源属性的材质通过从待渲有自发光染图像中查找具有光源材质的物体网格,并将光源材质的物体网格进行光源结构转换处理,可以得到直接作为光源的光源网格。进而,分别以各个光源网格作为光源,可以对待渲染图像中各个像素点进行直接光照渲染,通过融合各光源网格分别针对每个像素点的直接光照渲染结果,可以得到渲染后的目标图像。通过将进行光源结构转换处理得到的光源网格,直接作为光源对待渲染图像中各个像素点进行直接光照渲染,可以提升对场景中物体的光照渲染效果,从而可以减少最终渲染得到的目标图像的噪声,提升图像质量。
上述图像渲染装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图12所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过***总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到***总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***和计算机程序。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种图像渲染方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置,显示屏可以是液晶显示屏或电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图12中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(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.根据权利要求1所述的方法,其特征在于,所述分别以各个所述光源网格作为光源,对所述待渲染图像中各个像素点进行直接光照渲染,包括:
分别以各个所述光源网格作为光源,确定所述光源网格的辐射光照信息;
基于各个所述光源网格的辐射光照信息,对所述待渲染图像中各个像素点进行直接光照渲染。
4.根据权利要求3所述的方法,其特征在于,所述辐射光照信息包括辐射颜色值;所述确定所述光源网格的辐射光照信息,包括:
若所述光源网格为纯色光源网格,则将所述纯色光源网格对应的自发光颜色值作为所述纯色光源网格的辐射颜色值;所述自发光颜色值,是所述纯色光源网格对应的网格光源着色模型中预先设置的颜色值。
5.根据权利要求3所述的方法,其特征在于,所述辐射光照信息包括辐射颜色值;所述确定所述光源网格的辐射光照信息,包括:
若所述光源网格为纹理光源网格,则确定所述纹理光源网格中各纹理颜色的平均颜色值,得到所述纹理光源网格的辐射颜色值。
6.根据权利要求5所述的方法,其特征在于,所述若所述光源网格为纹理光源网格,则确定所述纹理光源网格中各纹理颜色的平均颜色值,得到所述纹理光源网格的辐射颜色值,包括:
若所述光源网格为纹理光源三角网格,则确定所述纹理光源三角网格中各条边的长度;
根据所述纹理光源三角网格中最短边的长度,确定所述纹理光源三角网格在纹理空间中的第一纹理信息变化率;
根据所述纹理光源三角网格中两条长边各自对应的长度,确定所述纹理光源三角网格在纹理空间中的第二纹理信息变化率;所述两条长边是所述纹理光源三角网格中除所述最短边之外的两条边;
根据所述纹理光源三角网格对应的第一纹理信息变化率和第二纹理信息变化率,确定所述纹理光源三角网格中各纹理颜色的平均颜色值,得到所述纹理光源三角网格的辐射颜色值。
7.根据权利要求1所述的方法,其特征在于,所述对所述自发光同材质网格区域中的各所述光源材质的物体网格进行光源结构转换处理,得到光源网格,包括:
将所述自发光同材质网格区域中的各所述光源材质的物体网格进行光源结构转换处理,得到初始光源网格;
确定所述初始光源网格的网格面积和辐射光照信息;
针对每个初始光源网格,根据所述初始光源网格的网格面积和辐射光照信息,确定所述初始光源网格的光通量;
根据所述初始光源网格的光通量,对所述初始光源网格进行采样,得到光源网格。
8.根据权利要求3所述的方法,其特征在于,所述基于各个所述光源网格的辐射光照信息,对所述待渲染图像中各个像素点进行直接光照渲染,包括:
针对每个光源网格,确定所述光源网格对所述待渲染图像中各个像素点的直接光照贡献值;
根据所述直接光照贡献值和所述辐射光照信息,确定所述光源网格对所述待渲染图像中各个像素点所贡献的渲染光照值;
所述融合各所述光源网格分别针对每个所述像素点的直接光照渲染结果,得到渲染后的目标图像,包括:
融合各所述光源网格分别针对每个所述像素点的渲染光照值,得到渲染后的目标图像。
9.根据权利要求8所述的方法,其特征在于,所述针对每个光源网格,确定所述光源网格对所述待渲染图像中各个像素点的直接光照贡献值,包括:
针对每个光源网格,按照概率密度分布函数对所述光源网格中的点进行采样,得到所述光源网格中的各个采样点;
针对所述待渲染图像中的每个像素点,根据各个所述采样点分别对应的位置信息和相机的位置信息,分别确定各个所述采样点相对于所述像素点的第一贡献系数;
根据各个所述采样点针对所述像素点的入射光线与所述像素点的法线之间的夹角,分别确定各个所述采样点相对于所述像素点的第二贡献系数;
根据用于采样每个采样点的概率密度分布函数值,确定每个所述采样点相对于所述像素点的第三贡献系数;
根据各个所述采样点相对于所述像素点的所述第一贡献系数、所述第二贡献系数和所述第三贡献系数,确定所述光源网格对所述待渲染图像中所述像素点的直接光照贡献值。
10.根据权利要求9所述的方法,其特征在于,所述根据用于采样每个采样点的概率密度分布函数值,确定每个所述采样点相对于所述像素点的第三贡献系数,包括:
针对每个光源网格,确定所述光源网格的重心和网格面积;
针对所述待渲染图像中的每个像素点,确定所述光源网格的重心与所述待渲染图像中的所述像素点之间的距离;
基于所述距离和所述光源网格的网格面积,确定所述光源网格相对于所述像素点的第一立体角;
根据所述第一立体角,确定用于采样每个采样点的概率密度分布函数值,并将所述用于采样每个采样点的概率密度分布函数值作为每个所述采样点相对于所述像素点的第三贡献系数。
11.根据权利要求8所述的方法,其特征在于,所述针对每个光源网格,确定所述光源网格对所述待渲染图像中各个像素点的直接光照贡献值,包括:
针对所述待渲染图像中的每个像素点,分别确定所述像素点与所述光源网格的各个顶点所构成的各条棱边的向量;
根据各条所述棱边的向量,分别确定所述像素点与所述光源网格的各个顶点所构成的多棱锥中、且所述像素点所在的各个面的法向量;
根据所述像素点所在的各个面的法向量,确定所述光源网格相对于所述像素点的第二立体角;
将所述第二立体角作为所述光源网格对所述待渲染图像中所述像素点的直接光照贡献值。
12.一种图像渲染装置,其特征在于,所述装置包括:
获取模块,用于获取待渲染图像;所述待渲染图像中物体的材质包括光源材质;所述光源材质,是通过将相应着色模型设置为自定义的网格光源着色模型,而被赋予光源属性的材质;所述待渲染图像中同一物体包括多个同材质网格区域;所述同材质网格区域是同一物体中材质相同、且相邻的多个物体网格所构成的区域;所述物体网格是用于构成所述待渲染图像中的物体的网格;
查找模块,用于从所述待渲染图像中各个所述同材质网格区域中,查找具有光源属性的同材质网格区域,得到自发光同材质网格区域;所述自发光同材质网格区域中包括的各个物体网格为光源材质的物体网格;对所述自发光同材质网格区域中的各所述光源材质的物体网格进行光源结构转换处理,得到光源网格;
渲染模块,用于分别以各个所述光源网格作为光源,对所述待渲染图像中各个像素点进行直接光照渲染,并融合各所述光源网格分别针对每个所述像素点的直接光照渲染结果,得到渲染后的目标图像。
13.根据权利要求12所述的装置,其特征在于,所述查找模块还用于针对每个所述自发光同材质网格区域,获取与所述自发光同材质网格区域对应的计算调度指令;根据所述计算调度指令启用计算着色器,以执行所述计算着色器中的多个线程,并行地对所述自发光同材质网格区域中各个光源材质的物体网格进行光源结构转换处理,得到光源网格。
14.根据权利要求12所述的装置,其特征在于,所述渲染模块还用于分别以各个所述光源网格作为光源,确定所述光源网格的辐射光照信息;基于各个所述光源网格的辐射光照信息,对所述待渲染图像中各个像素点进行直接光照渲染。
15.根据权利要求14所述的装置,其特征在于,所述辐射光照信息包括辐射颜色值;所述渲染模块还用于若所述光源网格为纯色光源网格,则将所述纯色光源网格对应的自发光颜色值作为所述纯色光源网格的辐射颜色值;所述自发光颜色值,是所述纯色光源网格对应的网格光源着色模型中预先设置的颜色值。
16.根据权利要求14所述的装置,其特征在于,所述辐射光照信息包括辐射颜色值;所述渲染模块还用于若所述光源网格为纹理光源网格,则确定所述纹理光源网格中各纹理颜色的平均颜色值,得到所述纹理光源网格的辐射颜色值。
17.根据权利要求16所述的装置,其特征在于,所述渲染模块还用于若所述光源网格为纹理光源三角网格,则确定所述纹理光源三角网格中各条边的长度;根据所述纹理光源三角网格中最短边的长度,确定所述纹理光源三角网格在纹理空间中的第一纹理信息变化率;根据所述纹理光源三角网格中两条长边各自对应的长度,确定所述纹理光源三角网格在纹理空间中的第二纹理信息变化率;所述两条长边是所述纹理光源三角网格中除所述最短边之外的两条边;根据所述纹理光源三角网格对应的第一纹理信息变化率和第二纹理信息变化率,确定所述纹理光源三角网格中各纹理颜色的平均颜色值,得到所述纹理光源三角网格的辐射颜色值。
18.根据权利要求12所述的装置,其特征在于,所述查找模块还用于将所述自发光同材质网格区域中的各所述光源材质的物体网格进行光源结构转换处理,得到初始光源网格;确定所述初始光源网格的网格面积和辐射光照信息;针对每个初始光源网格,根据所述初始光源网格的网格面积和辐射光照信息,确定所述初始光源网格的光通量;根据所述初始光源网格的光通量,对所述初始光源网格进行采样,得到光源网格。
19.根据权利要求14所述的装置,其特征在于,所述渲染模块还用于针对每个光源网格,确定所述光源网格对所述待渲染图像中各个像素点的直接光照贡献值;根据所述直接光照贡献值和所述辐射光照信息,确定所述光源网格对所述待渲染图像中各个像素点所贡献的渲染光照值;融合各所述光源网格分别针对每个所述像素点的渲染光照值,得到渲染后的目标图像。
20.根据权利要求19所述的装置,其特征在于,所述渲染模块还用于针对每个光源网格,按照概率密度分布函数对所述光源网格中的点进行采样,得到所述光源网格中的各个采样点;针对所述待渲染图像中的每个像素点,根据各个所述采样点分别对应的位置信息和相机的位置信息,分别确定各个所述采样点相对于所述像素点的第一贡献系数;根据各个所述采样点针对所述像素点的入射光线与所述像素点的法线之间的夹角,分别确定各个所述采样点相对于所述像素点的第二贡献系数;根据用于采样每个采样点的概率密度分布函数值,确定每个所述采样点相对于所述像素点的第三贡献系数;根据各个所述采样点相对于所述像素点的所述第一贡献系数、所述第二贡献系数和所述第三贡献系数,确定所述光源网格对所述待渲染图像中所述像素点的直接光照贡献值。
21.根据权利要求20所述的装置,其特征在于,所述渲染模块还用于针对每个光源网格,确定所述光源网格的重心和网格面积;针对所述待渲染图像中的每个像素点,确定所述光源网格的重心与所述待渲染图像中的所述像素点之间的距离;基于所述距离和所述光源网格的网格面积,确定所述光源网格相对于所述像素点的第一立体角;根据所述第一立体角,确定用于采样每个采样点的概率密度分布函数值,并将所述用于采样每个采样点的概率密度分布函数值作为每个所述采样点相对于所述像素点的第三贡献系数。
22.根据权利要求19所述的装置,其特征在于,所述渲染模块还用于针对所述待渲染图像中的每个像素点,分别确定所述像素点与所述光源网格的各个顶点所构成的各条棱边的向量;根据各条所述棱边的向量,分别确定所述像素点与所述光源网格的各个顶点所构成的多棱锥中、且所述像素点所在的各个面的法向量;根据所述像素点所在的各个面的法向量,确定所述光源网格相对于所述像素点的第二立体角;将所述第二立体角作为所述光源网格对所述待渲染图像中所述像素点的直接光照贡献值。
23.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至11中任一项所述的方法的步骤。
24.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至11中任一项所述的方法的步骤。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210090734.8A CN114119853B (zh) | 2022-01-26 | 2022-01-26 | 图像渲染方法、装置、设备和介质 |
PCT/CN2022/131698 WO2023142607A1 (zh) | 2022-01-26 | 2022-11-14 | 图像渲染方法、装置、设备和介质 |
EP22923401.8A EP4398194A1 (en) | 2022-01-26 | 2022-11-14 | Image rendering method and apparatus, and device and medium |
US18/348,101 US20240005592A1 (en) | 2022-01-26 | 2023-07-06 | Image rendering method and apparatus, device, and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210090734.8A CN114119853B (zh) | 2022-01-26 | 2022-01-26 | 图像渲染方法、装置、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114119853A CN114119853A (zh) | 2022-03-01 |
CN114119853B true CN114119853B (zh) | 2022-06-10 |
Family
ID=80361739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210090734.8A Active CN114119853B (zh) | 2022-01-26 | 2022-01-26 | 图像渲染方法、装置、设备和介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240005592A1 (zh) |
EP (1) | EP4398194A1 (zh) |
CN (1) | CN114119853B (zh) |
WO (1) | WO2023142607A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114119853B (zh) * | 2022-01-26 | 2022-06-10 | 腾讯科技(深圳)有限公司 | 图像渲染方法、装置、设备和介质 |
CN115393499B (zh) * | 2022-08-11 | 2023-07-25 | 广州极点三维信息科技有限公司 | 一种3d实时渲染方法、***及介质 |
CN115082611B (zh) * | 2022-08-18 | 2022-11-11 | 腾讯科技(深圳)有限公司 | 光照渲染方法、装置、设备和介质 |
CN117808949B (zh) * | 2023-12-29 | 2024-07-12 | 中数科技(青岛)有限公司 | 一种场景渲染方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5268996A (en) * | 1990-12-20 | 1993-12-07 | General Electric Company | Computer image generation method for determination of total pixel illumination due to plural light sources |
CN102542599B (zh) * | 2010-12-31 | 2016-03-09 | 赛恩倍吉科技顾问(深圳)有限公司 | 影像离线编程光照环境模拟***及方法 |
US10083541B2 (en) * | 2014-03-13 | 2018-09-25 | Imagination Technologies Limited | Object illumination in hybrid rasterization and ray traced 3-D rendering |
EP3340180A1 (en) * | 2016-12-20 | 2018-06-27 | Thomson Licensing | Device and method for scene rendering by path tracing with complex lighting |
CN111260766B (zh) * | 2020-01-17 | 2024-03-15 | 网易(杭州)网络有限公司 | 虚拟光源处理方法、装置、介质及电子设备 |
WO2022007787A1 (zh) * | 2020-07-07 | 2022-01-13 | 广州虎牙科技有限公司 | 图像处理方法、装置、设备和介质 |
CN114119853B (zh) * | 2022-01-26 | 2022-06-10 | 腾讯科技(深圳)有限公司 | 图像渲染方法、装置、设备和介质 |
-
2022
- 2022-01-26 CN CN202210090734.8A patent/CN114119853B/zh active Active
- 2022-11-14 WO PCT/CN2022/131698 patent/WO2023142607A1/zh active Application Filing
- 2022-11-14 EP EP22923401.8A patent/EP4398194A1/en active Pending
-
2023
- 2023-07-06 US US18/348,101 patent/US20240005592A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4398194A1 (en) | 2024-07-10 |
US20240005592A1 (en) | 2024-01-04 |
CN114119853A (zh) | 2022-03-01 |
WO2023142607A1 (zh) | 2023-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114119853B (zh) | 图像渲染方法、装置、设备和介质 | |
US20230053462A1 (en) | Image rendering method and apparatus, device, medium, and computer program product | |
CN111369655B (zh) | 渲染方法、装置和终端设备 | |
JP4733454B2 (ja) | シェルテクスチャ関数 | |
CN112927341A (zh) | 光照渲染方法、装置、计算机设备和存储介质 | |
US11276244B2 (en) | Fixing holes in a computer generated model of a real-world environment | |
CN114419240B (zh) | 光照渲染方法、装置、计算机设备和存储介质 | |
CN115830208B (zh) | 全局光照渲染方法、装置、计算机设备和存储介质 | |
KR102317182B1 (ko) | 3차원 객체와 2차원 배경을 이용한 합성 이미지 생성 장치 | |
CN110930497B (zh) | 一种全局光照相交加速方法、装置及计算机存储介质 | |
CN115082611B (zh) | 光照渲染方法、装置、设备和介质 | |
JP2024508457A (ja) | 3dモデリングを強化するために一時的なテクスチャアプリケーションを提供する方法及びシステム | |
US20230033319A1 (en) | Method, apparatus and device for processing shadow texture, computer-readable storage medium, and program product | |
CN115496845A (zh) | 图像渲染方法、装置、电子设备及存储介质 | |
CN117333637B (zh) | 三维场景的建模及渲染方法、装置及设备 | |
WO2024148898A1 (zh) | 图像降噪方法、装置、计算机设备和存储介质 | |
CN116385622B (zh) | 云图处理方法、装置、计算机及可读存储介质 | |
CN116012520B (zh) | 阴影渲染方法、装置、计算机设备和存储介质 | |
CN115984440B (zh) | 对象渲染方法、装置、计算机设备和存储介质 | |
US10754498B2 (en) | Hybrid image rendering system | |
CN116824082B (zh) | 虚拟地形的绘制方法、装置、设备、存储介质及程序产品 | |
CN117274473B (zh) | 一种多重散射实时渲染的方法、装置及电子设备 | |
CN116681814B (zh) | 一种图像渲染方法和电子设备 | |
Andrade et al. | An unstructured lumigraph based approach to the SVBRDF estimation problem | |
CN116452724A (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 |