CN116363288A - 目标物的渲染方法、装置、存储介质及计算机设备 - Google Patents
目标物的渲染方法、装置、存储介质及计算机设备 Download PDFInfo
- Publication number
- CN116363288A CN116363288A CN202211527177.8A CN202211527177A CN116363288A CN 116363288 A CN116363288 A CN 116363288A CN 202211527177 A CN202211527177 A CN 202211527177A CN 116363288 A CN116363288 A CN 116363288A
- Authority
- CN
- China
- Prior art keywords
- pixel
- target object
- coefficient
- indirect
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
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/02—Non-photorealistic rendering
-
- 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/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/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/50—Lighting effects
- G06T15/80—Shading
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本申请实施例公开了一种目标物的渲染方法、装置、存储介质及计算机设备。该方法包括:对基于物理的渲染管线中的漫反射光照和/或镜面反射光照和/或间接光的漫反射光照和/或镜面反射光照的渲染方程和/或渲染流程进行改进,不仅可以产生实时的光影交互,同时也使得改进后的渲染管线适合风格化渲染,提高风格化渲染的效率,实现风格化的渲染效果。
Description
技术领域
本申请涉及数据处理技术领域,具体涉及一种目标物的渲染方法、装置、计算机可读存储介质及计算机设备。
背景技术
PBR(Physically Based Rendering,基于物理的渲染)渲染管线通过数学公式对实验室得出的测量数据进行近似和拟合,最终得出了以Base Color(固有色)、Metallic(金属度)、Roughness(粗糙度)参数为主的材质表达方式,也称为渲染方程,基于该渲染方程,通过计算机图形做出以假乱真的写实效果。由于PBR渲染管线的渲染方程诞生的目的就是做到以假乱真的写实效果,因此通过PBR渲染管线的渲染方程并不适合用来渲染一些风格化强烈的画面,例如,国画的写意山水、赛璐璐动画(cel-animation)或印象派画风等。
手绘材质贴图是将颜色、光影、反射等信息通过手绘的方式在颜色贴图中表达出来,伴随着不同的美术风格,手绘材质贴图的绘制效果不尽相同,通过手绘材质贴图往往更能体现绘画感,然而由于所有的颜色、光影、发射等细节信息都记录到一张颜色贴图上,这样导致无法产生实时的光影交互,同时,将手绘材质贴图贴在3D模型上后,从不同的角度去观察,也无法保证被观察物体的表现始终在正确的范围内。
因此,需要一种可以用来渲染风格化强烈的画面的渲染方法,以用来渲染风格化强烈的画面。
发明内容
本申请实施例提供一种目标物的渲染方法、装置、计算机可读存储介质及计算机设备,可以产生实时的光影交互,同时提高风格化渲染的效率。
本申请实施例提供了一种目标物的渲染方法,包括:
获取目标物的模型信息和光源信息,所述模型信息包括法线信息;
根据所述法线信息和所述光源信息,利用预设漫反射函数,确定目标物待渲染像素中的每个像素的漫反射光照系数,所述预设漫反射函数在函数值为零处可导且倒数为零;
根据所述漫反射光照系数和所述光源信息,确定每个像素的漫反射光照值;
根据所述漫反射光照值,对所述目标物进行风格化渲染。
本申请实施例提供了一种目标物的渲染方法,包括:
获取目标物的模型信息和光源信息,所述模型信息包括法线信息;
获取所述目标物待渲染像素中的每个像素的纹理坐标、阴影系数和高光颜色,并根据所述目标物的所述纹理坐标,生成待渲染像素中的每个像素的高光强度;
根据所述高光强度、所述高光颜色、所述阴影系数或修正后的阴影系数、以及所述光源信息,确定每个像素的镜面反射光照值,其中,所述修正后的阴影系数是根据每个像素的所述阴影系数来进行修正处理得到的;
根据所述镜面反射光照值,对所述目标物进行风格化渲染。
本申请实施例提供了一种目标物的渲染方法,包括:
获取目标物的模型信息和光源信息,所述模型信息包括法线信息,所述光源信息包括间接光信息;
利用所述间接光信息和法线信息对所述目标物待渲染像素中的每个像素进行间接光漫反射处理得到间接光漫反射光照值,和/或利用粗糙度和法线信息对所述目标物的待渲染像素中的每个像素进行间接光镜面反射处理得到间接光镜面反射光照值,以将所述间接光漫反射处理和所述间接光镜面反射处理进行解耦;
根据所述间接光漫反射光照值和/或间接光镜面反射光照值,确定所述目标物的待渲染像素中的每个像素的间接光光照值;
根据所述间接光光照值,对所述目标物进行风格化渲染。
本申请实施例还提供一种目标物的渲染装置,包括:
第一获取模块,用于获取目标物的模型信息和光源信息,所述模型信息包括法线信息;
第一漫反射模块,用于根据所述法线信息和所述光源信息,利用预设漫反射函数,确定目标物待渲染像素中的每个像素的漫反射光照系数;并根据所述漫反射光照系数和所述光源信息,确定每个像素的漫反射光照值;其中,所述预设漫反射函数在函数值为零处可导且倒数为零;
第一渲染模块,用于根据所述漫反射光照值,对所述目标物进行风格化渲染。
本申请实施例还提供一种目标物的渲染装置,包括:
第二获取模块,用于获取目标物的模型信息和光源信息,所述模型信息包括法线信息;并获取所述目标物待渲染像素中的每个像素的纹理坐标、阴影系数和高光颜色;
第二镜面反射模块,用于据所述目标物的所述纹理坐标,生成待渲染像素中的每个像素的高光强度;根据所述高光强度、所述高光颜色、所述阴影系数或修正后的阴影系数、以及所述光源信息,确定每个像素的镜面反射光照值,其中,所述修正后的阴影系数是根据每个像素的所述阴影系数来进行修正处理得到的;
第二渲染模块,用于根据所述镜面反射光照值,对所述目标物进行风格化渲染。
本申请实施例还提供一种目标物的渲染装置,包括:
第三获取模块,用于获取目标物的模型信息和光源信息,所述模型信息包括法线信息,所述光源信息包括间接光信息;
第三间接光模块,用于利用所述间接光信息和法线信息对所述目标物待渲染像素中的每个像素进行间接光漫反射处理得到间接光漫反射光照值,和/或利用粗糙度和法线信息对所述目标物的待渲染像素中的每个像素进行间接光镜面反射处理得到间接光镜面反射光照值,以将所述间接光漫反射处理和所述间接光镜面反射处理进行解耦;根据所述间接光漫反射光照值和/或间接光镜面反射光照值,确定所述目标物的待渲染像素中的每个像素的间接光光照值;
第三渲染模块,用于根据所述间接光光照值,对所述目标物进行风格化渲染。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于处理器进行加载,以执行如上任一实施例所述的目标物的渲染方法中的步骤。
本申请实施例还提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,执行如上任一实施例所述的目标物的渲染方法中的步骤。
本申请实施例提供的目标物的渲染方法、装置、计算机可读存储介质及计算机设备,通过对基于物理的渲染管线中的漫反射光照、和/或镜面反射光照、和/或间接光的漫反射光照、和/或镜面反射光照的渲染方程和/或渲染流程进行改进,例如,对于漫反射光照来说,修改了基于物理的渲染管线中的漫反射函数得到预设漫反射函数,由于预设漫反射函数在函数值为零处可导且倒数为零,改变了原有的基于物理的渲染管线中的漫反射光照渲染后明暗交界线生硬的情况,使明暗交界线变得柔和,例如,对于镜面反射光照来说,基于物理的渲染管线中镜面反射部分是根据目标物的粗糙度来控制的,而本申请中根据目标物的纹理坐标来得到镜面反射的高光系数遮罩数据,改变了原有的镜面反射的渲染流程,例如,对于间接光的漫反射光照和镜面反射光照来说,基于物理的渲染管线中对于间接光的漫反射光照和镜面反射光照是耦合在一起的,本申请实施例中将间接光的漫反射光照和镜面反射光照分开来处理,实现了间接光的漫反射光照和镜面反射光照之间的解耦,如此改进不仅可以产生实时的光影交互,同时也使得改进后的渲染管线适合风格化渲染,提高风格化渲染的效率,实现风格化的渲染效果。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为标准PBR渲染管线中的漫反射函数图像的示意图。
图2为标准PBR渲染管线中的明暗交界线的示意图。
图3为本申请实施例提供的目标物的渲染方法的流程示意图。
图4为本申请实施例提供的明暗交界线的示意图。
图5为本申请实施例提供的预设漫反射函数图像的示意图。
图6为本申请实施例提供的不同衰减系数下预设漫反射函数图像的示意图。
图7a为本申请实施例提供的未调整漫反射的衰减系数所对应的明暗交界线示意图。
图7b为本申请实施例提供的调整衰减系数后所对应的明暗交界线的示意图。
图7c为本申请实施例提供的自阴影显示出来的示意图。
图8为本申请实施例提供的目标物的渲染方法的一流程示意图。
图9为本申请实施例提供的虚拟眼球所对应的高光纹理贴图的示意图。
图10为本申请实施例提供的虚拟眼球所对应的竖直向量和水平向量的示意图。
图11为本申请实施例提供的两个虚拟眼球的法线方向的示意图。
图12为本申请实施例提供的基于虚拟眼球正面的虚拟摄像机视角进行投射的示意图。
图13a和图13b为本申请实施例提供的虚拟眼球的高光效果的示意图。
图14a为本申请实施例提供的虚拟头发面片的原始纹理坐标的示意图。
图14b为本申请实施例提供的展开后的预设纹理坐标的示意图。
图15a为本申请实施例提供的多个虚拟头发面片和展开后的预设纹理坐标的示意图。
图15b为本申请实施例提供的虚拟头发的发根和发梢的示意图。
图16a和图16b为本申请实施例提供的不同c值所对应的高斯函数图像的示意图。
图17a为本申请实施例提供的某个虚拟头发面片在高光系数下的高光效果示意图。
图17b为本申请实施例提供的整个虚拟头发在高光系数下的高光效果示意图。
图18a为本申请实施例提供的某个虚拟头发面片的H形高光形状示意图。
图18b为本申请实施例提供的整个虚拟头发的H形高光形状示意图。
图18c为本申请实施例提供的某个虚拟头发面片进行噪声处理后得到的干扰效果示意图。
图19为本申请实施例提供的第三目标物的高光纹理贴图的示意图。
图20为本申请实施例提供的某一衣物上的H形高光的渲染结果示意图。
图21为本申请实施例提供的目标物的渲染方法的另一流程示意图。
图22为本申请实施例提供的菲尼尔效应的示意图。
图23为本申请实施例提供的间接光镜面反射处理的间接反射颜色和目标物的反射颜色的示意图。
图24为本申请实施例提供的目标物的渲染方法的又一流程示意图。
图25为本申请实施例提供的目标物的渲染方法的简易流程示意图。
图26为本申请实施例提供的目标物的渲染方法的另一简易流程示意图。
图27为本申请实施例提供的目标物的渲染装置的结构示意图。
图28为本申请实施例提供的目标物的渲染装置的一结构示意图。
图29为本申请实施例提供的目标物的渲染装置的另一结构示意图。
图30为本申请实施例提供的计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种目标物的渲染方法、装置、计算机可读存储介质及计算机设备。具体地,本申请实施例的目标物的渲染方法可以由计算机设备执行,其中,该计算机设备可以为终端或者服务器等设备。该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、游戏机、个人计算机(PC,Personal Computer)、智能机器人、车载电脑等终端设备。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群,还可以是提供云服务、云数据库等基础云计算服务的云服务器。
风格化,一般与写实相对,指艺术创作者在描述阐释一个事和物时,采用偏离原始印象的手法,采取了模仿或者原创的方法,使画具有特殊的风格,多数是模仿各种手绘绘画方式,例如:铅笔笔触、油画笔触、水彩笔触,或是对整体风格进行做旧或是残破,或是对造型进行夸张、变形、扭曲、幼稚化等。
渲染包括前向渲染(Forward Rendering)和后向渲染,后向渲染也称为延迟渲染(Deferred Rendering),其中,前向渲染指的是在顶点着色器或者片元着色器阶段,逐顶点或者逐像素地将每个光源进行计算,产生最终的光照结果。后向渲染,则是先将光照计算需要的数据进行存储,最后再在屏幕空间上进行光照计算。后向渲染中用于存储光照需要的数据的结构被称为Geometry Buffer也简称为G-Buffer,通常为多张格式不同的材质(GPUTexture)。
本申请涉及基于物理的渲染(PBR)管线中的后向渲染的过程,包括后向渲染的渲染方程和渲染流程。本申请中的风格化渲染指的是对目标物进行渲染,以得到风格化效果。
需要注意的是,本申请实施例中的方案是基于像素来进行计算的,涉及到像素着色器阶段的改进。
由于涉及到后向渲染的渲染方程和渲染流程的改变,因此对于G-Buffer存储的数据进行了如下的规划。
G-Buffer1:R通道、G通道和B通道存放自发光参数,A通道保留。
G-Buffer2:R通道、G通道和B通道存放固有色(Base Color),A通道保留。
G-Buffer3:R通道存放粗糙度(Roughness),A通道存放环境光遮蔽(AmbientOcclusion,AO)系数,也即环境光遮蔽强度/间接光遮蔽强度。其中,若漫反射光照中,R通道、G通道和B通道使用相同的衰减系数,则将该相同的衰减系数保存在G-Buffer3中,若漫反射光照中,改变了R通道、G通道和B通道的衰减系数,则将改变之后的R通道、G通道和B通道的衰减系数保存在G-Buffer5中。
G-Buffe4:用来存放目标物的法线信息如法线向量N,需要注意的是,法线信息包括顶点法线和/或纹理法线等各种法线。
G-Buffe5:用来存放自定义材质参数,例如,改变之后的R通道、G通道和B通道的衰减系数,若对镜面反射部分进行了修改,则还需存储镜面反射部分的高光颜色、以及计算出来的高光强度等。
其中,G-Buffer1、G-Buffer2、G-Buffer3、G-Buffer4、G-Buffer3中的存储格式可以根据具体存储精度来确定,可以选择为RGBA8、RGBA32或者RGBA64等。其中,G-Buffer1、G-Buffer2、G-Buffer4与PBR渲染管线中的一致,本申请主要对G-Buffer3和G-Buffer5进行了改动。
以下将基于上述的G-Buffer中保存的数据,分别对本申请实施例提供的一种目标物的渲染方法、装置、计算机可读存储介质及计算机设备进行详细说明。需说明的是,以下实施例的序号不作为对实施例优选顺序的限定。
先介绍漫反射光照的处理。对于标准PBR渲染管线的漫反射光照的漫反射项(对应为计算出来的漫反射光照强度/漫反射光照系数),它是一个关于目标物的法线向量N和光照方向向量L之间的点积(N·L)的函数,且满足当N·L小于0时,函数值为0,其函数图像如图1所示。从图1中可以看出,当函数值为0时,函数不可导,在表现上,体现为明暗交界线非常生硬,如图2所示。而本申请中的风格化渲染中,需要明暗交界线较为柔和,因此标准PBR渲染管线中的漫反射光照的渲染方程不能用来进行风格化渲染。
图3是本申请实施例提供的目标物的渲染方法的流程示意图,该方法主要涉及对标准PBR渲染管线中的漫反射光照的渲染方程进行改进,该方法包括如下步骤。
101,获取目标物的模型信息和光源信息,该模型信息包括法线信息。
其中,目标物可以是任何的虚拟物和/或人和/或动物等。目标物的模型信息包括模型中的法线信息和材质信息,该法线信息包括每个像素的法线向量N和纹理坐标(UV坐标)等,需要注意的是,UV坐标最初是从顶点得到的,但会插值映射到每个像素上,材质信息包括目标物的固有色、粗糙度、衰减系数、反射颜色、环境光遮蔽强度等中的至少一个,光源信息包括光源颜色、光源强度、光源方向、光源的透射比例等中的至少一个。
102,根据法线信息和光源信息,利用预设漫反射函数,确定待渲染像素中每个像素的漫反射光照系数,该预设漫反射函数在函数值为零处可导且倒数为零。
本申请中使用函数滤波的方式,当漫反射项为零时,函数可导且导数为零,这使得明暗交界线柔和,如图4所示,可与图2结合一起来对比参看。滤波函数要求在定义域x∈[-1,1]内有定义,且值域为y∈[0,1],并且在y=0处,导数dy/dx尽量趋近于0。本申请中滤波函数采用二次型函数y=k2来进行滤波计算,设x=N·L,k=(x-1)/(λ*2)+1,如此,得到本申请中的预设漫反射函数y=((x-1)/(λ*2)+1)2,其中,x=N·L,λ为漫反射项的衰减系数,取值范围为[0,+∞]。其中,在λ=0.5时,预设漫反射函数的图像如图5所示。
在得到预设漫反射函数后,获取G-Buffer3中保存的R通道、G通道和B通道的衰减系数λ,根据法线信息如法线向量、光源信息如光源方向和衰减系数,利用预设漫反射函数,确定每个像素的漫反射项,即漫反射光照强度/漫反射光照系数。即将法线向量、光源方向和衰减系数,代入至预设漫反射函数中进行计算,得到的数值即为计算得到的漫反射光照系数。得到的漫反射光照系数可以用DiffuseTerm来表示。由于R通道、G通道和B通道共用同一衰减系数,因此,最后计算得到的R通道、G通道和B通道的漫反射光照系数DiffuseTerm的变化也一致。由于预设漫反射函数在函数值为零处可导且倒数为零,因此,使得明暗交界处的明暗交界线柔和。
在一情况下,上述根据法线信息和光源信息,利用预设漫反射函数,确定待渲染像素中每个像素的漫反射光照系数的步骤,包括:对于R通道、G通道和B通道中的每个通道,获取预先设置的不同的衰减系数,如从G-Buffer5中获取预先设置的不同的衰减系数,分别为λ1、λ2、λ3;根据法线信息如法线向量、光源信息如光源方向和所设置的不同的衰减系数,利用预设漫反射函数,确定待渲染像素中每个像素分别在R通道、G通道和B通道的通道漫反射光照系数,例如,将每个像素的法线向量、光源方向和对应通道的衰减系数,代入至预设漫反射函数中,得到的数值即为对应通道的通道满发射光照系数;将R通道、G通道和B通道的通道漫反射光照系数,确定为待渲染像素中每个像素的漫反射光照系数DiffuseTerm。该实施例中对于每个通道设置不同的衰减系数,分通道对衰减速率进行控制。
其中,只要λ1、λ2、λ3存在一个与其他不同,即为不同的衰减系数。不同衰减系数下,预设漫反射函数的图像如图6所示,图6中,从左到右的三条漫反射曲线中的衰减系数分别为0.8、0.5、0.2,不同衰减系数对应不同漫反射曲线,不同漫反射曲线对应不同衰减速率。
需要注意的是,在标准PBR渲染管线中,并没有分通道对漫反射的衰减进行控制,本申请中分通道对漫反射的衰减进行控制,通过修改R通道、G通道和B通道的衰减系数,使得R通道、G通道和B通道分别有不同衰减速率,实现漫反射明暗变化的同时出现色相的分离,以此增加色彩变化的丰富程度。
在实际应用中,可以根据目标物的特性,对不同通道的衰减系数进行调整。例如,想让皮肤透出比较红润的光,可以提升R通道和G通道的λ值,暂缓其衰减,例如,可设置R通道的衰减系数为0.62,G通道的衰减系数为0.48,B通道的衰减系数为0.46,如此,可得到较为红润的皮肤。
在一些情况下,可以基于目标物的不同部位,设置不同的衰减需求,例如,当目标物为人物时,面部骨骼较多的部位透光比较少,耳朵这些比较薄的部位透光比较多,因此,也可以使用一张纹理来精细控制,即对每个像素的不同通道都设置不同的衰减系数。
对应地,可以为待渲染像素中的每个不同像素的R通道、G通道和B通道都设置不同的衰减系数,该不同的衰减系数可通过纹理来保存在G-Buffer中,获取每个不同像素的不同通道的衰减系数,根据每个像素的法线信息如法线向量、光源信息如光源方向和对应像素所设置的不同的衰减系数,利用预设漫反射函数,确定待渲染像素中每个像素分别在R通道、G通道和B通道的通道漫反射光照系数,将每个像素的R通道、G通道和B通道的通道漫反射光照系数,作为待渲染像素中每个像素的漫反射光照系数DiffuseTerm。该实施例中对于每个像素的每个不同通道都设置不同的衰减系数,以确定每个像素的通道漫反射光照系数。
由于本申请中通过不同的衰减系数,控制了亮度的衰减,因此当衰减系数设置的较大时,可能会出现漏光的问题,因此,本申请中为光源增加了透射比例的参数,透射比例又叫做“透射系数”,是指透射光通量与入射光通量之比。需要注意的是,标准PBR渲染管线中光源并没有该参数。
因此,在一情况下,所述方法还包括:当光源的透射比例为零时,设置每个像素的R通道、G通道和B通道中的每个通道的衰减系数为预设衰减系数,该预设衰减系数也可以作为默认衰减系数,该预设衰减系数可以为0.4;当光源的透射比例为1时,设置每个像素的R通道、G通道和B通道中的每个通道的衰减系数为预先设置的衰减系数,即在G-Buffer中保存的衰减系数;当光源的透射比例在0到1之间时,设置R通道、G通道和B通道中的每个通道的衰减系数为插值衰减系数,该插值衰减系数是对预设衰减系数和预先设置的衰减系数进行插值处理得到的衰减系数,其中,每个通道都进行插值处理得到对应通道的插值衰减系数。该实施例中当光源的透射比例不同时,设置R通道、G通道和B通道三个通道为不同的衰减系数。如此,当光源的透射比例为1时,完全透射,当光源的透射比例为0时,设置所有的衰减系数为0.4,让衰减结果接近于标准PBR渲染管线中的N·L的衰减趋势。实现了根据渲染的需求,决定光源的透射比例,以避免漏光。
在一情况下,所述方法还包括:当光源的透射比例为零时,设置不同像素的不同通道的衰减系数为预设衰减系数,该预设衰减系数可以为0.4;当光源的透射比例为1时,设置不同像素的不同通道的衰减系数为预先设置的衰减系数,即在G-Buffer中以纹理形式保存的衰减系数;当光源的透射比例在0到1之间时,设置不同像素的不同通道的衰减系数为插值衰减系数,该插值衰减系数是对预设衰减系数和预先设置的衰减系数进行插值处理得到的衰减系数,其中,对不同像素的R通道、G通道和B通道都进行插值处理,以得到对应的插值衰减系数。该实施例中根据光源的透射比例,对不同像素的不同通道都可以设置合适的衰减系数,以避免漏光。
在调整了漫反射的衰减系数后,会导致明暗交界线后移,如图7a和图7b所示。其中,图7a为未调整漫反射的衰减系数所对应的明暗交界线示意图,图7b为调整衰减系数后所对应的明暗交界线的示意图,从图7a和图7b中可以看出,图7b中明暗交界线明显后移了一些。明暗交界线后移,会导致原本被隐藏在暗部的自阴影显示出来,如图7c所示。
在一实施例中,在确定待渲染像素中每个像素的漫反射光照系数的步骤之后,还包括:对待渲染像素中的每个像素的阴影系数进行修正处理,以得到修正后的阴影系数,根据每个像素的漫反射光照系数和修正后的阴影系数确定每个像素最终的漫反射光照系数。
具体地,上述对待渲染像素中的每个像素的阴影系数进行修正处理,以得到修正后的阴影系数的步骤,包括:获取每个像素的原本的阴影系数,以及当法线向量与光照方向垂直时所对应的第一漫反射光照系数和最大阴影系数;利用第一漫反射光照系数和最大阴影系数,对原本的阴影系数进行修正处理,以得到修正后的阴影系数。其中,每个像素的原本的阴影系数指的是在标准PBR渲染管线中的阴影系数,并获取该原本的阴影系数。
上文中的预设漫反射函数为y=k2,k=(x-1)/(λ*2)+1,x=N·L,最后得到的漫反射光照系数为max(y,0),将x=0时,即顶点法线与光照方向垂直时,对应的y的值作为第一漫反射光照系数,将第一漫反射光照系数记为bound。
假设每个像素的原本的阴影系数为Shadow,有阴影时Shadow=0,无阴影时Shadow=1,则最大阴影系数为1。上述利用第一漫反射光照系数和最大阴影系数,对原本的阴影系数进行修正处理,以得到修正后的阴影系数的步骤,包括:根据第一漫反射光照系数和最大阴影系数,对原本的阴影系数进行插值处理,以得到修正后的阴影系数,例如,根据原本的阴影系数,在第一漫反射光照系数和最大阴影系数之间进行插值处理,以得到修正后的阴影系数。将修正后的阴影系数用Shadow’来表示,可使用公式来表示得到修正后的阴影系数的过程,Shadow’=Mix(Shadow,bound,1),其中,Mix(t,a,b)表示根据t,在a、b之间进行线性插值。
得到修正后的阴影系数后,根据每个像素的漫反射光照系数和修正后的阴影系数确定每个像素最终的漫反射光照系数,例如,将每个像素的漫反射光照系数和修正后的阴影系数中较小者作为对应顶点最终的漫反射光照系数。最终的漫反射光照系数仍使用DiffuseTerm来表示,可使用公式来表示得到最终的漫反射光照系数的过程,DiffuseTerm=min(Shadow’,max(y,0))。
需要注意的是,上述修改了标准PBR渲染管线中的漫反射函数,同时对PBR渲染管线中的漫反射的渲染流程进行了修改,包括:分通道对衰减系数进行控制、考虑了光源的透射比例、对阴影系数的修正等。
103,根据漫反射光照系数和光源信息,确定每个像素的漫反射光照值。
其中,若不考虑明暗交界线后移的情况,即不对原本的阴影系数进行修正处理,则根据每个像素的漫反射光照系数、光源信息和原本的阴影系数,确定每个像素的漫反射光照值,其中,光源信息包括光源颜色LightColor和光源强度LightStr,例如,将每个像素的漫反射光照系数、光源颜色、光源强度和每个像素的原本的阴影系数进行相乘处理,以得到每个像素的漫反射光照值。每个像素的漫反射光照值可使用LightValue1来表示,可使用公式来表示得到每个像素的漫反射光照值的过程,LightValue1=DiffuseTerm*LightColor*LightStr*Shadow。
其中,若考虑明暗交界线后移的情况,对原本的阴影系数进行修正处理,则根据每个像素的漫反射光照系数、光源信息和修正后的阴影系数,确定每个像素的漫反射光照值,例如,将每个像素的漫反射光照系数、光源颜色、光源强度和每个像素的修正后的阴影系数进行相乘处理,以得到每个像素的漫反射光照值。使用公式可表示为LightValue1=DiffuseTerm*LightColor*LightStr*Shadow’。
104,根据漫反射光照值,对目标物进行风格化渲染。
得到漫反射光照值之后,根据漫反射光照值,对目标物进行渲染,以实现风格化渲染,在该种情况下,只涉及目标物的漫反射光照的情况。
在一情况下,除了确定目标物的漫反射光照值LightValue1之外,还需要确定目标物的镜面反射光照值LightValue2和/或间接光漫反射光照值LightValue3和/或间接光镜面反射光照值LightValue4,并根据漫反射光照值LightValue1、镜面反射光照值LightValue2和/或间接光漫反射光照值LightValue3和/或间接光镜面反射光照值LightValue4,对目标物进行风格化渲染。
其中,确定目标物的镜面反射光照值可以采用任意一种确定镜面反射光照值的方式来进行,确定目标物的间接光漫反射光照值可以采用任意一种确定间接光漫反射光照值的方法来进行,确定目标物的间接光镜面反射光照值可以采用任意一种确定间接光镜面反射关照值的方法来进行。
在一情况下,可利用如下方式来确定目标物的镜面反射光照值LightValue2:利用基于物理的渲染管线中的方式确定每个像素的镜面反射光照系数SpecTerm,根据镜面反射光照系数SpecTerm、每个像素修正后的阴影系数Shadow’、以及光源信息如光源颜色LightColor和光源强度LightStr,确定每个像素的镜面反射光照值LightValue2,其中,修正后的阴影系数是根据每个像素的原本的阴影系数进行修正处理得到的,具体如何得到修正后的阴影系数请参看上文中的内容,在此不再赘述。可使用公式来表示得到每个像素的镜面反射光照值的过程,LightValue2=0.04*SpecTerm*LightColor*LightStr*Shadow’。该实施例中利用修正后的阴影系数来计算镜面反射光照值,使得计算出来的镜面反射的高光效果更好。其中,基于物理的渲染管线中的确定每个像素的镜面反射光照系数,可采用标准PBR渲染管线中的GGX算法来计算得到。
在一情况下,模型信息中包括目标物的每个顶点的纹理坐标,将每个顶点的纹理坐标映射到每个像素上,得到每个像素的纹理坐标,还可利用如下方式来确定目标物的镜面反射光照值LightValue2:根据目标物待渲染像素中每个像素的纹理坐标,生成每个像素的高光强度,根据每个像素的高光强度、高光颜色、修正后的阴影系数、以及光源信息,确定待渲染像素中每个像素的镜面反射光照值。需要注意的是,标准PBR渲染管线中高光的光斑大小是通过粗糙度来控制的且满足能量守恒定律,而本申请中根据目标物待渲染像素中的每个像素的纹理坐标来确定高光强度,与标准PBR渲染管线中的通过粗糙度来控制的实现原理不同。后文中将会对该部分内容进行详细介绍,具体请参看后文中相应部分的内容。
在一情况下,还包括间接光的光照处理,间接光也可称为环境光,对应地,光源信息还包括间接光信息,即环境光信息。其中,可采用如下方式来确定目标物的间接光漫反射光照值和/或间接光镜面反射光照值:利用间接光信息和法线信息对目标物待渲染像素中的每个像素进行间接光漫反射处理得到间接光漫反射光照值,和/或利用粗糙度和法线信息对目标物待渲染像素中的每个像素进行间接光镜面反射处理得到间接光镜面反射光照值,以将间接光漫反射处理和间接光镜面反射处理进行解耦;根据间接光漫反射光照值和/或间接光镜面反射光照值,确定每个像素的间接光光照值。需要注意的是,标准PBR渲染管线中间接光漫反射光照值和间接光镜面反射光照值的计算是耦合在一起的,本申请实施例中将确定间接光漫反射光照值和间接光镜面反射光照值分别进行单独计算,以将间接光漫反射处理和间接光镜面反射处理进行解耦,以实现间接光的镜面反射和漫反射效果的多样化。后文中将会对该部分内容进行详细介绍,具体请参看后文中相应部分的内容。
下面介绍镜面光照的部分,先介绍镜面光照的处理。对于标准PBR渲染管线的镜面光照的处理,对应镜面光照的高光光斑(或者称为高光点)的大小与目标物的粗糙度有关,且镜面光照的处理过程中遵循能量守恒定律,即高光光斑积分是个固定值,如此,会导致高光光斑越集中,则表现为越亮,高光光斑越分散,则表现为越暗,即高光光斑的大小和亮度是一体的,是一起来进行控制的。然而在进行风格化渲染时,并不是每次都需要高光光斑越大则越暗,高光光斑越小则越亮,例如有时候需要高光光斑越大的同时也越亮,因此,标准PBR渲染管线的镜面光照的处理在风格化渲染时并不能很好的表现。
图8是本申请实施例提供的目标物的渲染方法的一流程示意图,该方法主要涉及对标准PBR渲染管线的镜面反射处理的渲染流程和渲染方程进行改进,该方法包括如下步骤。
201,获取目标物的模型信息和光源信息,该模型信息包括法线信息。
其中,模型信息的具体内容和光源信息的具体内容请参看步骤201部分的具体描述,在此不再赘述。
202,获取目标物待渲染像素中的每个像素的纹理坐标、阴影系数和高光颜色,并根据目标物待渲染像素中的每个像素的纹理坐标,生成待渲染像素中的每个像素的高光强度。
需要注意的是,标准PBR渲染管线是根据粗糙度来计算得到镜面反射系数,并没有计算高光强度,也并没有根据纹理坐标来计算得到高光强度。
在一情况下,上述根据目标物待渲染像素中的每个像素的纹理坐标,生成待渲染像素中的每个像素的高光强度的步骤,包括:根据纹理坐标,确定待渲染像素中的每个像素的高光系数;根据高光系数和预设的高光强度值,生成待渲染像素中的每个像素的高光强度。其中,高光系数为[0,1]之间的值。预设的高光强度值即为标准的高光强度值,如预设的高光强度值可以是光源颜色为白色、光源强度为1,反射的高光颜色为白色时的高光强度值,在不同的应用场景中,标准的高光强度值可以相同,也可以不同,根据高光系数和预设的高光强度值,可以得到每个像素在该标准的高光强度值下所对应的高光强度。
在一情况下,目标物包括第一目标物,该第一目标物可以为虚拟眼球等目标物,对应地,上述根据纹理坐标,确定待渲染像素中的每个像素的高光系数的步骤,包括:获取第一目标物的高光纹理贴图;根据纹理坐标、第一目标物的模型信息中的法线信息与虚拟摄像机的位置关系,确定待渲染像素中的每个像素的采样纹理坐标;根据采样纹理坐标采样高光纹理贴图,以生成每个像素的高光系数。其中,虚拟摄像机指的是当前虚拟场景中的虚拟摄像机。该实施例中,根据纹理坐标、法线信息与虚拟摄像机的位置关系,来确定虚拟摄像机与第一目标物之间的偏移数据,将该偏移数据作为纹理坐标的偏移数据,来得到采样纹理坐标,并根据采样纹理坐标来采样高光纹理贴图,以得到每个像素的正确的高光系数。
以第一目标物为虚拟眼球为例进行说明。对应地,第一目标物的高光纹理贴图指的是虚拟眼球所对应的高光纹理贴图,如图9所示,为某一虚拟眼球所对应的高光纹理贴图的一个示意图。
对应地,上述根据纹理坐标、第一目标物的模型信息中的法线信息与虚拟摄像机的位置关系,确定待渲染像素中的每个像素的采样纹理坐标的步骤,包括:在虚拟摄像机正视虚拟眼球时,获取虚拟眼球所在平面上的竖直方向上的竖直向量和水平方向上的水平向量;根据竖直向量、水平向量和虚拟摄像机的朝向向量,确定虚拟摄像机与虚拟眼球之间的偏移量;根据纹理坐标、偏移量、高光点随视线的运动速度和高光点的缩放数据,确定待渲染像素中的每个像素的采样纹理坐标。该实施例中根据虚拟摄像机与虚拟眼球之间的偏移量,来确定虚拟摄像头相对于虚拟眼球的位置,从而进一步确定高光点在虚拟眼球上的位置,根据对应的采样纹理坐标和高光纹理贴图即可得到高光点在虚拟眼球上的位置。
其中,在虚拟摄像机正视虚拟眼球时,虚拟眼球所在平面上的竖直方向上的竖直向量和水平方向上的水平向量可如图10所示,其中,竖直方向上的竖直向量可以用UP表示,水平方向上的水平向量可以用Right来表示。确定该竖直向量和水平向量相当于确定标架,以使得后续运算按照该标架来进行处理,简化后续运算,同时为了方便确定虚拟眼球与视线(虚拟摄像机)之间的关系,因为虚拟眼球的高光会随着视线的移动而移动。
可采用两种不同的方式来确定竖直向量和水平向量:第一种方式,若虚拟眼球参与了绑定和动画,则获取与虚拟眼球绑定的骨骼的骨骼向量,根据骨骼向量确定在虚拟眼球所在平面上的竖直方向上的竖直向量和水平方向上的水平向量。若虚拟眼球没有做绑定,或者无法获得骨骼向量,那么就使用第二种方式,复制两个一样的眼球模型,得到两个虚拟眼球的模型,将两个虚拟眼球的模型的法线向量设置为在虚拟眼球所在平面上的竖直方向上的竖直向量和水平方向上的水平向量,如图11所示。对于第二种方式,可通过烘焙法线贴图的方式,将竖直向量和水平向量这两个向量在目标物表面的切空间下的数值记录在纹理上,在计算高光位置的的时候还原到世界空间下。
设虚拟摄像机的朝向向量为V,上述得到的竖直向量为UP、水平向量为Right,对应地,上述根据竖直向量、水平向量和虚拟摄像机的朝向向量,确定虚拟摄像机与虚拟眼球之间的偏移量的步骤,包括:将竖直向量、水平向量分别与虚拟摄像机的朝向向量做点积,以得到虚拟摄像机与虚拟眼球之间的两个偏移量。可使用公式来表示得到两个偏移量的过程,Offset1=V·Right,Offset2=V·UP。设置当视线(虚拟摄像机)正对虚拟眼球时,两个偏移量Offset1和Offset2均为0。
上述根据纹理坐标、偏移量、高光点随视线的运动速度和高光点的缩放数据,确定待渲染像素中的每个像素的采样纹理坐标的步骤,包括:将虚拟眼球待渲染像素中的每个像素原本的纹理坐标,进行偏移,得到偏移后的纹理坐标UV’=UV-0.5;根据偏移量、偏移后的纹理坐标、高光点随视线的运动速度和高光点的缩放数据,确定待渲染像素中的每个像素的采样纹理坐标。需要注意的是,虚拟眼球待渲染像素中的每个像素原本的纹理坐标需要基于虚拟眼球正面的虚拟摄像机视角进行投射,如图12所示,在该基础上,进行偏移。其中,高光点的缩放数据用来控制高光点的大小,高光点的缩放数据可以用Scale来表示,高光点随视线的运动速度可以用Speed来表示,每个像素的采样纹理坐标UVHighLight,确定每个像素的采样纹理坐标可通过公式来表示UVHighLight=(UV’-(Vec2(Offset1,Offset2)*Speed+Vec2(BaseOffset1,BaseOffset2)))*Scale,其中,BaseOffset1和BaseOffset2为高光的基础偏移量。
需要注意的是,本申请实施例中使用了单独的参数Scale来控制高光点的大小和缩放等信息。高光的位置偏移用了Offset1、Offset2、BaseOffset1、BaseOffset2、Speed来控制。高光点的大小和缩放以及位置偏移分别进行独立控制。
得到每个像素的采样纹理坐标之后,利用该采样纹理坐标采样虚拟眼球所对应的高光纹理贴图,即可得到每个像素的高光系数,其中,采样纹理坐标的范围为[0,1],得到的每个像素的高光系数也为[0,1]中的值。得到高光系数后,根据高光系数和预设的高光强度值,生成每个像素的高光强度,例如,将高光系数和预设的高光强度值进行相乘,以得到每个像素的高光强度SpecStr。
由此可知,对于第一目标物如虚拟眼球来说,将虚拟眼球的高光点的大小和高光点的高光强度分别用两个不同的参数Scale和SpecStr来表示,将镜面反射处理过程中的高光点的大小和高光强度分开来进行控制,如此,高光点的大小和高光强度不必像标准PBR渲染管线中的那样需要满足能量守恒定律,使得本申请实施例中的方案适用于虚拟眼球的风格化渲染。最后渲染得到的虚拟眼球的高光效果可如图13a和图13b所示。
在一情况下,目标物包括第二目标物,该第二目标物可以为虚拟头发等目标物,对应地,上述根据纹理坐标,确定待渲染像素中的每个像素的高光系数的步骤,包括:确定第二目标物的预设纹理坐标,该预设纹理坐标是将第二目标物所对应的面片的纹理坐标展开成沿着V轴坐标方向竖直排列而得到的纹理坐标;根据预设纹理坐标,确定待渲染像素中的每个像素的高光系数,例如,获取预先构建的预设函数,该预设函数中包括高光位置偏移系数和高光粗细系数,该预设函数的最大值可控,自变量范围可控,该预设函数的最大值在自变量范围内的位置可控,设置高光位置偏移系数对应的高光位置偏移值,和高光粗细系数对应的高光粗细值,根据预设纹理坐标、高光位置偏移值、高光粗细值,利用预设函数,生成第二目标物待渲染像素中的每个像素的高光系数。
以第二目标物为虚拟头发为例,为了能更好的控制高光的位置和大小(粗细),同时不影响本来的纹理采样,另起了一套预设纹理坐标,该预设纹理坐标以纹理坐标(原始纹理坐标)空间的正中心为坐标原点建立坐标系,并将虚拟头发中的每个虚拟头发面片(也可称为虚拟头发插片)的纹理坐标展开成沿着V轴坐标方向竖直排列的UV块而得到的纹理坐标。得到该另一套的预设纹理坐标之后,将其映射到像素上,以得到每个像素的预设纹理坐标,以每个像素的预设纹理坐标参与高光系数的计算。
如图14a所示,为虚拟头发面片的原始纹理坐标的示意图,图14b所示,为展开后的预设纹理坐标的示意图。
该预设纹理坐标要求即使虚拟头发面片是弯曲的,所得到的UV块也需要是直的,并且按照从发根到发梢的方向,沿V轴方向从小到大排列。如图15a所示,右侧是多个虚拟头发面片,其是弯曲的,左侧是原始纹理坐标所对应的预设纹理坐标,该预设纹理坐标是直的。如图15b所示,虚拟头发面片中黑色部分是预设纹理坐标中V坐标较小的,即发根部分是V坐标较小的,白色部分是V坐标较大的,即发梢部分是V坐标较大的。
其中,因为每个虚拟头发面片有长短区别,因此得到的预设纹理坐标中的UV块在竖直方向上也有长短区分。可以从反面来理解,若将所有头发的纹理坐标都设置为从0到1,那么会导致出来的结果是长的虚拟头发面片中的高光拉伸,而短的虚拟头发面片中的高光压缩,因此,才会将纹理坐标进行调整,得到预设纹理坐标,预设纹理坐标中短的虚拟头发面片所对应的UV块要短一些,长的虚拟头发片面所对应的UV块要长一些。或者也可以理解为因为每个虚拟头发面片有长短区分,因此,对于预设纹理坐标有一定的要求:第一,虚拟头发片面的UV块(也可称为UV岛)在V轴方向上的起始位置要几乎统一,第二,根据虚拟头发面片的长度,在V轴方向上缩放UV岛的带下,能保证当预设函数(接着会介绍)的参数b和c都相同时,高光的位置和高光的粗细是理想的,不会出现过渡的偏移和拉伸。
以调整之后的预设纹理坐标中的V轴方向的v值为自变量,构建预设函数。该预设函数中包括高光位置偏移系数和高光粗细系数(控制高光大小、缩放等),要求该预设函数的最大值可控,预设函数的自变量范围可控,最大值在自变量范围内的位置可控,本申请实施例中以高斯函数为例进行说明。
所构建出来的高斯函数可以为其中,b为高光位置偏移系数,c为高光粗细系数,v为自变量,f(v)为高斯函数的函数值,即为高光系数SpecFactor。可以看到,在对于第二目标物的高光强度的处理时,将高光粗细(高光大小缩放)作为一个独立的参数来设置,将高光位置偏移也作为一个独立的参数来进行设置。
其中,当b=0,c=0.34时,该高斯函数的图像如图16a所示,其中,修改b的值,函数图像的形状能左右偏移,修改c的值,函数图像的形状能变宽变窄,如图16b所示,在函数形状变化的过程中,其最大值始终为1,方向进行高光强度的控制,该高斯函数满足上述的预设函数的所有要求。
设置合适的b值和合适的c值,即设置高光位置偏移系数对应的高光位置偏移值、高光粗细系数对应的高光粗细值,将预设纹理坐标中的V轴坐标的v值代入至预设函数中,生成第二目标物的每个像素的高光系数,高光系数也可称为高光强度遮罩,该高光系数的值域为[0,1]。
如图17a所示为某个虚拟头发面片的高光系数(高光强度遮罩)的高光效果示意图,可以看到此时得到的固定宽度的条带状的高光强度遮罩,如图17b为整个虚拟头发中的高光系数的高光效果示意图。
得到每个像素的高光系数之后,根据高光系数和预设的高光强度值得到每个像素的高光强度,例如,将高光系数乘以预设的高光强度值即可得到每个像素相对于预设的高光强度值所对应的高光强度。
上述得到高光强度的过程中只使用了预设纹理坐标中的V轴方向的v值。在一情况下,还可以利用预设纹理坐标中的U轴方向的u值。对应地,设置高光粗细系数对应的高光粗细值的步骤,包括:让高光粗细系数随着预设纹理坐标中的U轴方向的u值变化而发生变化,以得到变化的高光粗细值,对应地,上述根据预设纹理坐标、高光位置偏移值、高光粗细值,利用预设函数,生成第二目标物的每个像素的高光系数的步骤,包括:根据预设纹理坐标中的V轴方向的v值、高光位置偏移值、变化的高光粗细值,利用预设函数,生成第二目标物的每个像素的高光系数。
其中,可以让高斯函数的c值随着预设纹理坐标中U轴方向的u值按照某个函数c=g(u)进行变化,得到变化的高光粗细值,以增加高光的形状细节。例如,获取高光粗细的最小值和高光粗细的最大值,并根据高光粗细的最小值和高光粗细的最大值,利用插值函数对预设函数中的高光粗细系数进行插值处理,以得到变化的高光粗细值。
例如可按下如下公式来进行变化,c=Mix((|(u-0.5)|*2)2,minC,maxC),其中,u为U轴方向的u值,minC为高光粗细的最小值,maxC为高光粗细的最大值,Mix(t,min,max)表示根据t,在min和max之间进行插值。需要注意的是,使用该公式时,虚拟头发面片的预设纹理坐标在U轴方向上应当尽量接近中心,并且具有足够的宽度。按照该公式可以得到H形的高光样式,如图18a所示,为某个虚拟头发面片的H形高光形状示意图,图18b为整个虚拟头发的H形高光形状示意图。
在一实施例中,得到高光位置偏移值之后,还可以进一步利用第一噪声函数对高光位置偏移值进行噪声处理,以得到最终的高光位置偏移值,和/或,在得到变化的高光粗细值之后,还可以进一步利用第二噪声函数对变化的高光粗细值进行噪声处理,以得到最终的高光粗细值。其中,通过对高光位置偏移值、高光粗细值进行噪声处理,以模拟发丝对高光的干扰效果。其中,如图18c所示,为某个虚拟头发面片进行噪声处理后得到的干扰效果示意图,其中,对高光位置偏移值和高光粗细值都进行了噪声处理。
最后,根据预设纹理坐标中的V轴方向的v值、高光位置偏移值、变化的高光粗细值,利用预设函数,生成第二目标物的每个像素的高光系数,再根据每个像素的高光系数和预设的高光强度值,生成每个像素高光强度SpecStr。
需要注意的是,在对第二目标物的高光强度的处理时,将第二目标物的高光粗细(高光大小缩放)和高光强度分别用两个不同的参数c和SpecStr来表示,将镜面反射处理过程中的高光的大小和高光强度分开来进行控制,如此,高光的大小和高光强度不必像标准PBR渲染管线中的那样需要满足能量守恒定律,使得本申请实施例中的方案适用于第二目标物的风格化渲染。
在一情况下,目标物包括第三目标物,第三目标物是无法和虚拟头发一样规整的展开UV坐标的目标物,例如衣物等较为复杂的目标物,对应地,上述根据纹理坐标,确定每个像素的高光系数的步骤,包括:获取第三目标物的高光纹理贴图;根据第三目标物待渲染像素中的每个像素的纹理坐标采样高光纹理贴图,以得到新的纹理坐标;获取预先构建的预设函数,该预设函数中包括高光位置偏移系数和高光粗细系数,该预设函数的最大值可控,该预设函数的自变量范围可控,该最大值在自变量范围内的位置可控;设置高光位置偏移系数对应的高光位置偏移值,和高光粗细系数对应的高光粗细值;根据新的纹理坐标、高光位置偏移值、高光粗细值,利用预设函数,生成第三目标物待渲染像素中的每个像素的高光系数。
其中,当目标物包括第三目标物时,上述根据纹理坐标,确定每个像素的高光系数的步骤,与目标物为第二目标物时的区别在于:获取第三目标物的高光纹理贴图;根据每个像素的纹理坐标采样高光纹理贴图,以得到新的纹理坐标。下面将介绍这存在区别的两个步骤。
其中,获取第三目标物的高光纹理贴图的步骤,包括:获取第三目标物的法线贴图,将法线贴图导入至预设工具如Blender中,根据法线结构,通过添加和调整曲线,标记高光区域以及方向,然后渲染为第三目标物的高光纹理贴图,该高光纹理贴图描述了高光的坐标走向。其中,某一第三目标物的高光纹理贴图可如图19所示。获取了第三目标物的高光纹理贴图之后,根据每个像素的纹理坐标采样高光纹理贴图的R通道和G通道的值,分别得到两个值,将该两个值分别作为新的纹理坐标的u值和v值。
得到新的纹理坐标的u值和v值之后,将其代入至预设函数中进行处理,以得到高光系数,这部分的内容与上文中的第二目标物的处理一致,在此将不再赘述。可以理解地,对于第二目标物来说,代入至预设函数中的是预设纹理坐标,而对于第三目标物来说,代入至预设函数中的是根据高光纹理贴图得到的新的纹理坐标。
如图20所示,为某一衣物上的H形高光的渲染结果示意图。
203,根据高光强度、高光颜色、阴影系数或修正后的阴影系数、以及光源信息,确定每个像素的镜面反射光照值,其中,修正后的阴影系数是根据每个像素的阴影系数来进行修正处理得到的。
得到每个像素的高光强度SpecStr后,获取G-Buffer中保存的高光颜色SpecColor,每个像素的阴影系数Shadow、光源强度LightStr和光源颜色LightColor来确定每个像素的镜面反射值LightValue2。例如,将每个像素的高光强度、高光颜色、光源颜色、光源强度,以及每个像素的阴影系数进行相乘处理,以得到每个像素的镜面反射光照值。可使用如下公式来表示得到每个像素的镜面反射值的过程,LightValue2=SpecStr*SpecColor*LightColor*LightStr*Shadow。
在一情况下,对于阴影系数,并不是使用原本的阴影系数,而是使用修正后的阴影系数,对应地,根据高光强度SpecStr、高光颜色SpecColor、修正后的阴影系数Shadow’、光源强度LightStr和光源颜色LightColor来确定每个像素的镜面反射值LightValue2。例如,将每个像素的高光强度、高光颜色、光源颜色、光源强度,以及修正后阴影系数进行相乘处理,以得到每个像素的镜面反射光照值。可使用如下公式来表示得到每个像素的镜面反射值的过程,LightValue2=SpecStr*SpecColor*LightColor*LightStr*Shadow’,其中,修正后的阴影系数可参看上文中的计算方式,在此不再赘述。
204,根据镜面反射光照值,对目标物进行风格化渲染。
得到镜面反射光照值之后,根据镜面反射光照值,对目标物进行渲染,以实现风格化渲染,在该种情况下,只涉及目标物的镜面反射光照的情况。
在一情况下,除了确定目标物的镜面反射光照值LightValue2之外,还需要确定目标物的漫反射光照值LightValue1和/或间接光漫反射光照值LightValue3和/或间接光镜面反射光照值LightValue4,并根据漫反射光照值LightValue1、镜面反射光照值LightValue2和/或间接光漫反射光照值LightValue3和/或间接光镜面反射光照值LightValue4,对目标物进行风格化渲染。
其中,确定目标物的漫反射光照值可以采用标准PBR渲染管线中的确定漫反射光照值的方式来进行,若采用标准PBR渲染管线中的确定漫反射光照值的方式的话,对应地,在确定目标物的镜面反射光照值时,使用的是原本的阴影系数来确定。确定目标物的漫反射光照值还可以按照上述实施例中对标准PBR渲染管线进行修改所涉及的确定目标物的漫反射光照值的方式来进行,具体请参看上文中相应部分,在此不再赘述。
在一情况下,还包括间接光的光照处理,间接光也可称为环境光,对应地,光源信息还包括间接光信息,即环境光信息。其中,可采用如下方式来确定目标物的间接光漫反射光照值和/或间接光镜面反射光照值:利用间接光信息和法线信息对目标物待渲染像素中的每个像素进行间接光漫反射处理得到间接光漫反射光照值,和/或利用粗糙度和法线信息对目标物待渲染像素中的每个像素进行间接光镜面反射处理得到间接光镜面反射光照值,以将间接光漫反射处理和间接光镜面反射处理进行解耦;根据间接光漫反射光照值和/或间接光镜面反射光照值,确定目标物待渲染像素中的每个像素的间接光光照值。后文中将会对该部分内容进行详细介绍,具体请参看后文中相应部分的内容。
下面将介绍间接光光照,先介绍间接光光照的处理,间接光也称为环境光。对于标准PBR渲染管线的间接光光照的处理,先拍一个目标物的周围环境,获取环境光信息也即间接光信息,根据间接光信息确定间接光镜面反射光照值,然后对间接光镜面反射光照值进行处理,得到较为平滑的值,作为间接光漫反射光照值,如此,间接光的镜面反射光照值和间接光的漫反射光照值是耦合的,例如,间接光镜面反射光照值为红色,那么间接光的漫反射光照值也为红色,或者也可以理解为间接光漫反射处理和间接光镜面反射处理是耦合的。然而对于风格化渲染来说,间接光镜面反射部分需要保持丰富的细节和颜色变化,但对于间接光漫反射部分,则需要满足尽可能的保持低频,并且颜色需要可控,因此,标准PBR渲染管线对于间接光光照的处理,并不能满足需求。
图21是本申请实施例提供的目标物的渲染方法的另一流程示意图,该方法主要涉及对标准PBR渲染管线的间接光反射处理的渲染流程和渲染方程进行改进,该方法包括如下步骤。
301,获取目标物的模型信息和光源信息,该模型信息包括法线信息,该光源信息包括间接光信息。
模型信息请参看上文中的内容,间接光信息包括间接光方向、间接光颜色、间接光遮蔽强度等信息。
302,利用间接光信息和法线信息对目标物待渲染像素中的每个像素进行间接光漫反射处理得到间接光漫反射光照值,和/或利用粗糙度和法线信息对目标物待渲染像素中的每个像素进行间接光镜面反射处理得到间接光镜面反射光照值,以将间接光漫反射处理和间接光镜面反射处理进行解耦。
本申请实施例中将间接光漫反射处理和间接光镜面反射处理完全分开来进行,将间接光漫反射光照值和间接光镜面反射光照值完全解耦/将间接光漫反射处理和间接光镜面反射处理完全解耦,如此,得到的间接光漫反射光照值和间接光镜面反射光照值之间没有任何关系,以满足风格化渲染需求。
对于间接光漫反射的处理,上述利用间接光信息和法线信息对目标物待渲染像素中的每个像素进行间接光漫反射处理得到间接光漫反射光照值的步骤,包括:设置空间轴向,并设置沿着空间轴向的多个间接光颜色和多个间接光强度;根据空间轴向、法线信息、多个间接光颜色和多个间接光强度,确定目标物待渲染像素中的每个像素的间接光漫反射值;根据间接光漫反射值、每个像素的固有色和间接光遮蔽强度确定目标物待渲染像素中的每个像素的间接光漫反射光照值。该实施例中实现了间接光漫反射颜色的可控,具体地通过设置空间轴向和沿着空间轴向的多个间接光颜色和多个间接光强度来实现漫反射颜色可控。
其中,空间轴向可以用一个向量来表示,可以根据具体目标物的间接光信息来决定。多个间接光颜色和多个间接光强度以三个为例来进行说明。例如,假设需要渲染的画面中包括天空、地平线和地表,天空是比较亮的、地平线次之,而地表最暗,那么画面上从上到下所对应的光线是从亮到暗的,对应地,空间轴向可以为向上的一个向量(从地表到天空),对应地,设置三个不同的间接光颜色和三个不同的间接光强度,分别对应地表、地平线和天空。例如,在摄影棚中,环境光可能有一个明确的方向,例如从某一个方向过来的,如从左侧过来的,那么环境光从左到右依次减弱,那么空间轴向可设置为水平向左方向的向量,间接光颜色和间接光强度沿着空间轴向可设置为三个。
通过设置空间轴向,以使地所设置的多个不同间接光颜色和间接光强度沿着空间轴向来进行变化,空间轴向是间接光颜色和强度变化的一个基准方向,或者也可以理解为空间轴向与间接光方向有关。
确定法线信息中的法线向量与所设置的空间轴向之间的关系,根据关系,对多个间接光颜色和多个间接光强度进行插值处理,以得到每个像素的间接光漫反射值。其中,顶点法线与空间轴向之间的关系指的是顶点法线和空间轴向的之间的点积结果。
假设空间轴向为向量A,目标物的每个像素的法线向量为N,三个间接光颜色分别为SkyLightUpColor、SkyLightMidColor和SkyLightDownColor,三个间接光强度分别为SkyLightUpStr、SkyLightMidStr和SkyLightDownStr。设Term=|(A·N))|,Sign=step(0,A·N),每个像素的间接光漫反射颜色=Mix(Sign,Mix(1-Term,SkyLightDownColor,SkyLightMidColor),Mix(Term,SkyLightMidColor,SkyLightUpColor)),其中,step(a,b)表示当b<a时取0,当b>=a时取1,Mix(t,a,b)表示根据t,在a,b间线性插值。按照类似的方法可得到每个像素的间接光漫反射强度,如此,可根据每个像素的间接光漫反射强度和每个像素间接光漫反射颜色得到每个像素的间接光漫反射值,例如,将每个像素的间接光漫反射颜色和每个像素的间接光漫反射强度进行相乘处理,以得到每个像素的间接光漫反射值SkyLightColor,该间接光漫反射值SkyLightColor可以理解为进行漫反射光照处理的间接光的值。
得到每个像素的间接光漫反射值之后,将每个像素的间接光漫反射值、每个像素的固有色和间接光遮蔽强度进行相乘处理,以得到每个像素的间接光漫反射光照值,可使用公式来表示得到间接光漫反射光照值的过程,LightValue3=SkyLightColor*BaseColor*AO,其中,SkyLightColor为每个像素的间接光漫反射值,BaseColor为每个像素的固有色,AO为每个像素的间接光遮蔽强度。
以上涉及对于间接光漫反射处理,该间接光漫反射处理的过程中修改了标准PBR渲染管线中的利用间接光镜面反射光照值,以得到间接光漫反射光照值的标准流程,而直接是自定义间接光方向(与空间轴向相关)、自定义整个渲染画面中的多个不同的间接光颜色和间接光强度,并对其进行插值,以得到间接光漫反射值,并根据间接光漫反射值、每个像素的固有色和间接光遮蔽强度来得到间接光漫反射光照值。
对于间接光镜面反射的处理,在标准的PBR渲染管线中,由于菲尼尔效应,当视角越平行于目标物的表面,其反射就会越强。对于非金属,目标物会发射一层白光,如图22所示,视线内箭头所在的两个面看起来都有一层白光,影响了目标物颜色稳定性。为了保持目标物颜色的稳定性,本申请实施例中提出了两种处理方法。
第一种方法,移除菲尼尔项,移除菲尼尔项之后,对应地,上述利用粗糙度和法线信息对目标物待渲染像素中的每个像素进行间接光镜面反射处理得到间接光镜面反射光照值的步骤,包括:根据法线信息如法线向量和粗糙度确定目标物待渲染像素中的每个像素的间接光镜面反射值IndirectSpecColor;获取目标物待渲染像素中的每个像素的反射颜色,根据间接光镜面反射值、目标物的反射颜色和间接光遮蔽强度,确定每个像素的间接光镜面反射光照值。简单来理解即为根据间接光镜面反射值IndirectSpecColor和目标物的每个像素的反射颜色SpecColor来确定间接光镜面反射光照值。在一实施例中,目标物的每个像素的反射颜色SpecColor可为上文中所涉及的高光颜色,该高光颜色保存在G-Buffer中。
第二种方法,对菲尼尔项进行改进,具体地,根据粗糙度对菲尼尔项进行处理。对应地,上述利用粗糙度和法线信息对目标物待渲染像素中的每个像素进行间接光镜面反射处理得到间接光镜面反射光照值的步骤,包括:根据法线信息如法线向量和粗糙度确定目标物待渲染像素中的每个像素的间接光镜面反射值IndirectSpecColor;根据粗糙度和每个像素的固有色来确定目标物的反射颜色;根据间接光镜面反射值、目标物的反射颜色和间接光遮蔽强度,确定目标物待渲染像素中的每个像素的间接光镜面反射光照值。其中,所述根据粗糙度和每个像素的固有色来确定目标物的反射颜色的步骤,包括:根据粗糙度对预设反射颜色和固有色进行插值处理,以得到目标物的每个像素的反射颜色,可使用公式来表示得到目标物的每个像素的反射颜色的过程,SpecColor=Mix(Clamp(粗糙度*系数,0,1),预设反射颜色,固有色),其中,预设反射颜色可以为0.04,系数可以根据对效果的需求进行设置,Clamp(x,a,b)表示当x<a时取a,当x>b时取b,其余取x,Mix(t,a,b)表示根据t,在a,b间线性插值。
其中,上述根据法线信息和粗糙度确定每个像素的间接光镜面反射值,可以按照如下来进行理解,例如,金属球看上去每个点的反射颜色是不一样的,而目标物的粗糙度同样也影响着间接光镜面反射值,不同粗糙度看起来也是不一样的。每个像素的间接光镜面反射值IndirectSpecColor可以理解为不考虑目标物的本身颜色反射所得到的环境颜色,或者说是基准色如白色的目标物所反射出来的环境颜色,如图23所示,IndirectSpecColor表示基准色为白色的目标物所反射出来的环境颜色,也可以称为间接反射颜色。
其中,上述根据间接光镜面反射值、目标物的反射颜色和间接光遮蔽强度,确定目标物待渲染像素中的每个像素的间接光镜面反射光照值的步骤,包括:将间接光镜面反射值、目标物的反射颜色和环境光遮蔽强度进行相乘处理,以得到每个像素的间接光镜面反射光照值。其中,可使用公式来表示得到每个像素的间接光镜面反射光照值LightValue4=IndirectSpecColor*SpecColor*AO。
以上涉及对于间接光镜面反射处理,该间接光镜面反射处理的过程中移除了标准PBR渲染管线中的菲尼尔项或者利用粗糙度来对菲尼尔项进行修改,最后根据间接光镜面反射值、每个像素的反射颜色和间接光遮蔽强度来得到间接光镜面反射光照值。
303,根据间接光漫反射光照值和/或间接光镜面反射光照值,确定目标物待渲染像素中的每个像素的间接光光照值。
若只需要计算每个像素的间接光漫反射光照值,则直接将该间接光漫反射光照值确定为间接光光照值。若只需要计算每个像素的间接光镜面反射光照值,则直接将该间接光镜面反射光照值确定为间接光光照值。若即计算了间接光漫反射光照值,又计算了间接光镜面反射光照值,则可以直接将间接光漫反射光照值和间接光镜面反射光照值进行相加处理,以得到间接光光照值,或者将直接将间接光漫反射光照值和间接光镜面反射光照值进行加权处理,以得到间接光光照值。
304,根据间接光光照值,对目标物进行风格化渲染。
得到每个像素的间接光光照值之后,根据间接光光照值,对目标物进行渲染,以实现风格化渲染,在该种情况下,只涉及目标物的间接光光照的情况。
在一情况下,除了确定该目标物的间接光光照所对应的间接光光照值之外,还需要确定目标物的漫反射光照值和/或目标物的镜面反射光照值,并根据间接光光照值、和/或漫反射光照值、和/或目标物的镜面反射光照值,来对目标物进行风格化渲染。
其中,确定目标物的漫反射光照值可以按照现有的任意一种方式来确定,还可以按照本申请上文中提到的任一实施例中的确定漫反射光照值的方式来确定,具体不再赘述。确定目标物的镜面反射光照值可以按照现有的任意一种方式来确定,还可以按照本申请上文中提到的任一实施例中的确定镜面反射光照值的方式来确定。
上文中的根据目标物的漫反射光照值、和/或目标物的镜面反射光照值、和/或间接光漫反射光照值、和/间接光镜面反射光照值,来对目标物进行风格化渲染时,如果涉及到多种光照值,可以将涉及到的多种光照值进行相加处理,以得到每个像素的最终光照值,也可以是将涉及到多种光照值进行加权处理,以得到每个像素的最终光照值,并根据最终光照值进行渲染,实现风格化渲染。
例如,当涉及到漫反射光照值、镜面反射光照值、间接光漫反射光照值时,可以将漫反射光照值、镜面反射光照值、间接光漫反射光照值进行相加处理,将相加处理之后得到的结果作为每个像素的最终光照值,也可以将漫反射光照值、镜面反射光照值、间接光漫反射光照值进行加权处理,将相加处理之后得到的结果作为每个像素的最终光照值,然后按照最终光照值进行渲染。
图24是本申请实施例提供的目标物的渲染方法的又一流程示意图,该方法涉及漫反射、镜面反射、间接光的漫反射、间接光的镜面反射等,该方法包括如下步骤。
401,获取目标物的模型信息和光源信息,该模型信息包括法线信息,该光源信息包括第一光源信息和间接光信息。
其中,第一光源信息用于确定漫反射光照值和镜面反射光照值,上文中实施例中用于确定漫反射光照值和镜面反射光照值的光源信息为第一光源信息,将不再重复说明。间接光信息用于确定间接光镜面反射光照值和间接光漫反射光照值。
402,根据法线信息和第一光源信息,利用预设漫反射函数,确定目标物待渲染像素中的每个像素的漫反射光照系数,并根据该漫反射光照系数和第一光源信息,确定每个像素的漫反射光照值,其中,预设漫反射函数在函数值为零处可导且倒数为零。
403,获取目标物待渲染像素中的每个像素的纹理坐标、高光颜色、阴影系数,并根据纹理坐标,生成每个像素的高光强度,根据高光强度、高光颜色、阴影系数或修正后的阴影系数、以及第一光源信息,确定每个像素的镜面反射光照值,其中,修正后的阴影系数是根据每个像素的阴影系数来进行修正处理得到的。
404,利用间接光信息和法线信息对目标物待渲染像素中的每个像素进行间接光漫反射处理得到间接光漫反射光照值,利用粗糙度和法线信息对目标物待渲染像素中的每个像素进行间接光镜面反射处理得到间接光镜面反射光照值。
上述步骤402至步骤404请参看上文对应实施例中的描述,在此不再赘述。
405,根据漫反射光照值、镜面反射光照值、间接光漫反射光照值和间接光镜面反射光照值,对目标物进行风格化渲染。
其中,可以将漫反射光照值、镜面反射光照值、间接光漫反射光照值和间接光镜面反射光照值进行相加处理,以得到每个像素的最终光照值,根据最终光照值对目标物进行渲染,以实现风格化渲染。
其中,可以将漫反射光照值、镜面反射光照值、间接光漫反射光照值和间接光镜面反射光照值进行加权处理,以得到每个像素的最终光照值,根据最终光照值对目标物进行渲染,以实现风格化渲染。
图25和图26是本申请实施例提供的目标物的渲染方法的简易流程示意图,其中,图25中的漫反射处理部分中,为不同通道设置了不同衰减系数,但是镜面反射处理部分中,使用的是标准PBR渲染管线中的镜面反射处理的流程,在间接光漫反射处理和间接光镜面反射处理中采用了本申请中改进后的处理方式,图26的漫反射处理部分,设置的是统一的衰减系数,但在镜面反射处理部分中,对标准PBR渲染管线中的镜面反射处理进行了改进,在间接光漫反射处理和间接光镜面反射处理中采用了本申请中改进后的处理方式,具体请结合前文中描述的部分一起来理解。
上述方法实施例中对标注PBR渲染管线中的漫反射光照、镜面反射光照、间接光漫反射光照、间接光镜面反射光照都进行了改进,以适用于风格化渲染,不仅可以实现光影互动,同时提高风格化渲染的效率。
上述所有的技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
为便于更好的实施本申请实施例的目标物的渲染方法,本申请实施例还提供一种目标物的渲染装置。请参阅图27,图27为本申请实施例提供的目标物的渲染装置的结构示意图。该目标物的渲染装置500可以包括第一获取模块501,第一漫反射模块502,以及第一渲染模块503。
第一获取模块501,用于获取目标物的模型信息和光源信息,所述模型信息包括法线信息。
第一漫反射模块502,用于根据所述法线信息和所述光源信息,利用预设漫反射函数,确定目标物待渲染像素中的每个像素的漫反射光照系数,所述预设漫反射函数在函数值为零处可导且倒数为零;根据所述漫反射光照系数和所述光源信息,确定每个像素的漫反射光照值。
其中,第一漫反射模块502包括漫反射系数确定模块和漫反射光照值确定模块。其中,漫反射系数确定模块,用于根据所述法线信息和所述光源信息,利用预设漫反射函数,确定目标物待渲染像素中的每个像素的漫反射光照系数,所述预设漫反射函数在函数值为零处可导且倒数为零。漫反射光照值确定模块,用于根据所述漫反射光照系数和所述光源信息,确定每个像素的漫反射光照值。
在一实施例中,漫反射系数确定模块,用于对于R通道、G通道和B通道中的每个通道,获取预先设置的不同的衰减系数;根据所述法线信息、所述光源信息和所设置的不同的衰减系数,利用所述预设漫反射函数,确定待渲染像素中的每个像素分别在R通道、G通道和B通道的通道漫反射光照系数;将所述R通道、G通道和B通道的通道漫反射光照系数,确定为待渲染像素中的每个像素的漫反射光照系数。
在一实施例中,所述光源信息包括光源的透射比例,漫反射系数确定模块,还用于当所述透射比例为零时,设置每个像素的R通道、G通道和B通道中的每个通道的衰减系数为默认衰减系数;当所述透射比例为1时,设置每个像素的R通道、G通道和B通道中的每个通道的衰减系数为预先设置的衰减系数;当所述透射比例在0到1之间时,设置R通道、G通道和B通道中的每个通道的衰减系数为插值衰减系数,所述插值衰减系数是对所述默认衰减系数和预先设置的衰减系数进行插值处理得到的衰减系数。
在一实施例中,在确定待渲染像素中的每个像素的漫反射光照系数之后,漫反射系数确定模块,还用于对待渲染像素中的每个像素的阴影系数进行修正处理,以得到修正后的阴影系数;根据每个像素的所述漫反射光照系数和所述修正后的阴影系数确定每个像素最终的漫反射光照系数。
第一渲染模块503,根据所述漫反射光照值,对所述目标物进行风格化渲染。
在一实施例中,如图27所示,所述目标物的渲染装置500还可以包括第一镜面反射模块504,第一镜面反射模块504,用于利用基于物理的渲染管线中的方式确定待渲染像素中的每个像素的镜面反射光照系数;根据所述镜面反射光照系数、阴影系数或修正后的阴影系数、以及所述光源信息,确定每个像素的镜面反射光照值,其中,所述修正后的阴影系数是根据每个像素的所述阴影系数来进行修正处理得到的;或者,根据所述目标物待渲染像素中的每个像素的纹理坐标,生成待渲染像素中的每个像素的高光强度;根据所述高光强度、高光颜色、修正后的阴影系数、以及所述光源信息,确定每个像素的镜面反射光照值。对应地,第一渲染模块503,用于根据所述漫反射光照值和所述镜面反射光照值,对所述目标物进行风格化渲染。
在一实施例中,如图27所示,所述目标物的渲染装置500还包括第一间接光模块505,第一间接光模块505,用于利用所述间接光信息和法线信息对目标物待渲染像素中的每个像素进行间接光漫反射处理得到间接光漫反射光照值,和/或利用粗糙度和法线信息对目标物待渲染像素中的每个像素进行间接光镜面反射处理得到间接光镜面反射光照值,以将所述间接光漫反射处理和所述间接光镜面反射处理进行解耦;根据所述间接光漫反射光照值和/或所述间接光镜面反射光照值,确定目标物待渲染像素中的的间接光光照值。对应地,第一渲染模块503,用于根据所述漫反射光照值和所述间接光光照值,对所述目标物进行风格化渲染;或者,根据所述漫反射光照值、所述镜面反射光照值和所述间接光漫反射光照值和/或所述间接光镜面反射光照值,对所述目标物进行风格化渲染。
在一实施例中,如图28所示,为本申请实施例提供的目标物的渲染装置的一结构示意图。该目标物的渲染装置600可以包括第二获取模块601,第二镜面反射模块602,以及第二渲染模块603。
第二获取模块601,用于获取目标物的模型信息和光源信息,所述模型信息包括法线信息;并获取目标物待渲染像素中的每个像素的纹理坐标、阴影系数和高光颜色。
第二镜面反射模块602,用于据所述目标物的所述纹理坐标,生成待渲染像素中的每个像素的高光强度;根据所述高光强度、所述高光颜色、所述阴影系数或修正后的阴影系数、以及所述光源信息,确定每个像素的镜面反射光照值,其中,所述修正后的阴影系数是根据每个像素的所述阴影系数来进行修正处理得到的。
在一实施例中,第二镜面反射模块602,包括高光强度确定模块和镜面反射光照值确定模块,其中,高光强度确定模块,用于根据所述目标物的所述纹理坐标,生成待渲染像素中的每个像素的高光强度,镜面反射光照值确定模块,用于根据所述高光强度、所述高光颜色、所述阴影系数或修正后的阴影系数、以及所述光源信息,确定每个像素的镜面反射光照值,其中,所述修正后的阴影系数是根据每个像素的所述阴影系数来进行修正处理得到的。
在一实施例中,高光强度确定模块,具体用于根据所述纹理坐标,确定待渲染像素中的每个像素的高光系数;根据所述高光系数和预设的高光强度值,生成待渲染像素中的每个像素的高光强度。
在一实施例中,所述目标物包括第一目标物,所述高光强度确定模块,在执行所述根据所述纹理坐标,确定待渲染像素中的每个像素的高光系数的步骤时,具体执行:获取所述第一目标物的高光纹理贴图;根据所述纹理坐标、所述第一目标物的模型信息中的法线信息与虚拟摄像机的位置关系,确定待渲染像素中的每个像素的采样纹理坐标;根据所述采样纹理坐标采样所述高光纹理贴图,以生成待渲染像素中的每个像素的高光系数。
在一实施例中,所述目标物包括第二目标物,所述高光强度确定模块,在执行所述根据所述纹理坐标,确定待渲染像素中的每个像素的高光系数的步骤时,具体执行:确定所述第二目标物的预设纹理坐标,所述预设纹理坐标是将所述第二目标物所对应的面片的纹理坐标展开成沿着V轴坐标方向竖直排列后得到的纹理坐标;获取预先构建的预设函数,所述预设函数中包括高光位置偏移系数和高光粗细系数,所述预设函数的最大值可控,所述预设函数的自变量范围可控,所述最大值在所述自变量范围内的位置可控;设置所述高光位置偏移系数对应的高光位置偏移值,和所述高光粗细系数对应的高光粗细值;根据所述预设纹理坐标、所述高光位置偏移值、所述高光粗细值,利用所述预设函数,生成所述第二目标物待渲染像素中的每个像素的高光系数。
在一实施例中,所述目标物还包括第三目标物,所述高光强度确定模块,在执行所述根据所述纹理坐标,确定待渲染像素中的每个像素的高光系数的步骤时,具体执行:获取所述第三目标物的高光纹理贴图;根据第三目标物待渲染像素中的每个像素的所述纹理坐标采样所述高光纹理贴图,以得到新的纹理坐标;获取预先构建的预设函数,所述预设函数中包括高光位置偏移系数和高光粗细系数,所述预设函数的最大值可控,所述预设函数的自变量范围可控,所述最大值在所述自变量范围内的位置可控;设置所述高光位置偏移系数对应的高光位置偏移值,和所述高光粗细系数对应的高光粗细值;根据所述新的纹理坐标、所述高光位置偏移值、所述高光粗细值,利用所述预设函数,生成所述第三目标物待渲染像素中的每个像素的高光系数。
第二渲染模块603,用于根据所述镜面反射光照值,对所述目标物进行风格化渲染。
在一实施例中,所述目标物的渲染装置600还可以包括第二间接光模块604(与第一间接光模块相同),所述第二间接光模块,用于利用所述间接光信息和法线信息对目标物待渲染像素中的每个像素进行间接光漫反射处理得到间接光漫反射光照值,和/或利用粗糙度和法线信息对目标物待渲染像素中的每个像素进行间接光镜面反射处理得到间接光镜面反射光照值,以将所述间接光漫反射处理和所述间接光镜面反射处理进行解耦;根据所述间接光漫反射光照值和/或所述间接光镜面反射光照值,确定目标物待渲染像素中的每个像素的间接光光照值。对应地,第二渲染模块603,还用于根据所述镜面反射光照值和所述间接光光照值,对所述目标物进行风格化渲染。
在一实施例中,所述目标物的渲染装置600还可以包括第二漫反射模块(与第一漫反射模块相同),第二漫反射模块,用于根据所述法线信息和所述光源信息,利用预设漫反射函数,确定所述法线信息中目标物待渲染像素中的每个像素的漫反射光照系数,所述预设漫反射函数在函数值为零处可导且倒数为零;根据所述漫反射光照系数和所述光源信息,确定每个像素的漫反射光照值。
在一实施例中,如图29所示,为本申请实施例提供的目标物的渲染装置的一结构示意图。该目标物的渲染装置700可以包括第三获取模块701,第三间接光模块702,以及第三渲染模块703。
第三获取模块701,用于获取目标物的模型信息和光源信息,所述模型信息包括法线信息,所述光源信息包括间接光信息。
第三间接光模块702,用于利用所述间接光信息和法线信息对所述目标物待渲染像素中的每个像素进行间接光漫反射处理得到间接光漫反射光照值,和/或利用粗糙度和法线信息对目标物的待渲染像素中的每个像素进行间接光镜面反射处理得到间接光镜面反射光照值,以将所述间接光漫反射处理和所述间接光镜面反射处理进行解耦;根据所述间接光漫反射光照值和/或间接光镜面反射光照值,确定目标物待渲染像素中的每个像素的间接光光照值。该第三间接光模块702与第一间接光模块相同。
在一实施例中,第三间接光模块702,包括:间接光漫反射模块、间接光镜面反射模块和间接光光照值确定模块。其中,间接光漫反射模块,用于利用所述间接光信息和法线信息对所述目标物待渲染像素中的每个像素进行间接光漫反射处理得到间接光漫反射光照值。间接光镜面反射模块,用于利用粗糙度和法线信息对目标物待渲染像素中的每个像素进行间接光镜面反射处理得到间接光镜面反射光照值。间接光光照值确定模块,用于根据所述间接光漫反射光照值和/或间接光镜面反射光照值,确定目标物待渲染像素中的每个像素的间接光光照值。
在一实施例中,所述间接光信息包括间接光颜色和间接光强度,间接光漫反射模块,具体用于设置空间轴向,并设置沿着所述空间轴向的多个间接光颜色和多个间接光强度;根据所述空间轴向、所述法线信息、多个间接光颜色和多个间接光强度,确定所述目标物待渲染像素中的每个像素的间接光漫反射值;根据所述间接光漫反射值、每个像素的固有色和间接光遮蔽强度确定每个像素的间接光漫反射光照值。
在一实施例中,间接光镜面反射模块,具体用于根据法线信息和粗糙度确定目标物待渲染像素中的每个像素的间接光镜面反射值;获取所述目标物的每个像素的反射颜色;根据所述间接光镜面反射值、所述目标物的反射颜色和间接光遮蔽强度,确定每个像素的间接光镜面反射光照值。
第三渲染模块703,用于根据所述每个像素的间接光光照值,对所述目标物进行风格化渲染。
在一实施例中,该目标物的渲染装置700还可以包括第三漫反射模块,该第三漫反射模块与第一漫反射模块一致,在此不再赘述。
在一实施例中,该目标物的渲染装置700还可以包括第三镜面反射模块,该第三镜面反射模块与第一镜面反射模块一致,在此不再赘述。
上述所有的技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
相应的,本申请实施例还提供一种计算机设备,该计算机设备可以为终端或者服务器。如图30所示,图30为本申请实施例提供的计算机设备的结构示意图。该计算机设备800包括有一个或者一个以上处理核心的处理器801、有一个或一个以上计算机可读存储介质的存储器802及存储在存储器802上并可在处理器上运行的计算机程序。其中,处理器801与存储器802电性连接。
处理器801是计算机设备800的控制中心,利用各种接口和线路连接整个计算机设备800的各个部分,通过运行或加载存储在存储器802内的软件程序(计算机程序)和/或模块,以及调用存储在存储器802内的数据,执行计算机设备800的各种功能和处理数据,从而对计算机设备800进行整体监控。
在本申请实施例中,计算机设备800中的处理器801会按照如下的步骤,将一个或一个以上的应用程序/计算机程序的进程对应的指令加载到存储器802中,并由处理器801来运行存储在存储器802中的应用程序/计算机程序,从而实现各种功能,例如如下所示:
获取目标物的模型信息和光源信息,所述模型信息包括法线信息;根据所述法线信息和所述光源信息,利用预设漫反射函数,确定目标物待渲染像素中的每个像素的漫反射光照系数,所述预设漫反射函数在函数值为零处可导且倒数为零;根据所述漫反射光照系数和所述光源信息,确定每个像素的漫反射光照值;根据所述漫反射光照值,对所述目标物进行风格化渲染;
或者,
获取目标物的模型信息和光源信息,所述模型信息包括法线信息;获取所述目标物待渲染像素中的每个像素的纹理坐标、阴影系数和高光颜色,并根据所述目标物的所述纹理坐标,生成待渲染像素中的每个像素的高光强度;根据所述高光强度、所述高光颜色、所述阴影系数或修正后的阴影系数、以及所述光源信息,确定每个像素的镜面反射光照值,其中,所述修正后的阴影系数是根据每个像素的所述阴影系数来进行修正处理得到的;根据所述镜面反射光照值,对所述目标物进行风格化渲染;
或者,
获取目标物的模型信息和光源信息,所述模型信息包括法线信息,所述光源信息包括间接光信息;利用所述间接光信息和法线信息对所述目标物待渲染像素中的每个像素进行间接光漫反射处理得到间接光漫反射光照值,和/或利用粗糙度和法线信息对所述目标物的待渲染像素中的每个像素进行间接光镜面反射处理得到间接光镜面反射光照值,以将所述间接光漫反射处理和所述间接光镜面反射处理进行解耦;根据所述间接光漫反射光照值和/或间接光镜面反射光照值,确定所述目标物的待渲染像素中的每个像素的间接光光照值;根据所述间接光光照值,对所述目标物进行风格化渲染。
处理器可以执行上述任一方法实施例中的步骤/操作,具体请参看上文中的方法实施例中的描述,在此不再赘述,以上各个操作的具体实施和所能达到的有益效果可参见前面的实施例,在此不再赘述。
可选的,如图30所示,计算机设备800还包括:触控显示屏803、射频电路804、音频电路805、输入单元806以及电源807。其中,处理器801分别与触控显示屏803、射频电路804、音频电路805、输入单元806以及电源807电性连接。本领域技术人员可以理解,图30中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
触控显示屏803可用于显示图形用户界面以及接收用户作用于图形用户界面产生的操作指令。触控显示屏803可以包括显示面板和触控面板。其中,显示面板可用于显示由用户输入的信息或提供给用户的信息以及计算机设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-EmittingDiode)等形式来配置显示面板。触控面板可用于收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并生成相应的操作指令,且操作指令执行对应程序。触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理器801以确定触摸事件的类型,随后处理器801根据触摸事件的类型在显示面板上提供相应的视觉输出。在本申请实施例中,可以将触控面板与显示面板集成到触控显示屏803而实现输入和输出功能。但是在某些实施例中,触控面板与触控面板可以作为两个独立的部件来实现输入和输出功能。即触控显示屏803也可以作为输入单元806的一部分实现输入功能。
在本申请实施例中,该触控显示屏803用于呈现图形用户界面以及接收用户作用于图形用户界面产生的操作指令。
射频电路804可用于收发射频信号,以通过无线通信与网络设备或其他计算机设备建立无线通讯,与网络设备或其他计算机设备之间收发信号。
音频电路805可以用于通过扬声器、传声器提供用户与计算机设备之间的音频接口。音频电路805可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路805接收后转换为音频数据,再将音频数据输出处理器801处理后,经射频电路804以发送给比如另一计算机设备,或者将音频数据输出至存储器802以便进一步处理。音频电路805还可能包括耳塞插孔,以提供外设耳机与计算机设备的通信。
输入单元806可用于接收输入的数字、字符信息或用户特征信息(例如指纹、虹膜、面部信息等),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
电源807用于给计算机设备800的各个部件供电。可选的,电源807可以通过电源管理***与处理器801逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。电源807还可以包括一个或一个以上的直流或交流电源、再充电***、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管图30中未示出,计算机设备800还可以包括摄像头、传感器、无线保真模块、蓝牙模块等,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条计算机程序/指令,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种实施例中的目标物的渲染方法中的步骤。例如,该计算机程序可以执行如下步骤:
获取目标物的模型信息和光源信息,所述模型信息包括法线信息;根据所述法线信息和所述光源信息,利用预设漫反射函数,确定目标物待渲染像素中的每个像素的漫反射光照系数,所述预设漫反射函数在函数值为零处可导且倒数为零;根据所述漫反射光照系数和所述光源信息,确定每个像素的漫反射光照值;根据所述漫反射光照值,对所述目标物进行风格化渲染;
或者,
获取目标物的模型信息和光源信息,所述模型信息包括法线信息;获取所述目标物待渲染像素中的每个像素的纹理坐标、阴影系数和高光颜色,并根据所述目标物的所述纹理坐标,生成待渲染像素中的每个像素的高光强度;根据所述高光强度、所述高光颜色、所述阴影系数或修正后的阴影系数、以及所述光源信息,确定每个像素的镜面反射光照值,其中,所述修正后的阴影系数是根据每个像素的所述阴影系数来进行修正处理得到的;根据所述镜面反射光照值,对所述目标物进行风格化渲染;
或者,
获取目标物的模型信息和光源信息,所述模型信息包括法线信息,所述光源信息包括间接光信息;利用所述间接光信息和法线信息对所述目标物待渲染像素中的每个像素进行间接光漫反射处理得到间接光漫反射光照值,和/或利用粗糙度和法线信息对所述目标物的待渲染像素中的每个像素进行间接光镜面反射处理得到间接光镜面反射光照值,以将所述间接光漫反射处理和所述间接光镜面反射处理进行解耦;根据所述间接光漫反射光照值和/或间接光镜面反射光照值,确定所述目标物的待渲染像素中的每个像素的间接光光照值;根据所述间接光光照值,对所述目标物进行风格化渲染。
以上各个操作的具体实施和所能达到的有益效果可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种目标物的渲染方法中的步骤,因此,可以实现本申请实施例所提供的任一种目标物的渲染方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种目标物的渲染方法、装置、存储介质及计算机设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (29)
1.一种目标物的渲染方法,其特征在于,包括:
获取目标物的模型信息和光源信息,所述模型信息包括法线信息;
根据所述法线信息和所述光源信息,利用预设漫反射函数,确定目标物待渲染像素中的每个像素的漫反射光照系数,所述预设漫反射函数在函数值为零处可导且倒数为零;
根据所述漫反射光照系数和所述光源信息,确定每个像素的漫反射光照值;
根据所述漫反射光照值,对所述目标物进行风格化渲染。
2.根据权利要求1所述的方法,其特征在于,所述预设漫反射函数中包括漫反射的衰减系数,每个像素包括R通道、G通道和B通道,所述根据所述法线信息和所述光源信息,利用预设漫反射函数,确定目标物待渲染像素中的每个像素的漫反射光照系数的步骤,包括:
对于R通道、G通道和B通道中的每个通道,获取预先设置的不同的衰减系数;
根据所述法线信息、所述光源信息和所设置的不同的衰减系数,利用所述预设漫反射函数,确定待渲染像素中的每个像素分别在R通道、G通道和B通道的通道漫反射光照系数;
将所述R通道、G通道和B通道的通道漫反射光照系数,确定为待渲染像素中每个像素的漫反射光照系数。
3.根据权利要求2所述的方法,其特征在于,所述对于R通道、G通道和B通道中的每个通道,获取预先设置的不同的衰减系数的步骤,包括:对于不同像素的不同通道,获取预先设置的不同的衰减系数。
4.根据权利要求2所述的方法,其特征在于,所述光源信息包括光源的透射比例,所述方法还包括:
当所述透射比例为零时,设置每个像素的R通道、G通道和B通道中的每个通道的衰减系数为默认衰减系数;
当所述透射比例为1时,设置每个像素的R通道、G通道和B通道中的每个通道的衰减系数为预先设置的衰减系数;
当所述透射比例在0到1之间时,设置R通道、G通道和B通道中的每个通道的衰减系数为插值衰减系数,所述插值衰减系数是对所述默认衰减系数和预先设置的衰减系数进行插值处理得到的衰减系数。
5.根据权利要求2所述的方法,其特征在于,在确定待渲染像素中的每个像素的漫反射光照系数的步骤之后,还包括:
对待渲染像素中的每个像素的阴影系数进行修正处理,以得到修正后的阴影系数;
根据每个像素的所述漫反射光照系数和所述修正后的阴影系数确定每个像素最终的漫反射光照系数。
6.根据权利要求5所述的方法,其特征在于,所述光源信息包括光照方向,所述对所述法线信息中的每个像素的阴影系数进行修正处理,以得到修正后的阴影系数的步骤,包括:
获取每个像素的阴影系数,以及当所述法线信息与所述光照方向垂直时所对应的第一漫反射光照系数和最大阴影系数;
利用所述第一漫反射光照系数和所述最大阴影系数,对所述阴影系数进行修正处理,以得到修正后的阴影系数。
7.根据权利要求1所述的方法,其特征在于,在所述根据所述漫反射光照值,对所述目标物进行风格化渲染的步骤之前,还包括:
利用基于物理的渲染管线中的方式确定待渲染像素中每个像素的镜面反射光照系数;
根据所述镜面反射光照系数、阴影系数或修正后的阴影系数、以及所述光源信息,确定每个像素的镜面反射光照值,其中,所述修正后的阴影系数是根据每个像素的所述阴影系数来进行修正处理得到的;
或者,
根据所述目标物待渲染像素中的每个像素的纹理坐标,生成待渲染像素中的每个像素的高光强度;
根据所述高光强度、高光颜色、修正后的阴影系数、以及所述光源信息,确定每个像素的镜面反射光照值;
所述根据所述漫反射光照值,对所述目标物进行风格化渲染的步骤,包括:
根据所述漫反射光照值和所述镜面反射光照值,对所述目标物进行风格化渲染。
8.根据权利要求1或7所述的方法,其特征在于,所述光源信息还包括间接光信息,在所述根据所述漫反射光照值,对所述目标物进行风格化渲染的步骤之前,还包括:
利用所述间接光信息和法线信息对所述目标物待渲染像素中的每个像素进行间接光漫反射处理得到间接光漫反射光照值,和/或利用粗糙度和法线信息对所述目标物待渲染像素中的每个像素进行间接光镜面反射处理得到间接光镜面反射光照值,以将所述间接光漫反射处理和所述间接光镜面反射处理进行解耦;
根据所述间接光漫反射光照值和/或所述间接光镜面反射光照值,确定所述目标物待渲染像素中的每个像素的间接光光照值。
9.一种目标物的渲染方法,其特征在于,包括:
获取目标物的模型信息和光源信息,所述模型信息包括法线信息;
获取所述目标物待渲染像素中的每个像素的纹理坐标、阴影系数和高光颜色,并根据所述目标物的所述纹理坐标,生成待渲染像素中的每个像素的高光强度;
根据所述高光强度、所述高光颜色、所述阴影系数或修正后的阴影系数、以及所述光源信息,确定每个像素的镜面反射光照值,其中,所述修正后的阴影系数是根据每个像素的所述阴影系数来进行修正处理得到的;
根据所述镜面反射光照值,对所述目标物进行风格化渲染。
10.根据权利要求9所述的方法,其特征在于,所述根据所述目标物的所述纹理坐标,生成待渲染像素中的每个像素的高光强度的步骤,包括:
根据所述纹理坐标,确定待渲染像素中的每个像素的高光系数;
根据所述高光系数和预设的高光强度值,生成待渲染像素中的每个像素的高光强度。
11.根据权利要求10所述的方法,其特征在于,所述目标物包括第一目标物,所述根据所述纹理坐标,确定待渲染像素中的每个像素的高光系数的步骤,包括:
获取所述第一目标物的高光纹理贴图;
根据所述纹理坐标、所述第一目标物的模型信息中的法线信息与虚拟摄像机的位置关系,确定待渲染像素中的每个像素的采样纹理坐标;
根据所述采样纹理坐标采样所述高光纹理贴图,以生成待渲染像素中的每个像素的高光系数。
12.根据权利要求11所述的方法,其特征在于,所述第一目标物为虚拟眼球,所述根据所述纹理坐标、所述第一目标物的模型信息中的法线信息与虚拟摄像机的位置关系,确定待渲染像素中的每个像素的采样纹理坐标的步骤,包括:
在虚拟摄像机正视所述虚拟眼球时,获取所述虚拟眼球所在平面上的竖直方向上的竖直向量和水平方向上的水平向量;
根据所述竖直向量、所述水平向量和所述虚拟摄像机的朝向向量,确定所述虚拟摄像机与所述虚拟眼球之间的偏移量;
根据所述纹理坐标、所述偏移量、高光点随视线的运动速度和高光点的缩放数据,确定第一目标物待渲染像素中的每个像素的采样纹理坐标。
13.根据权利要求12所述的方法,其特征在于,所述获取所述虚拟眼球所在平面上的竖直方向上的竖直向量和水平方向上的水平向量的步骤,包括:
获取与虚拟眼球绑定的骨骼的骨骼向量;
根据所述骨骼向量确定所述虚拟眼球所在平面上的竖直方向上的竖直向量和水平方向上的水平向量。
14.根据权利要求12所述的方法,其特征在于,所述获取所述虚拟眼球所在平面上的竖直方向上的竖直向量和水平方向上的水平向量的步骤,包括:
复制所述虚拟眼球的模型信息得到两个虚拟眼球的模型;
将两个虚拟眼球的模型的法线向量设置为所述虚拟眼球所在平面上的竖直方向上的竖直向量和水平方向上的水平向量。
15.根据权利要求10所述的方法,其特征在于,所述目标物包括第二目标物,所述根据所述纹理坐标,确定待渲染像素中的每个像素的高光系数的步骤,包括:
确定所述第二目标物的预设纹理坐标,所述预设纹理坐标是将所述第二目标物所对应的面片的纹理坐标展开成沿着V轴坐标方向竖直排列后得到的纹理坐标;
获取预先构建的预设函数,所述预设函数中包括高光位置偏移系数和高光粗细系数,所述预设函数的最大值可控,所述预设函数的自变量范围可控,所述最大值在所述自变量范围内的位置可控;
设置所述高光位置偏移系数对应的高光位置偏移值,和所述高光粗细系数对应的高光粗细值;
根据所述预设纹理坐标、所述高光位置偏移值、所述高光粗细值,利用所述预设函数,生成所述第二目标物待渲染像素中的每个像素的高光系数。
16.根据权利要求15所述的方法,其特征在于,设置高光粗细系数对应的高光粗细值,包括:
让所述预设函数中的高光粗细系数随着预设纹理坐标中的U轴方向的u值变化而发生变化,以得到变化的高光粗细值;
所述根据所述预设纹理坐标、所述高光位置偏移值、所述高光粗细值,利用所述预设函数,生成所述第二目标物待渲染像素中的每个像素的高光系数的步骤,包括:根据预设纹理坐标中V轴方向的v值、所述高光位置偏移值、所述变化的高光粗细值,利用所述预设函数,生成所述第二目标物待渲染像素中的每个像素的高光系数。
17.根据权利要求16所述的方法,其特征在于,
在所述设置所述高光位置偏移系数对应的高光位置偏移值的步骤之后,还包括:利用第一噪声函数对所述高光位置偏移值进行噪声处理,以得到最终的高光位置偏移值;
和/或
在所述得到变化的高光粗细值之后,还包括:利用第二噪声函数对所述变化的高光粗细值进行噪声处理,以得到最终的高光粗细值。
18.根据权利要求10所述的方法,其特征在于,所述目标物还包括第三目标物,所述根据所述纹理坐标,确定待渲染像素中的每个像素的高光系数的步骤,包括:
获取所述第三目标物的高光纹理贴图;
根据所述第三目标物待渲染像素中的每个像素的所述纹理坐标采样所述高光纹理贴图,以得到新的纹理坐标;
获取预先构建的预设函数,所述预设函数中包括高光位置偏移系数和高光粗细系数,所述预设函数的最大值可控,所述预设函数的自变量范围可控,所述最大值在所述自变量范围内的位置可控;
设置所述高光位置偏移系数对应的高光位置偏移值,和所述高光粗细系数对应的高光粗细值;
根据所述新的纹理坐标、所述高光位置偏移值、所述高光粗细值,利用所述预设函数,生成所述第三目标物待渲染像素中的每个像素的高光系数。
19.根据权利要求9所述的方法,其特征在于,所述光源信息还包括间接光信息,在所述根据所述镜面反射光照值,对所述目标物进行风格化渲染的步骤之前,还包括:
利用所述间接光信息和法线信息对所述目标物待渲染像素中的每个像素进行间接光漫反射处理得到间接光漫反射光照值,和/或利用粗糙度和法线信息对所述目标物待渲染像素中的每个像素进行间接光镜面反射处理得到间接光镜面反射光照值,以将所述间接光漫反射处理和所述间接光镜面反射处理进行解耦;
根据所述间接光漫反射光照值和/或所述间接光镜面反射光照值,确定所述目标物待渲染像素中的每个像素的间接光光照值;
所述根据所述镜面反射光照值,对所述目标物进行风格化渲染的步骤,包括:根据所述镜面反射光照值和所述间接光光照值,对所述目标物进行风格化渲染。
20.一种目标物的渲染方法,其特征在于,包括:
获取目标物的模型信息和光源信息,所述模型信息包括法线信息,所述光源信息包括间接光信息;
利用所述间接光信息和法线信息对所述目标物待渲染像素中的每个像素进行间接光漫反射处理得到间接光漫反射光照值,和/或利用粗糙度和法线信息对所述目标物的待渲染像素中的每个像素进行间接光镜面反射处理得到间接光镜面反射光照值,以将所述间接光漫反射处理和所述间接光镜面反射处理进行解耦;
根据所述间接光漫反射光照值和/或间接光镜面反射光照值,确定所述目标物的待渲染像素中的每个像素的间接光光照值;
根据所述间接光光照值,对所述目标物进行风格化渲染。
21.根据权利要求20所述的方法,其特征在于,所述间接光信息包括间接光颜色和间接光强度,所述利用所述间接光信息和法线信息对所述目标物待渲染像素中的每个像素进行间接光漫反射处理得到间接光漫反射光照值的步骤,包括:
设置空间轴向,并设置沿着所述空间轴向的多个间接光颜色和多个间接光强度;
根据所述空间轴向、所述法线信息、多个间接光颜色和多个间接光强度,确定所述目标物待渲染像素中的每个像素的间接光漫反射值;
根据所述间接光漫反射值、所述目标物的每个像素的固有色和间接光遮蔽强度确定每个像素的间接光漫反射光照值。
22.根据权利要求21所述的方法,其特征在于,所述根据所述空间轴向、所述法线信息、多个间接光颜色和多个间接光强度,确定所述目标物待渲染像素中的每个像素的间接光漫反射值的步骤,包括:
确定所述法线信息和所述空间轴向之间的关系;
根据所述关系,对多个间接光颜色和多个间接光强度进行插值处理,以得到所述目标物待渲染像素中的每个像素的间接光漫反射值。
23.根据权利要求20所述的方法,其特征在于,所述利用粗糙度和法线信息对所述目标物的待渲染像素中的每个像素进行间接光镜面反射处理得到间接光镜面反射光照值的步骤,包括:
根据法线信息和粗糙度确定所述目标物的待渲染像素中的每个像素的间接光镜面反射值;
获取所述目标物的每个像素的反射颜色;
根据所述间接光镜面反射值、所述目标物的反射颜色和间接光遮蔽强度,确定所述目标物的待渲染像素中的每个像素的间接光镜面反射光照值。
24.根据权利要求23所述的方法,其特征在于,所述获取所述目标物的每个像素的反射颜色的步骤,包括:
根据所述粗糙度和所述目标物待渲染像素中的每个像素的固有色来确定所述目标物的每个像素的反射颜色。
25.一种目标物的渲染装置,其特征在于,包括:
第一获取模块,用于获取目标物的模型信息和光源信息,所述模型信息包括法线信息;
第一漫反射模块,用于根据所述法线信息和所述光源信息,利用预设漫反射函数,确定目标物待渲染像素中的每个像素的漫反射光照系数;并根据所述漫反射光照系数和所述光源信息,确定每个像素的漫反射光照值;其中,所述预设漫反射函数在函数值为零处可导且倒数为零;
第一渲染模块,用于根据所述漫反射光照值,对所述目标物进行风格化渲染。
26.一种目标物的渲染装置,其特征在于,包括:
第二获取模块,用于获取目标物的模型信息和光源信息,所述模型信息包括法线信息;并获取所述目标物待渲染像素中的每个像素的纹理坐标、阴影系数和高光颜色;
第二镜面反射模块,用于据所述目标物的所述纹理坐标,生成待渲染像素中的每个像素的高光强度;根据所述高光强度、所述高光颜色、所述阴影系数或修正后的阴影系数、以及所述光源信息,确定每个像素的镜面反射光照值,其中,所述修正后的阴影系数是根据每个像素的所述阴影系数来进行修正处理得到的;
第二渲染模块,用于根据所述镜面反射光照值,对所述目标物进行风格化渲染。
27.一种目标物的渲染装置,其特征在于,包括:
第三获取模块,用于获取目标物的模型信息和光源信息,所述模型信息包括法线信息,所述光源信息包括间接光信息;
第三间接光模块,用于利用所述间接光信息和法线信息对所述目标物待渲染像素中的每个像素进行间接光漫反射处理得到间接光漫反射光照值,和/或利用粗糙度和法线信息对所述目标物的待渲染像素中的每个像素进行间接光镜面反射处理得到间接光镜面反射光照值,以将所述间接光漫反射处理和所述间接光镜面反射处理进行解耦;根据所述间接光漫反射光照值和/或间接光镜面反射光照值,确定所述目标物的待渲染像素中的每个像素的间接光光照值;
第三渲染模块,用于根据所述间接光光照值,对所述目标物进行风格化渲染。
28.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于处理器进行加载,以执行如权利要求1-27任一项所述的目标物的渲染方法中的步骤。
29.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,执行如权利要求1-27任一项所述的目标物的渲染方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211527177.8A CN116363288A (zh) | 2022-11-30 | 2022-11-30 | 目标物的渲染方法、装置、存储介质及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211527177.8A CN116363288A (zh) | 2022-11-30 | 2022-11-30 | 目标物的渲染方法、装置、存储介质及计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116363288A true CN116363288A (zh) | 2023-06-30 |
Family
ID=86940501
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211527177.8A Pending CN116363288A (zh) | 2022-11-30 | 2022-11-30 | 目标物的渲染方法、装置、存储介质及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116363288A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117437345A (zh) * | 2023-12-22 | 2024-01-23 | 山东捷瑞数字科技股份有限公司 | 基于三维引擎实现渲染纹理镜面反射效果的方法及*** |
CN117788677A (zh) * | 2023-12-29 | 2024-03-29 | 摩尔线程智能科技(上海)有限责任公司 | 全局光照确定方法、装置及存储介质 |
-
2022
- 2022-11-30 CN CN202211527177.8A patent/CN116363288A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117437345A (zh) * | 2023-12-22 | 2024-01-23 | 山东捷瑞数字科技股份有限公司 | 基于三维引擎实现渲染纹理镜面反射效果的方法及*** |
CN117437345B (zh) * | 2023-12-22 | 2024-03-19 | 山东捷瑞数字科技股份有限公司 | 基于三维引擎实现渲染纹理镜面反射效果的方法及*** |
CN117788677A (zh) * | 2023-12-29 | 2024-03-29 | 摩尔线程智能科技(上海)有限责任公司 | 全局光照确定方法、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11257286B2 (en) | Method for rendering of simulating illumination and terminal | |
WO2021129044A1 (zh) | 对象渲染方法和装置、存储介质及电子装置 | |
JP6864449B2 (ja) | イメージの明るさを調整する方法及び装置 | |
CN116363288A (zh) | 目标物的渲染方法、装置、存储介质及计算机设备 | |
CN111583379B (zh) | 虚拟模型的渲染方法、装置、存储介质与电子设备 | |
CN112116692A (zh) | 模型渲染方法、装置、设备 | |
US20230120253A1 (en) | Method and apparatus for generating virtual character, electronic device and readable storage medium | |
WO2023066121A1 (zh) | 三维模型的渲染 | |
CN112053423A (zh) | 模型渲染方法、装置、存储介质及计算机设备 | |
CN116228943B (zh) | 虚拟对象面部重建方法、面部重建网络训练方法及装置 | |
CN113240783B (zh) | 风格化渲染方法和装置、可读存储介质、电子设备 | |
CN113822981B (zh) | 一种图像渲染方法、装置、电子设备及存储介质 | |
JP2004110597A (ja) | 画像生成情報、情報記憶媒体及び画像生成装置 | |
CN113888398B (zh) | 头发渲染方法、装置及电子设备 | |
CN114581979A (zh) | 图像处理方法和装置 | |
US9626774B2 (en) | Saturation varying color space | |
CN109448123A (zh) | 模型的控制方法及装置、存储介质、电子设备 | |
CN117582661A (zh) | 虚拟模型渲染方法、装置、介质及设备 | |
US8942476B1 (en) | Saturation varying and lighting independent color color control for computer graphics | |
CN116958344A (zh) | 虚拟形象的动画生成方法、装置、计算机设备及存储介质 | |
JP2003168130A (ja) | リアルタイムで合成シーンのフォトリアルなレンダリングをプレビューするための方法 | |
JP2007328458A (ja) | 画像生成用のプログラム及び当該プログラムを記録したコンピュータ読み取り可能な記録媒体、画像処理装置、画像処理方法 | |
CN111402385B (zh) | 一种模型处理的方法及装置、电子设备、存储介质 | |
CN116112657B (zh) | 图像处理方法、装置、计算机可读存储介质及电子装置 | |
KR100900076B1 (ko) | 경계선이 자연스러운 3차원 텍스쳐 장치 및 방법 |
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 |