基于目标模型的光照渲染方法、装置、介质及设备与流程

文档序号:25590752发布日期:2021-06-22 17:07阅读:130来源:国知局
本公开涉及图像处理
技术领域
:,具体而言,涉及一种光照渲染方法、光照渲染装置、计算机可读存储介质以及电子设备。
背景技术
::近些年来,三维动画在游戏、广告、影视娱乐等行业得到广泛应用。为了提高三维动画画面的真实感,需要对动画模型进行渲染,这样可以给用户带来更强的视觉效果。随着三维动画技术的发展,对美术风格的多样化也提出了更高的要求。例如,在实时渲染领域中,可以使用sss(sub-surface-scattering,次表面散射)技术模拟材质的透光性进行风格化渲染。但是,目前常见的npr(non-photographyrendering,非真实感渲染)着色模型,不能区分金属材质和非金属材质的次表面散射效果,也即不能区分二者的风格化表现。因此,提供一种光照渲染方法以区分风格化光照中金属材质和非金属材质的风格化表现是非常必要的。需要说明的是,在上述
背景技术
:部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。技术实现要素:本公开的目的在于提供一种基于目标模型的光照渲染方法、光照渲染装置、计算机可读存储介质以及电子设备,以解决现有技术中存在的不能区分金属材质和非金属材质的次表面散射效果的问题。根据本公开的第一方面,提供一种基于目标模型的光照渲染方法,包括:获取与所述目标模型对应的目标材质的光学属性;基于所述光学属性,通过查询预设数据表确定所述目标模型中目标顶点处的第一类光照色溢;根据所述目标顶点处的法线信息和当前光源的光照信息计算所述目标顶点处的第二类光照色溢;基于所述第一类光照色溢和所述第二类光照色溢的插值结果计算所述目标顶点处的光照结果;根据所述光照结果对所述目标模型进行光照渲染。在本公开的一种示例性实施例中,所述光学属性至少包括所述目标材质的粗糙度,所述通过查询预设数据表确定目标模型中目标顶点处的第一类光照色溢,包括:基于所述目标材质的粗糙度,根据所述目标顶点处的法线信息和当前光源的光照信息,并结合当前视线的方向信息计算所述目标顶点处的第一类光照强度;根据所述第一类光照强度查询所述预设数据表得到对应的所述第一类光照色溢。在本公开的一种示例性实施例中,所述当前光源的光照信息包括所述当前光源的方向向量和所述当前光源的光源颜色;所述根据所述目标顶点处的法线信息和当前光源的光照信息计算所述目标顶点处的第二类光照色溢,包括:对所述目标顶点处的法线方向向量和所述当前光源的方向向量进行点乘运算;根据所述点乘运算的结果查询所述预设数据表得到所述当前光源的系数;根据所述当前光源的光源颜色和所述当前光源的系数计算得到所述目标顶点处的第二类光照色溢。在本公开的一种示例性实施例中,所述光学属性至少包括所述目标材质的金属度和所述目标顶点处的第二类光照颜色,所述第二类光照颜色用于计算所述目标顶点处的光照颜色,所述方法还包括:根据所述目标材质的金属度对所述第一类光照色溢和所述第二类光照色溢进行插值计算。在本公开的一种示例性实施例中,所述基于所述第一类光照色溢和所述第二类光照色溢的插值结果计算所述目标顶点处的光照结果,包括:根据所述光学属性计算所述目标顶点处的第一类光照颜色;结合所述目标顶点处的第二类光照颜色,并根据所述第一类光照颜色和所述第一类光照色溢的插值结果计算得到所述目标顶点处的光照颜色;根据所述第二类光照色溢的插值结果计算所述目标顶点处的第二类光照强度;根据所述第二类光照强度和所述目标顶点处的光照颜色计算得到所述目标顶点处的光照结果。在本公开的一种示例性实施例中,所述根据所述第二类光照色溢的插值结果计算所述目标顶点处的第二类光照强度,包括:将所述目标顶点处的法线方向向量和所述当前光源的方向向量作点积,并截取预设范围内的向量点积值;根据截取后的向量点积值和所述第二类光照色溢的插值结果,计算得到所述目标顶点处的第二类光照强度。在本公开的一种示例性实施例中,所述根据所述光照结果对所述目标模型进行光照渲染,包括:将所述光照结果发送给渲染器进行所述目标模型的光照输出。根据本公开的第二方面,提供一种光照渲染装置,包括:光学属性获取模块,用于获取与所述目标模型对应的目标材质的光学属性;第一类光照色溢确定模块,用于基于所述光学属性,通过查询预设数据表确定目标模型中目标顶点处的第一类光照色溢;第二类光照色溢确定模块,用于根据所述目标顶点处的法线信息和当前光源的光照信息计算所述目标顶点处的第二类光照色溢;光照结果确定模块,用于基于所述第一类光照色溢和所述第二类光照色溢的插值结果计算所述目标顶点处的光照结果;模型渲染模块,用于根据所述光照结果对所述目标模型进行光照渲染。根据本公开的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的方法。根据本公开的第四方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的方法。本公开示例性实施例可以具有以下部分或全部有益效果:在本公开示例实施方式所提供的基于目标模型的光照渲染方法中,通过获取与所述目标模型对应的目标材质的光学属性;基于所述光学属性,通过查询预设数据表确定所述目标模型中目标顶点处的第一类光照色溢;根据所述目标顶点处的法线信息和当前光源的光照信息计算所述目标顶点处的第二类光照色溢;基于所述第一类光照色溢和所述第二类光照色溢的插值结果计算所述目标顶点处的光照结果;根据所述光照结果对所述目标模型进行光照渲染。一方面,通过将基于物理渲染和非真实感渲染进行结合,提出一种新的风格化光照方法。另一方面,通过使用基于物理渲染概念的材质光学属性区分中金属及非金属材质的风格化表现,可以提升目标模型中整体画面的风格化程度。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图1示出了可以应用本公开实施例的一种光照渲染方法及装置的示例性系统架构的示意图;图2示出了适于用来实现本公开实施例的电子设备的计算机系统的结构示意图;图3示意性示出了根据本公开的一个实施例的光照渲染方法的流程图;图4示意性示出了根据本公开的一个实施例的确定第一类光照色溢的流程图;图5示意性示出了根据本公开的一个实施例的确定第二类光照色溢的流程图;图6示意性示出了根据本公开的一个实施例的确定光照结果的流程图;图7a和图7b示意性示出了根据本公开的一个实施例的光照渲染的效果图;图8示意性示出了根据本公开的一个实施例的光照渲染装置的框图。具体实施方式现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。图1示出了可以应用本公开实施例的一种基于目标模型的光照渲染方法及装置的示例性应用环境的系统架构的示意图。如图1所示,系统架构100可以包括终端设备101、102、103中的一个或多个,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。终端设备101、102、103可以是具有显示屏的各种电子设备,包括但不限于台式计算机、便携式计算机、智能手机和平板电脑等等。应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。比如服务器105可以是多个服务器组成的服务器集群等。本公开实施例所提供的基于目标模型的光照渲染方法一般由服务器105执行,相应地,光照渲染装置一般设置于服务器105中。但本领域技术人员容易理解的是,所述光照渲染方法也可以由终端设备101、102、103执行,相应的,光照渲染装置也可以设置于终端设备101、102、103中,本示例性实施例中对此不做特殊限定。图2示出了适于用来实现本公开实施例的电子设备的计算机系统的结构示意图。需要说明的是,图2示出的电子设备的计算机系统200仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。如图2所示,计算机系统200包括中央处理单元(cpu)201,其可以根据存储在只读存储器(rom)202中的程序或者从存储部分208加载到随机访问存储器(ram)203中的程序而执行各种适当的动作和处理。在ram203中,还存储有系统操作所需的各种程序和数据。cpu201、rom202以及ram203通过总线204彼此相连。输入/输出(i/o)接口205也连接至总线204。以下部件连接至i/o接口205:包括键盘、鼠标等的输入部分206;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分207;包括硬盘等的存储部分208;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分209。通信部分209经由诸如因特网的网络执行通信处理。驱动器210也根据需要连接至i/o接口205。可拆卸介质211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器210上,以便于从其上读出的计算机程序根据需要被安装入存储部分208。特别地,根据本公开的实施例,下文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分209从网络上被下载和安装,和/或从可拆卸介质211被安装。在该计算机程序被中央处理单元(cpu)201执行时,执行本申请的方法和装置中限定的各种功能。作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如下述实施例中所述的方法。例如,所述的电子设备可以实现如图3至图6所示的各个步骤等。需要说明的是,本公开所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。以下对本公开实施例的技术方案进行详细阐述:近些年来,三维动画在游戏、广告、影视娱乐等行业得到广泛应用。为了提高三维动画画面的真实感,需要对动画模型进行渲染,这样可以给用户带来更强的视觉效果。随着三维动画技术的发展,对美术风格的多样化也提出了更高的要求。例如,在实时渲染领域中,可以使用sss技术模拟材质的透光性进行风格化渲染。目前常见的npr渲染中的sss技术,方案中可以使用lambert(用来描述漫反射)光照模型的计算结果作为lut(lookuptable,查找表)的输入,得到模型表面明暗交接线附近的次表面散射现象。其中,光照模型还可以是phong(冯氏光照模型,适用于光滑物体表面的光照模型)光照模型、blinn-phong(基于phong光照模型进行改进的高光光照模型)光照模型等。其中,计算上述模型中次表面散射光照效果的步骤一般如下:第一步,可以定义一束平行主光源,并设定该主光源的方向向量为l,主光源的颜色为lightcolor,以及目标模型表面每个顶点的法线方向向量为n。第二步,可以将主光源的方向向量l与当前目标模型表面顶点的法线方向向量n作点乘运算,并对背光面的结果进行截断,可以得到每个顶点对于当前主光源的漫反射亮度值。例如,可以使用saturate函数将点乘运算的结果截断在[0,1]内,即:ndotl=saturate(dot(n,l))在saturate(x)函数中,当x取值小于0时,返回值为0;当x取值大于1时,返回值为1;当x在0到1之间,则直接返回x的值。类似的,通过saturate函数也可以将颜色值规范到0~1之间。第三步,可以定义lut查找方式,例如,可以定义一个数据表,如表1所示,数值value位于0-1之间,与rgb(三原色的色彩模式)值一一对应,其中每一个rgb值对应一种颜色,如(0,1,0)为绿色,(0,0,1)为蓝色,(1,0,0)为红色,(0,0,0)为黑色。rgb色彩模式是一种颜色标准,可以通过对红(r)、绿(g)、蓝(b)三个颜色通道的变化以及相互之间的叠加得到多种颜色,且三个通道可以在0-1之间进行取值。表1value0.00.10.20.30.40.50.60.70.80.9rgb0,1,00,0,10,0,01,0,00,1,00,0,00,1,00,0,00,1,00,0,0当输入一个value值时,可以返回一个rgb值,该rgb值是由相邻两个value值的对应rgb值经过线性插值得到。因此,可以将lut查找定义为一个一元函数,即lut(value)。第四步,可以使用ndotl作为lut查找的输入,返回平行主光源的系数,并将该系数与主光源的颜色作乘法运算,就可以得到光照在目标模型明暗交接线处的光照溢出,即:lightcolormultiply=lut(ndotl)lightcolor′=lightcolor*lightcolormultiply其中,lightcolormultiply为平行主光源的系数,lightcolor为平行主光源的颜色,lightcolor′为目标模型表面某个顶点处的光照溢出。上述方案中,没有考虑目标模型的材质对目标模型光照溢出的计算结果的影响。可以理解的是,当上述光照参数相同时,对于金属材质和非金属材质的光照结果都是相同的,也就不能区分金属材质和非金属材质的次表面散射效果,即不能区分二者的风格化表现。基于上述一个或多个问题,本示例实施方式提供了一种基于目标模型的光照渲染方法,该方法可以应用于上述服务器105,也可以应用于上述终端设备101、102、103中的一个或多个,本示例性实施例中对此不做特殊限定。参考图3所示,该光照渲染方法可以包括以下步骤s310和步骤s350:步骤s310.获取与所述目标模型对应的目标材质的光学属性;步骤s320.基于所述光学属性,通过查询预设数据表确定所述目标模型中目标顶点处的第一类光照色溢;步骤s330.根据所述目标顶点处的法线信息和当前光源的光照信息计算所述目标顶点处的第二类光照色溢;步骤s340.基于所述第一类光照色溢和所述第二类光照色溢的插值结果计算所述目标顶点处的光照结果;步骤s350.根据所述光照结果对所述目标模型进行光照渲染。在本公开示例实施方式所提供的基于目标模型的光照渲染方法中,通过获取与所述目标模型对应的目标材质的光学属性;基于所述光学属性,通过查询预设数据表确定所述目标模型中目标顶点处的第一类光照色溢;根据所述目标顶点处的法线信息和当前光源的光照信息计算所述目标顶点处的第二类光照色溢;基于所述第一类光照色溢和所述第二类光照色溢的插值结果计算所述目标顶点处的光照结果;根据所述光照结果对所述目标模型进行光照渲染。一方面,通过将基于物理渲染和非真实感渲染进行结合,提出一种新的风格化光照方法。另一方面,通过使用基于物理渲染概念的材质光学属性区分中金属及非金属材质的风格化表现,可以提升目标模型中整体画面的风格化程度。下面,对于本示例实施方式的上述步骤进行更加详细的说明。在步骤s310中,获取与所述目标模型对应的目标材质的光学属性。通常对模型着色是对模型进行阴影处理,以生成逼真的图像,而渲染是在着色的基础上,在模型的表面显示出明暗色彩和光照效果,以形成更加逼真的图像。因此,经过渲染所获得的模型画面效果更具真实感和材质感。例如,可以使用光照模型进行实时渲染,如npr渲染、pbr(physicallybasedrendering,基于物理的渲染)渲染、也可以结合npr渲染和pbr渲染进行模拟渲染。其中,pbr渲染是一种基于微表面对象的渲染技术,通过光照计算,以及金属度和粗糙度来定义物体表面的光线反射情况,可以很好地表达物体的表面质感,由于pbr渲染在模拟光照反射上具有突出表现,常常被应用于各种高级游戏及影视制作中。npr渲染也称为风格化渲染,主要用来模拟艺术化的绘制风格,以呈现出手绘的效果,常见的npr渲染可以包括卡通渲染、油画渲染、像素感渲染、铅笔画、素描画、蜡笔画和水墨画等类型。光照模型(也可以称为明暗效应模型)是一种模拟物体表面的光照物理现象的数学模型,通过光照模型能够得到物体表面顶点的颜色值。其中,物体表面顶点的颜色值可以是rgb值,也可以是cmyk(四原色的色彩模式)值,还可以是lab值(结合亮度的色彩模式),本示例中优选的可以使用rgb值描述物体表面顶点的颜色值。一种示例实施方式中,可以结合npr渲染和pbr渲染对目标模型进行模拟渲染。首先,pbr渲染是一种基于物理规律模拟的渲染技术,在物理规律中,当光线照射在物体表面时,可以发生反射和漫反射,在渲染系统中对应的可以称为高光和漫反射。当光线到达物体表面时,部分光线可以沿着物体表面的垂直法线返回与入射光线相反的方向,这一现象称为高光(也可以称为镜面反射);部分光线可以将进入物体内部,在物体内部发生散射,并从物体另一边射出,这一现象称为漫反射(也可以称为次表面散射)。可以按照pbr渲染的概念定义目标模型对应的目标材质的光学属性,光学属性可以是漫反射颜色(basecolor)、金属度(metallic)、粗糙度(roughness)等。其中,当目标材质是非金属材质时,漫反射颜色表示目标模型的原始颜色,可以理解的是,高光颜色表示光源颜色;粗糙度可以衡量物体表面对光的反射的强弱;金属度可以衡量物体内部对光的散射的强弱,金属度为0时,为电解质模型;金属度为1时,为金属模型,金属模型没有漫反射,并且还具有等于原始颜色的着色入射镜面反射。在步骤s320中,基于所述光学属性,通过查询预设数据表确定所述目标模型中目标顶点处的第一类光照色溢。本示例中,定义材质光学属性后,可以通过npr光照模型计算目标模型表面顶点的颜色值,该顶点的颜色值可以由漫反射颜色和高光颜色两部分的光照效果得到,也就是计算该顶点处的光亮度大小和颜色,并转化为适合图形设备的颜色值。首先,参考图4所示,可以根据步骤s410和步骤s420计算第一类光照色溢,即高光色溢,其中,所述光学属性至少可以包括所述目标材质的粗糙度。在步骤s410中.基于所述目标材质的粗糙度,根据所述目标顶点处的法线信息和当前光源的光照信息,并结合当前视线的方向信息计算所述目标顶点处的第一类光照强度。光照模型主要考虑的是照明特性、表面特性和观察角度。照明特性可以描述可见表面被照明的情况,如光源的性质、环境光等;表面特性可以描述可见表面对入射光线的反射、折射以及可见表面的颜色等;观察角度可以描述观察者相对可见表面所在的位置。一种示例实施方式中,在直接光照下,即物体表面的点直接接收场景中光源的照明。此时,可以定义一束平行主光源,并获取该主光源的光源信息,如可以获取该主光源的方向向量l、该主光源的颜色lightcolor。也可以获取目标模型表面中目标顶点处的法线信息,法线是指始终垂直于目标模型表面的虚线,3d建模中对一个或一组平面生成的法线经运算在二维屏幕上显示物理现实中所具有的表面曲率和受光情况,以模拟模型体积感的一种手段,对应的法线信息可以包括坐标信息和法线的方向向量,本示例中可以获取法线的方向向量n。另外,还可以定义一个当前视线方向的方向向量v。可以根据该目标顶点处的法线方向向量、该主光源的方向向量以及当前视线方向的方向向量之间的关系,计算该目标顶点处的第一类光照强度,即根据:brdfspec=(d*v*f)/4.0确定该目标顶点处的高光光照强度(brdfspec)。brdfspec(bidirectionalreflectancedistributionfunction,双向反射分布函数)为高光反射项,可以描述目标模型表面的同一顶点处光线的入射分布和散射分布,不包含目标模型内部的光的散射。其中,分母为校正因子,可以对被遮挡光线进行修正,v为当前视线方向的方向向量,d为法线分布函数,假设目标模型表面每个微面元的法线向量为m,半角向量h等于主光源方向向量与平面法线方向向量的一半,即:h=normalize(l+v)法线分布函数d可以表示当前表面有多少比例的微面元满足m=h,d还与模型材质的粗糙度(roughness)有关,可以表示为:d=roughness^2/(noh^2*(r0ughness^2-1)+1)^2noh=saturate(dot(n,normalize(l+v)))可以看出,随着目标模型表面粗糙程度的减小,趋近与总体法线向量n的微面的分布变多,d值会相应增大。另外,d可以决定高光的亮度大小和形状,如可以根据主光源的方向向量l和半角向量h的点积结果改变高光的形状。f为菲涅尔函数,可以描述半角向量为h处的菲涅尔反射。当主光源的方向和当前视线方向的夹角增大时,高光光照强度相应增大。且当前视线方向的方向向量v与菲涅尔函数f作乘法运算时,有:v*f=1.0/(loh^2*(roughness+0.5))loh=saturate(dot(l,normalize(l+v)))综上可知,当d以及v*f值确定时,就可以得到该目标顶点处的高光光照强度。在步骤s420中.根据所述第一类光照强度查询所述预设数据表得到对应的所述第一类光照色溢。示例性的,预设数据表可以是lut查找表,可以使用该目标顶点处的高光光照强度brdfspec作为lut查找表的输入,计算高光色溢,即:brdfspecmultiply=lut(brdfspec)其中,brdfspecmultiply为高光色溢,可以根据得到的高光色溢值修改高光颜色,进一步提高目标模型的风格化效果。在步骤s330中,根据所述目标顶点处的法线信息和当前光源的光照信息计算所述目标顶点处的第二类光照色溢。一种示例实施方式中,当前光源的光照信息可以包括当前光源的方向向量和当前光源的光源颜色。参考图5所示,可以根据步骤s510至步骤s530计算第二类光照色溢,即漫反射色溢:在步骤s510中.对所述目标顶点处的法线方向向量和所述当前光源的方向向量作点乘运算,即:ndotl=saturate(dot(n,l))其中,n为目标顶点的法线方向向量,l为当前光源的方向向量。可以使用saturate函数将点乘运算的结果截断在[0,1]内,点乘运算的结果可以表示该目标顶点处的反射光的强度,一般可以用辐照度表示光的强度,也就是投射到该目标顶点区域的所有光线总和。在步骤s520中.根据所述点乘运算的结果查询所述预设数据表得到所述当前光源的系数。示例性的,预设数据表可以是lut查找表,可以将目标顶点处的法线方向向量和当前光源的方向向量的点乘运算的结果作为lut查找表的输入,得到当前光源的系数,即:lightcolormultiply=lut(ndotl)其中,lightcolormultiply为当前光源的系数,可以表示该目标顶点对于当前平行光光源的漫反射强度对应的颜色值。在步骤s530中.根据所述当前光源的光源颜色和所述当前光源的系数计算得到所述目标顶点处的第二类光照色溢。得到当前光源的系数后,结合当前光源的光源颜色,可以计算得到该目标顶点处的漫反射色溢。例如,可以将当前光源的光源颜色和当前光源的系数相乘,即:lightcolormultiply′=lightcolor*lightcolormultiply其中,lightcolormultiply为当前光源的系数,lightcolor为当前光源的光源颜色,lightcolormultiply′为目标顶点处的漫反射色溢。该过程可以根据计算得到的漫反射色溢值对当前光源的光源颜色进行改变,以增加目标模型的风格化特性。确定目标顶点处的光亮度后,可以对目标模型的表面进行明暗处理。例如,可以使用均匀着色法进行明暗处理,就是对目标模型的表面,整体地用一个亮度值(或颜色值);也可以使用gouraud着色法(亮度/颜色插值明暗法)进行明暗处理,该方法在得到各顶点的光亮度后,可以利用顶点的亮度值作线性插值,以消除目标模型表面上亮度变化的不连续性;还可以使用phone着色法(法向量插值明暗法)进行明暗处理,该方法可以对法线方向量进行双线性插值,使得着色得到的图形更加真实。一种示例实施方式中,可以按照pbr渲染的概念定义目标模型对应的目标材质的光学属性,该目标材质的光学属性可以至少包括材质的金属度和目标顶点处的第二类光照颜色,如漫反射颜色,还可以包括材质的粗糙度等。其中,第二类光照颜色可以用于计算目标顶点处的光照颜色。还可以根据材质的金属度对所述第一类光照色溢和所述第二类光照色溢进行插值计算,以提升目标模型整体画面的风格化程度。确定目标模型对应的目标材质光学属性后,可以根据材质的金属度对漫反射色溢和高光色溢进行插值计算,其中,插值计算可以是线性插值计算,也可以是非线性插值计算,非线性插值是指对二维的网格中按照特定方向分布的像素纹理点,对应设定非线性变化的颜色值,如最近邻差值和双信道差值。示例性的,可以利用lerp函数在目标模型的当前颜色到达另一个目标颜色之间进行平滑过渡,即进行线性插值计算。具体的,可以根据金属度(metallic)分别对高光色溢(brdfspecmultiply)和漫反射色溢(lightcolormultiply)进行线性插值计算,即:lightcolor′=lerp(1,lightcolormultiply,metallic)brdfspec′=lerp(1,brdfspecmultiply,metallic)其中,当光线垂直射向物体表面时,该光线被反射为镜面反射光的比率为f0,即f0为光线垂直入射时的菲涅尔反射率,当金属度为1时,即对于金属而言,一般有f0=1。lerp函数形式可以为lerp(a,b,t),具体实现为y=b+(1-t)a,t的取值为[0,1],该方法中平滑过渡时是先快后慢,即不是匀速过渡。当需要匀速过渡时,可以确定起始点和结束点为固定值,对应的lerp函数形式可以为lerp(from,to,t),具体实现为y=from+(to-from)t。该方法中,利用材质的金属度对目标模型表面各顶点的漫反射色溢和高光色溢进行插值,可以根据材质的金属度特性调整目标模型表面的亮度,进而提升目标模型整体画面的风格化程度。而且,金属材质与非金属材质可以有不一样的色溢效果。另外,由于金属材质没有漫反射,可以实现金属材质的高光色溢风格特性。在步骤s340中,基于所述第一类光照色溢和所述第二类光照色溢的插值结果计算所述目标顶点处的光照结果。参考图6所示,可以根据步骤s610至步骤s640计算该目标顶点处的光照结果,如可以计算该目标顶点的颜色值:步骤s610.根据所述光学属性计算所述目标顶点处的第一类光照颜色。一种示例实施方式中,第一类光照颜色可以为镜面反射颜色,镜面反射颜色可以用于对漫反射颜色的入射镜面反射进行颜色的控制。因此,可以根据漫反射颜色和材质光学属性如金属度属性对镜面反射颜色进行线性插值,即根据:specularcolor=lerp(0.04,basecolor,metallic)其中,specularcolor为镜面反射颜色,basecolor为漫反射颜色,metallic为金属度,当金属度为0时,即对于非金属而言,一般有f0=0.04。假设镜面反射颜色与目标模型的材质无关时,镜面反射颜色可以为光源的颜色;当镜面镜面反射颜色与目标模型的材质有关时,可以根据金属度属性,基于漫反射颜色进行插值运算,从而可以更好的区分风格化光照中金属材质和非金属材质的风格化表现。步骤s620.结合所述目标顶点处的第二类光照颜色,并根据所述第一类光照颜色和所述第一类光照色溢的插值结果计算得到所述目标顶点处的光照颜色。确定该目标顶点处的第一类光照颜色后,可以计算该目标顶点处的光照颜色,如可以根据:directcolor=brdfspec*specularcolor+basecolor其中,directcolor为该目标顶点处的最终光照颜色值,brdfspec为该目标顶点处插值后的高光色溢值,specularcolor为该目标顶点处插值后的高光颜色,basecolor为该目标顶点处的漫反射颜色。步骤s630.根据所述第二类光照色溢的插值结果计算所述目标顶点处的第二类光照强度。当获取该目标顶点处的漫反射强度(也可以用漫反射辐照度表示)时,首先,可以将该目标顶点处的法线方向向量和当前光源的方向向量作点积,并截取预设范围内的向量点积值,即:ndotl=saturate(dot(n,l))可以使用saturate函数将点乘运算的结果截断在[0,1]内。然后,可以根据截取后的向量点积值和第二类光照色溢的插值结果,计算得到该目标顶点处的第二类光照强度。示例性的,可以根据线性插值后的漫反射色溢值计算得到该目标顶点处的漫反射强度,即:directlightradiance=saturate(dot(n,l))*lightcolor其中,directlightradiance为该目标顶点处的漫反射强度,lightcolor为线性插值后的漫反射色溢值。也可以根据非线性插值后的漫反射色溢值计算得到该目标顶点处的漫反射强度,本示例中对此不做具体限定。步骤s640.根据所述第二类光照强度和所述目标顶点处的光照颜色计算得到所述目标顶点处的光照结果。具体的,可以根据该目标顶点处的漫反射光照强度和该目标顶点处的最终光照颜色确定该目标顶点处的光照结果,即:directresult=directcolor*directlightradiance其中,directresult为该目标顶点处的最终直接光照结果,directcolor为该目标顶点处的最终光照颜色值,directlightradiance为该目标顶点处的漫反射强度。本示例中,可以按照pbr渲染的概念定义材质光学属性,结合材质光学属性,并使用npr渲染计算光照,提供了一种新的风格化方法,即在pbr光照的概念上实现风格化光照,不仅可以区分风格化光照中金属材质和非金属材质的风格化表现,而且在游戏中,金属材质与非金属材质还可以表现出不一样的色溢效果。在步骤s350中,根据所述光照结果对所述目标模型进行光照渲染。可以将该目标顶点处的最终直接光照结果发送给渲染器进行目标模型的光照输出。例如,在游戏动画的实时渲染中,渲染器有至关重要的地位,渲染器可以通过运行在图形处理器(graphicsprocessingunit,gpu)上的程序,将离线制作完成的模型、贴图等数字资产数据,渲染到玩家和观众所看到的屏幕上。其中,将离线数字资产数据渲染成为如卡通风格、写实风格等,都是由渲染器来实现的。一种示例实施方式中,图7a示出了一种引擎标准pbr光照的效果示意图,对于图中的3d球体,可以设置对照组:球体上方为非金属材质,即金属度metallic=0,球体下方为金属材质,即金属度metallic=1,上下材质光滑度smoothness=0.5。在标准pbr光照中,只考虑材质在真实物理环境下表现出的光照效果,因为材质光滑度定义为0.5,因此可以具有大范围且柔和的高光,对应的在金属表面会有一块亮色区域(高光部分);图7b示出了一种可以区分金属材质和非金属材质的风格化光照的效果示意图,该图中球体上方为非金属材质,即金属度metallic=0,球体下方为金属材质,即金属度metallic=1,通过区分金属材质和非金属材质的风格化光照,可以提升球体整体画面的风格化程度。在本公开示例实施方式所提供的基于目标模型的光照渲染方法中,通过获取与所述目标模型对应的目标材质的光学属性;基于所述光学属性,通过查询预设数据表确定所述目标模型中目标顶点处的第一类光照色溢;根据所述目标顶点处的法线信息和当前光源的光照信息计算所述目标顶点处的第二类光照色溢;基于所述第一类光照色溢和所述第二类光照色溢的插值结果计算所述目标顶点处的光照结果;根据所述光照结果对所述目标模型进行光照渲染。一方面,通过将基于物理渲染和非真实感渲染进行结合,提出一种新的风格化光照方法。另一方面,通过使用基于物理渲染概念的材质光学属性区分中金属及非金属材质的风格化表现,可以提升目标模型中整体画面的风格化程度。应当注意,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。进一步的,本示例实施方式中,还提供了一种光照渲染装置。该装置可以应用于一服务器或终端设备。参考图8所示,该光照渲染装置800可以包括光学属性获取模块810、第一类光照色溢确定模块820、第二类光照色溢确定模块830、光照结果确定模块840以及模型渲染模块850,其中:光学属性获取模块810,用于获取与所述目标模型对应的目标材质的光学属性;第一类光照色溢确定模块820,用于基于所述光学属性,通过查询预设数据表确定目标模型中目标顶点处的第一类光照色溢;第二类光照色溢确定模块830,用于根据所述目标顶点处的法线信息和当前光源的光照信息计算所述目标顶点处的第二类光照色溢;光照结果确定模块840,用于基于所述第一类光照色溢和所述第二类光照色溢的插值结果计算所述目标顶点处的光照结果;模型渲染模块850,用于根据所述光照结果对所述目标模型进行光照渲染。在一种可选的实施方式中,所述光学属性至少包括所述目标材质的粗糙度,第一类光照色溢确定模块820包括:第一类光照强度计算模块,用于基于所述目标材质的粗糙度,根据所述目标顶点处的法线信息和当前光源的光照信息,并结合当前视线的方向信息计算所述目标顶点处的第一类光照强度;第一类光照色溢查询模块,用于根据所述第一类光照强度查询所述预设数据表得到对应的所述第一类光照色溢。在一种可选的实施方式中,所述当前光源的光照信息包括所述当前光源的方向向量和所述当前光源的光源颜色;第二类光照色溢确定模块830包括:第一运算模块,用于对所述目标顶点处的法线方向向量和所述当前光源的方向向量进行点乘运算;系数查询模块,用于根据所述点乘运算的结果查询所述预设数据表得到所述当前光源的系数;第二类光照色溢计算模块,用于根据所述当前光源的光源颜色和所述当前光源的系数计算得到所述目标顶点处的第二类光照色溢。在一种可选的实施方式中,所述光学属性至少包括所述目标材质的金属度和所述目标顶点处的第二类光照颜色,所述第二类光照颜色用于计算所述目标顶点处的光照颜色;光照渲染装置800还包括:插值计算模块,用于根据所述材质的金属度对所述第一类光照色溢和所述第二类光照色溢进行插值计算。在一种可选的实施方式中,光照结果确定模块840包括:第一类光照颜色计算模块,用于根据所述光学属性计算所述目标顶点处的第一类光照颜色;光照颜色计算模块,用于结合所述目标顶点处的第二类光照颜色,并根据所述第一类光照颜色和所述第一类光照色溢的插值结果计算得到所述目标顶点处的光照颜色;第二类光照强度计算模块,用于根据所述第二类光照色溢的插值结果计算所述目标顶点处的第二类光照强度;光照结果计算模块,用于根据所述第二类光照强度和所述目标顶点处的光照颜色计算得到所述目标顶点处的光照结果。在一种可选的实施方式中,第二类光照强度计算模块包括:第二运算模块,用于将所述目标顶点处的法线方向向量和所述当前光源的方向向量作点积,并截取预设范围内的向量点积值;第二类光照强度确定模块,用于根据截取后的向量点积值和所述第二类光照色溢的插值结果,计算得到所述目标顶点处的第二类光照强度。在一种可选的实施方式中,模型渲染模块850被配置为将所述光照结果发送给渲染器进行所述目标模型的光照输出。上述光照渲染装置中各模块的具体细节已经在对应的光照渲染方法中进行了详细的描述,因此此处不再赘述。应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1