一种头发高光渲染方法、装置、设备及存储介质

文档序号:1939516 发布日期:2021-12-07 浏览:13次 >En<

阅读说明:本技术 一种头发高光渲染方法、装置、设备及存储介质 (Hair highlight rendering method, device, equipment and storage medium ) 是由 冯乐乐 贺甲 于 2020-06-01 设计创作,主要内容包括:本发明实施例公开了一种头发高光渲染方法、装置、设备及存储介质。该方法包括:获取目标发片的发片类型、待调整位置和待调整高光参数,根据发片类型从预先生成的曲线映射贴图中筛选出目标映射贴图;根据目标映射贴图得到与待调整位置对应的调整数值,根据调整数值对待调整高光参数进行数值调整,将数值调整后的待调整高光参数作为已调整高光参数;根据高光控制参数对目标发片进行高光渲染,其中,高光控制参数包括半向量方向和已调整高光参数。本发明实施例的技术方案,基于目标映射贴图提高了各发片的高光渲染的自由度,以使各发片更加接近美术原画绘制的风格化艺术效果,达到了对头发高光的渲染具有风格化控制的效果。(The embodiment of the invention discloses a hair highlight rendering method, a device, equipment and a storage medium. The method comprises the following steps: acquiring a hair piece type, a position to be adjusted and a highlight parameter to be adjusted of a target hair piece, and screening out a target mapping map from a pre-generated curve mapping map according to the hair piece type; obtaining an adjustment value corresponding to the position to be adjusted according to the target mapping map, performing numerical adjustment on the highlight parameter to be adjusted according to the adjustment value, and taking the highlight parameter to be adjusted after numerical adjustment as an adjusted highlight parameter; and performing highlight rendering on the target hair piece according to highlight control parameters, wherein the highlight control parameters comprise a half vector direction and an adjusted highlight parameter. According to the technical scheme of the embodiment of the invention, the freedom degree of highlight rendering of each hair piece is improved based on the target mapping chartlet, so that each hair piece is closer to the stylized artistic effect drawn by the art original picture, and the stylized control effect on the highlight rendering of the hair is achieved.)

一种头发高光渲染方法、装置、设备及存储介质

技术领域

本发明实施例涉及计算机应用技术领域,尤其涉及一种头发高光渲染方法、装置、设备及存储介质。

背景技术

光源照射到物体后会反射到人眼中,物体上最亮的部分称之为高光。长期以来,头发高光渲染是三渲二卡通渲染中的重中之重,相较于照片级写实渲染,风格化渲染在高光亮度和高光形状上具有更强的美术可控性。

但是,由于每个卡通角色的发型存在差异性,现有的风格化渲染方案对于头发高光的控制效果有待改善。

发明内容

本发明实施例提供了一种头发高光渲染方法、装置、设备及存储介质,以实现对头发高光的渲染具有风格化控制的效果。

第一方面,本发明实施例提供了一种头发高光渲染方法,可以包括:

获取目标发片的发片类型、待调整位置和待调整高光参数,根据发片类型从预先生成的曲线映射贴图中筛选出目标映射贴图;根据目标映射贴图得到与待调整位置对应的调整数值,根据调整数值对待调整高光参数进行数值调整,将数值调整后的待调整高光参数作为已调整高光参数;根据高光控制参数对目标发片进行高光渲染,其中,高光控制参数包括半向量方向和已调整高光参数。

可选的,高光控制参数包括高光位置控制参数和高光形状控制参数,高光位置控制参数包括半向量方向,已调整高光参数包括已调整高光平滑度;

根据高光控制参数对目标发片进行高光渲染,可以包括:

根据高光位置控制参数控制目标发片的高光位置,其中,高光位置控制参数还包括头发模型的预设方向和发片高光范围;根据高光形状控制参数控制目标发片的高光形状,其中,高光形状控制参数包括高光位置、发片高光宽度和发片纹理坐标;根据已调整高光平滑度对高光形状进行平滑处理,根据平滑处理结果更新高光形状,并根据高光形状生成各向异性高光,基于各向异性高光对目标发片进行高光渲染。

可选的,高光控制参数还包括目标发片的切线方向,已调整高光参数包括已调整高光平滑度;根据高光控制参数对目标发片进行高光渲染,可以包括:

根据切线方向、半向量方向和已调整高光平滑度生成各向异性高光,基于各向异性高光对目标发片进行高光渲染。

可选的,高光控制参数还包括高光偏移量和目标发片的法线方向;根据切线方向、半向量方向和已调整高光平滑度生成各向异性高光,可以包括:

对预设噪声贴图进行采样,根据采样结果得到抖动值,根据抖动值对高光偏移量进行抖动处理,并根据抖动处理结果更新高光偏移量;基于高光偏移量,将切线方向向法线方向进行插值,并根据插值结果、半向量方向和已调整高光平滑度生成各向异性高光。

可选的,在生成各向异性高光之后,上述方法还包括:基于预设重映射曲线对各向异性高光进行重映射处理,并根据重映射处理结果更新各向异性高光。

可选的,各向异性高光的数量是至少两个,已调整高光参数还包括已调整高光颜色,已调整高光颜色的数量和各向异性高光的数量相同;基于各向异性高光对目标发片进行高光渲染,可以包括:对各各向异性高光和各已调整高光颜色进行叠加处理,并根据叠加处理结果对目标发片进行高光渲染。

可选的,发片纹理坐标是根据预设纹理贴图或是头发模型中各三维点确定的,和/或,切线方向是根据各三维点或是预设切线贴图确定的。

第二方面,本发明实施例还提供了一种头发高光渲染装置,可以包括:

数据获取模块,用于获取目标发片的发片类型、待调整位置和待调整高光参数,根据发片类型从预先生成的曲线映射贴图中筛选出目标映射贴图;

数值调整模块,用于根据目标映射贴图得到与待调整位置对应的调整数值,根据调整数值对待调整高光参数进行数值调整,将数值调整后的待调整高光参数作为已调整高光参数;

头发高光渲染模块,用于根据高光控制参数对目标发片进行高光渲染,其中,高光控制参数包括半向量方向和已调整高光参数。

第三方面,本发明实施例还提供了一种设备,该设备可以包括:

一个或多个处理器;

存储器,用于存储一个或多个程序;

当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现本发明任意实施例所提供的头发高光渲染方法。

第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本发明任意实施例所提供的头发高光渲染方法。

本发明实施例的技术方案,通过获取目标发片的发片类型、待调整位置和待调整高光参数,以便根据发片类型从预先生成的曲线映射贴图中筛选出与发片类型对应的目标映射贴图;进而,从目标映射贴图中得到与待调整位置对应的调整数值,并根据调整数值对待调整位置上的待调整高光参数进行数值调整,将数值调整后的待调整高光参数作为已调整高光参数;由此,根据半向量方向和已调整高光参数,对目标发片进行高光渲染。上述技术方案,基于目标映射贴图提高了各发片的高光渲染的自由度,以使各发片更加接近美术原画绘制的风格化艺术效果,达到了对头发高光的渲染具有风格化控制的效果。

附图说明

图1是本发明实施例一中的一种头发高光渲染方法的流程图;

图2a是本发明实施例一中的预设重映射曲线的第一示意图;

图2b是本发明实施例一中的预设重映射曲线的第二示意图;

图3是本发明实施例二中的一种头发高光渲染方法的流程图;

图4是本发明实施例二中的头发结构的示意图;

图5是本发明实施例二中的预设噪声贴图的示意图;

图6是本发明实施例三中的一种头发高光渲染方法的流程图;

图7a是本发明实施例三中的高光平滑度的映射曲线的示意图;

图7b是本发明实施例三中的高光偏移量的映射曲线的示意图;

图7c是本发明实施例三中的高光颜色的映射曲线的示意图;

图8a是本发明实施例三中的头发高光渲染后的第一应用效果图;

图8b是本发明实施例三中的头发高光渲染后的第二应用效果图;

图8c是本发明实施例三中的头发高光渲染后的第三应用效果图;

图8d是本发明实施例三中的头发高光渲染后的第四应用效果图;

图8e是本发明实施例三中的头发高光渲染后的第五应用效果图;

图8f是本发明实施例三中的头发高光渲染后的第六应用效果图;

图9是本发明实施例四中的一种头发高光渲染装置的结构框图;

图10是本发明实施例五中的一种设备的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

在介绍本发明实施例之前,先对本发明实施例的应用场景进行示例性说明:三渲二卡通渲染是将3D模型渲染为二维(two dimensional,2D)图像,其具有较高的制作效率,让一些手绘艰难的2D图像可以快速成型。为模拟真实情况,三维(three dimensional,3D)模型有凸起有凹陷,有面向光源的区域也有背向光源的区域,光源照射在3D模型的不同区域会呈现出不同的明暗效果。需要说明的是,在将3D模型渲染为2D图像后,2D图像中还需要保留3D模型的光影特性。但是,如果将3D模型直接渲染到2D图像上,3D模型经过光影照射后投影在2D图像上的高光阴影会很细碎,这在头发高光渲染方面尤其明显,可控性较差的光影特性致使2D图像的美观性不佳。

为解决这一问题,风格化渲染方案应运而生,经由其渲染生成的2D图像在符合光影特性的同时可以保持美感。具体而言,基于风格化渲染生成的2D图像只需要符合光影特性,而无需与现实世界的光影特性呈现出的明暗效果完全相同。比如,在2D图像上,明亮区域仍是明亮,阴暗区域仍是阴暗,但是如何明亮如何阴暗,明亮区域的高光是什么形状,阴暗区域的阴影是什么形状,这些均是可控的,无需与现实世界中的高光阴影完全相同。

实施例一

图1是本发明实施例一中提供的一种头发高光渲染方法的流程图。本实施例可适用于对头发高光进行渲染的情况,尤其适用于对头发高光进行风格化渲染的情况。该方法可以由本发明实施例提供的头发高光渲染装置来执行,该装置可以由软件和/或硬件的方式实现,该装置可以集成在各种用户终端或服务器上。参见图1,本发明实施例的方法具体包括如下步骤:

S110、获取目标发片的发片类型、待调整位置和待调整高光参数,根据发片类型从预先生成的曲线映射贴图中筛选出目标映射贴图。

其中,头发包括至少一个发片,目标发片是各发片中需要对待调整高光参数进行数值调整的发片。各发片的发片类型可能相同也可能不同,每个发片类型均存在与其对应的目标映射贴图,基于与各发片类型分别对应的目标映射贴图可以生成曲线映射贴图,如将各目标映射贴图的集合作为曲线映射贴图;再如对各目标映射贴图进行合并处理后生成曲线映射贴图,每个目标映射贴图是曲线映射贴图中的一行或是一列;等等,在此未做具体限定。由此,在获取到目标发片的发片类型之后,根据该发片类型可以从预先生成的曲线映射贴图中筛选出目标映射贴图。待调整位置是目标发片上需要进行数值调整的位置,每个目标发片上的待调整位置的数量可以是一个、两个或是多个。待调整高光参数是目标发片上需要进行数值调整的高光参数,如高光平滑度、高光颜色和高光偏移量中的至少一个,再如高光抖动程度等等。

S120、根据目标映射贴图得到与待调整位置对应的调整数值,根据调整数值对待调整高光参数进行数值调整,并将数值调整后的待调整高光参数作为已调整高光参数。

其中,目标映射贴图中存储有可对待调整高光参数进行重映射的映射曲线,该映射曲线的第一轴向可以是待调整位置,且第二轴向可以是调整数值,由此,根据待调整位置可以从目标映射贴图中得到相应的调整数值,以便根据调整数值对待调整位置上的待调整高光参数进行数值调整。可选的,若待调整位置的数量是至少两个,则从目标映射贴图中可以得到与各待调整位置分别对应的调整数值。再可选的,若某待调整位置上的待调整高光参数的数量是至少两个,则从目标映射贴图中可以得到与各待调整高光参数分别对应的调整数值。本领域技术人员应当理解的是,每个待调整位置上的各待调整高光参数的调整数值可能相同也可能不同;相应的,各待调整位置上的同一待调整高光参数的调整数值可能相同也可能不同,在此未做具体限定。在获取到与待调整位置对应的调整数值后,可以根据调整数值对待调整位置上的待调整高光参数进行数值调整,并将数值调整后的待调整高光参数作为已调整高光参数。

在此基础上,可选的,在根据调整数值对待调整高光参数进行数值调整时,可以先获取待调整高光参数的基准数值,再根据调整数值对基准数值进行数值调整。示例性的,以调整数值是缩放系数且待调整高光参数是高光平滑度为例,高光平滑度的基准数值是1000,3个待调整位置对应的缩放系数分别是1.2、0.8和0.6,经由缩放系数调整后的高光平滑度分别是1200、800和600,这使得同一目标发片上不同待调整位置处的高光线条的宽度不再相同,有些高光线条较宽,有些高光线条较窄,由此提高了目标发片的高光渲染的自由度。

S130、根据高光控制参数对目标发片进行高光渲染,其中,高光控制参数包括半向量方向和已调整高光参数。

其中,在视频画面中,光源方向和视角方向都会随着时间推移而不断变化,光源方向可以认为是光线照射的方向,视角方向可以认为是摄像机的观察方向,由此,根据光源方向和视角方向可以对头发高光进行实时控制。在此基础上,半向量方向是根据当前时刻的光源方向和视角方向确定的,比如,其可以是当前时刻的光源方向和视角方向进行归一化后确定的。这样一来,根据高光控制参数可以生成各向异性高光,进而基于各向异性高光对目标发片进行高光渲染,该高光控制参数可以包括半向量方向和已调整高光参数。另外,在正球形的头发模型中,各向同性高光是点状,而各向异性高光是环状,如各向异性高光在头发刘海上可以呈现出一个线条,美观性更佳。

需要说明的是,一方面,因为目标发片上不同待调整位置处的同一已调整高光参数不再是单一固定的常量值,由此,在根据已调整高光参数和半向量方向对目标发片进行高光渲染后,可以得到具有更多风格化的头发高光,如中间窄而两边宽,再如中间宽而两边窄,再如变化锐利,再如变化平缓等等,提高了目标发片的高光渲染的自由度。另一方面,在头发由至少两个发片构成时,可以逐发片修改待调整高光参数,此时,由于不同发片的发片类型可能存在差异性,这意味着不同发片对应的目标映射贴图可能存在差异性,进而不同发片的同一已调整高光参数可能存在差异性,由此提高了各发片的高光渲染的自由度,每个发片具有各自的风格化更强的高光渲染效果。

本发明实施例的技术方案,通过获取目标发片的发片类型、待调整位置和待调整高光参数,以便根据发片类型从预先生成的曲线映射贴图中筛选出与发片类型对应的目标映射贴图;进而,从目标映射贴图中得到与待调整位置对应的调整数值,并根据调整数值对待调整位置上的待调整高光参数进行数值调整,将数值调整后的待调整高光参数作为已调整高光参数;由此,根据半向量方向和已调整高光参数,对目标发片进行高光渲染。上述技术方案,基于目标映射贴图提高了各发片的高光渲染的自由度,以使各发片更加接近美术原画绘制的风格化艺术效果,达到了对头发高光的渲染具有风格化控制的效果。

一种可选的技术方案,通过获取与待调整高光参数和发片类型对应的映射曲线,对映射曲线进行编码,可以生成目标映射贴图。其中,同一发片类型的不同待调整高光参数可能对应不同的映射曲线,不同发片类型的同一待调整高光参数亦可能对应不同的映射曲线,因此,映射曲线是与待调整高光参数和发片类型同时对应的曲线,可选的,映射曲线的第一轴向可以是待调整位置,第二轴向可以是调整数值,该第一轴向可以是横轴,该第二轴向可以是纵轴,当然,反之亦然可以,在此未做具体限定。

在获取到映射曲线后,可以对其进行编码以生成目标映射贴图,目标映射贴图与发片类型存在对应关系,与待调整高光参数可能存在对应关系。例如,考虑到某发片类型上的待调整高光参数的数量可能是至少两个,在对各待调整高光参数分别对应的映射曲线进行编码之后,可以基于每个映射曲线的编码结果各自生成目标映射贴图,此时,目标映射贴图和发片类型及待调整高光参数间均存在对应关系;也可以将每个映射曲线的编码结果存储到目标映射贴图的不同通道中,并根据存储结果生成目标映射贴图,如待调整高光参数的数量是M个,则将M个映射曲线分别存储到目标映射贴图的M个通道中,M是正整数,此时,目标映射贴图只和发片类型存在对应关系。

需要说明的是,在实际应用中,映射曲线可以根据实际渲染需求预先生成,如期望某发片类型上头发高光的宽窄变化趋势是波浪线,则可以将波浪线作为映射曲线,考虑到头发高光的宽窄程度是高光平滑度带来的,由此,在基于这样的映射曲线生成目标映射贴图后,可以基于目标映射贴图对高光平滑度进行数值调整,以使数值调整后的高光平滑度的变化趋势由直线形式转变为具有波峰波谷的波浪线形式,实现了头发高光的风格化渲染的效果。

一种可选的技术方案,在根据高光控制参数生成各向异性高光之后,上述头发高光渲染方法,还可以包括:基于预设重映射曲线对各向异性高光进行重映射处理,并根据重映射处理结果更新各向异性高光。其中,预设重映射曲线是预先设置的用于实现高光重映射的曲线,其可以存储在预先设置的重映射贴图中。该预设重映射曲线可以是坡度变化比较缓慢的一维曲线,如图2a所示的SpecularLow,基于SpecularLow进行重映射处理后的各向异性高光比较平缓,输入输出基本一致;也可以是坡度变化比较迅速的一维曲线SpecularHigh,如图2b所示的SpecularHigh,基于SpecularHigh进行重映射处理后的各向异性高光比较锐利,输入输出的对比度逐渐明显增强;等等,在此未做具体限定。该预设重映射曲线的横坐标可以是重映射前的各向异性高光,纵坐标可以是重映射后的各向异性高光;当然,反之亦然可以,在此未做具体限定。

一种可选的技术方案,各向异性高光的数量是至少两个,已调整高光参数还包括已调整高光颜色,且已调整高光颜色的数量和各向异性高光的数量相同,那么,在根据高光控制参数生成各向异性高光之后,还可以对各个各向异性高光和各已调整高光颜色进行相应叠加处理,并根据叠加处理结果对目标发片进行高光渲染,以便进一步实现各向异性高光的风格化控制,该已调整高光颜色可以是单纯的高光颜色,也可以是高光颜色和高光亮度的乘积结果。

实施例二

图3是本发明实施例二中提供的一种头发高光渲染方法的流程图,本实施例以上述各技术方案为基础进行优化。在本实施例中,可选的,高光控制参数包括高光位置控制参数和高光形状控制参数,高光位置控制参数包括半向量方向,已调整高光参数包括已调整高光平滑度;根据高光控制参数对目标发片进行高光渲染,具体可以包括:根据高光位置控制参数控制目标发片的高光位置,其中,高光位置控制参数还包括头发模型的预设方向和发片高光范围;根据高光形状控制参数控制目标发片的高光形状,其中,高光形状控制参数包括高光位置、发片高光宽度和发片纹理坐标;根据已调整高光平滑度对高光形状进行平滑处理,根据平滑处理结果更新高光形状,并根据高光形状生成各向异性高光,基于各向异性高光对目标发片进行高光渲染。其中,与上述各实施例相同或相应的术语的解释在此不再赘述。

参见图3,本实施例的方法具体可以包括如下步骤:

S210、获取目标发片的发片类型、待调整位置和待调整高光参数,根据发片类型从预先生成的曲线映射贴图中筛选出目标映射贴图。

S220、根据目标映射贴图得到与待调整位置对应的调整数值,根据调整数值对待调整高光参数进行数值调整,将数值调整后的待调整高光参数作为已调整高光参数,其中,已调整高光参数包括已调整高光平滑度。

S230、根据高光位置控制参数控制目标发片的高光位置,其中,高光位置控制参数包括半向量方向、头发模型的预设方向和发片高光范围。

其中,头发模型的预设方向可以是头发模型的正上方向,在头发模型中,什么方向是上什么方向是下,这些都是预先设置完成的。发片高光范围是目标发片上可以出现高光的范围,该范围可以基于目标发片上高光所在的起始位置和结束位置确定,如在0.2-0.8范围内可以出现高光,0.2、0.8可以是2D图像上某一轴向的坐标值。由此,根据半向量方向、头发模型的预设方向和发片高光范围可以确定出目标发片的高光位置,该高光位置是当前视角(即,当前时刻的视角方向)下在发片高光范围内出现的高光所在的位置。

示例性的,可以先根据半向量方向和预设方向进行位置偏移,以半向量方向是HalfDir且预设方向是HairUpDir为例,根据HalfDir和HairUpDir进行位置偏移后的位置偏移结果ViewShift可以为-dot(HalfDir,HairUpDir);再根据位置偏移结果和发片高光范围控制目标发片的高光位置。需要说明的是,在获知发片高光宽度之后,根据位置偏移结果即可确定出在哪个位置上存在高光,比如,以发片高光宽度是0.1且发片高光范围是0.2-0.8为例,这意味着在0.2-0.8内存在多个宽度为0.1的高光线条,而位置偏移结果决定了高光线条究竟在哪个位置上,如在0.25-0.35上、在0.4-0.5上等等。

S240、根据高光形状控制参数控制目标发片的高光形状,其中,高光形状控制参数包括高光位置、发片高光宽度和发片纹理坐标。

其中,发片高光宽度是发片上每条高光线条的宽度,如发片高光宽度是0.1、0.2等等。发片纹理坐标(UV坐标)是发片在UV坐标系下的坐标,在UV坐标系下,U是水平方向,V是垂直方向,根据UV坐标可以定位出2D图像上任意位置的像素点。上述发片纹理坐标可以从头发模型中的各三维点获取到,每个三维点具有很多属性信息,如纹理坐标、切线方向、法线方向等等;也可以从预设纹理贴图中获取到,该预设纹理贴图是预先设置的用于从中提取出发片纹理坐标的贴图,预设纹理贴图的设置提高了高光形状的风格化控制的自由度,可以得到更加符合预期的高光形状;等等,在此未做具体限定。

示例性的,在根据高光位置SpecularRange、发片高光宽度SpecularWidth和发片纹理坐标HairUV控制目标发片的高光形状Specular时,在程序语言中,Specular可以是smoothstep(SpecularRange-SpecularWidth,SpecularRange,HairUV.y)*(1-smoothstep(SpecularRange,SpecularRange+SpecularWidth,HairUV.y))。

S250、根据已调整高光平滑度对高光形状进行平滑处理,根据平滑处理结果更新高光形状,并根据高光形状生成各向异性高光,基于各向异性高光对目标发片进行高光渲染。

其中,根据已调整高光平滑度对高光形状进行平滑处理,通过改变目标发片上不同待调整位置处的已调整高光平滑度,实现了对高光形状的宽窄程度的改变,这使得高光形状具有可控性更强的风格化控制。

本发明实施例的技术方案,先根据半向量方向、头发模型的预设方向和发片高光范围控制头发的高光位置,再根据高光位置、发片高光宽度和发片纹理坐标控制头发的高光形状;进一步,根据已调整高光平滑度对高光形状进行平滑处理,根据平滑处理结果更新高光形状,以便根据高光形状生成各向异性高光,进而基于各向异性高光对目标发片进行高光渲染。上述技术方案,基于发片纹理坐标和已调整高光平滑度,实现了发片高光的风格化渲染的效果。

需要说明的是,有些发片上头发的结构比较简单,有些发片上头发的结构比较复杂,由于上述技术方案生成的各向异性高光是可控性较强的相对规整的高光,其可以适用于对任何结构的头发上的高光进行渲染的情况,尤其适合于对结构比较复杂的头发上的高光进行渲染的情况,由此解决了在结构比较复杂的头发上容易出现的高光比较杂乱的问题,实现了头发高光渲染的风格化控制的效果。其中,结构比较简单的头发可以认为是覆盖在形状为球状或是近似球状的部位上的头发,如头部的形状是类似于球状的相对规则的形状,则覆盖在头部上的头发是结构比较简单的头发,如图4所示的上部的头发就是结构比较简单的头发;相应的,结构比较复杂的头发可以认为是覆盖在形状较为扁平的部位上的头发,如图4所示的下部的头发较为扁平,其类似于一个变化平缓的直片,是结构比较复杂的头发,再如S形马尾辫中两个半弧形的交界处的头发亦是结构比较复杂的头发。

一种可选的技术方案,在得到目标发片的高光位置之后,可以根据预先设置的高光偏移量对高光位置进行偏移处理,并根据偏移处理结果更新高光位置,由此实现了高光位置的可控性更强的风格化控制。进一步,可选的,在根据高光偏移量对高光位置进行偏移处理之前,可以先对预设噪声贴图进行采样,该预设噪声贴图是预先设置的用于存储噪声的贴图,示例性的,如图5所示;再根据采样结果得到抖动值,该抖动值用于高光偏移量进行抖动处理,并根据抖动处理结果更新高光偏移量,由此得到了风格化更强的高光偏移量,进而提高了发片中头发的发丝质感,可以渲染出更加自然的高光效果。

一种可选的技术方案,在基于本发明实施例二所述的头发高光渲染方法生成各向异性高光之后,可以基于预设重映射曲线对各向异性高光进行重映射处理,并根据重映射处理结果更新各向异性高光;和/或,可以对各个各向异性高光和各已调整高光颜色进行叠加处理,并根据叠加处理结果对目标发片进行高光渲染,具体内容与本发明实施例一类似,在此不再赘述。

实施例三

图6是本发明实施例三中提供的一种头发高光渲染方法的流程图。本实施例以上述各技术方案为基础进行优化。在本实施例中,可选的,高光控制参数还包括目标发片的切线方向,已调整高光参数包括已调整高光平滑度;根据高光控制参数对目标发片进行高光渲染,具体可以包括:根据切线方向、半向量方向和已调整高光平滑度生成各向异性高光,基于各向异性高光对目标发片进行高光渲染。其中,与上述各实施例相同或相应的术语的解释在此不再赘述。

参见图6,本实施例的方法具体可以包括如下步骤:

S310、获取目标发片的发片类型、待调整位置和待调整高光参数,根据发片类型从预先生成的曲线映射贴图中筛选出目标映射贴图。

S320、根据目标映射贴图得到与待调整位置对应的调整数值,根据调整数值对待调整高光参数进行数值调整,将数值调整后的待调整高光参数作为已调整高光参数,其中,已调整高光参数包括已调整高光平滑度。

S330、根据目标发片的切线方向、半向量方向和已调整高光平滑度生成各向异性高光,基于各向异性高光对目标发片进行高光渲染。

其中,切线方向可以从头发模型中的各三维点获取到,每个三维点具有很多属性信息,如纹理坐标、切线方向、法线方向等等;也可以从预设切线贴图(flow map)中获取到,该预设切线贴图是预先设置的用于从中提取出切线方向的RGB贴图,其分别对应于切线方向的XYZ三个方向,预设切线贴图的设置提高了各向异性高光的风格化控制的自由度,可以得到更加符合预期的各向异性高光;等等,在此未做具体限定。示例性的,以切线方向TangentDir、半向量方向HalfDir和已调整高光平滑度Shininess为例,在程序语言中,各向异性高光dirAtten的生成过程如下所示:dotTH=dot(TangentDir,HalfDir);sinTH=sqrt(max(1.0-dotTH*dotTH,0.0));dirAtten=smoothstep(-1.0,0.0,dotTH);dirAtten=dirAtten*pow(max(sinTH,1e-3),Shininess)。

在此基础上,可选的,高光控制参数还可以包括高光偏移量和目标发片的法线方向,那么,根据切线方向、半向量方向和已调整高光平滑度生成各向异性高光,具体可以包括:对预设噪声贴图进行采样,根据采样结果得到抖动值,根据抖动值对高光偏移量进行抖动处理,并根据抖动处理结果更新高光偏移量;基于高光偏移量,将切线方向向法线方向进行插值,并根据插值结果、半向量方向和已调整高光平滑度生成各向异性高光,以使各项异性高光具有发丝质感,而不是整齐的高光线条。

本发明实施例的技术方案,通过切线方向、半向量方向和已调整高光平滑度生成各向异性高光,该各向异性高光是符合现实世界的光影特性的高光,因相对杂乱而更加自然,实现了发片高光的风格化渲染的效果。

一种可选的技术方案,在基于本发明实施例三所述的头发高光渲染方法生成各向异性高光之后,可以基于预设重映射曲线对各向异性高光进行重映射处理,并根据重映射处理结果更新各向异性高光;和/或,可以对各个各向异性高光和各已调整高光颜色进行叠加处理,并根据叠加处理结果对目标发片进行高光渲染,具体内容与本发明实施例一类似,在此不再赘述。

为了更好地理解上述步骤的具体实现过程,下面结合具体示例,对各实施例所述的头发高光渲染方法进行示例性的说明。示例性的,将整个头发划分为多个发片类型,以某发片类型为例,设置如图7a-7c所示的映射曲线,它们分别是高光平滑度的映射曲线、高光偏移量的映射曲线以及高光颜色的映射曲线,每条映射曲线的横轴范围和纵轴范围均为0-1,横轴表示发片的横向坐标,根据横向坐标可以确定出待调整位置,纵轴表示待调整高光参数的缩放系数。通过这三条映射曲线调整后的已调整高光参数的变化趋势与映射曲线的变化趋势相一致,这使得该发片上的头发高光具有预期的变化趋势。进一步,将三条映射曲线分别编码到目标映射贴图的RGB三个通道上,每条映射曲线的横轴对应于目标映射贴图的横向坐标,映射曲线的纵轴对应于目标映射贴图的该横向坐标下的像素值。再进一步,将各发片类型分别对应的目标映射贴图合并到一张更大的曲线映射贴图中,每个目标映射贴图是曲线映射贴图中的一行。

由此,在实际应用中,基于发片的发片类型判断需要采样曲线映射贴图中的哪一行,再根据发片的横向坐标采样这一行的像素值;进而,根据采样出来的RGB像素值分别对待调整高光平滑度、待调整高光偏移量和待调整高光颜色进行数值调整,得到已调整高光平滑度、已调整高光偏移量和已调整高光颜色。在此基础上,还可以对预设噪声贴图进行采样,根据采样结果得到抖动值,根据抖动值对已调整高光偏移量进行抖动处理,并根据抖动处理结果更新已调整高光偏移量,该已调整高光偏移量可以用于生成各项异性高光,这样的各向异性高光具有较强的发丝质感,而不是整齐的高光线条。

具体的,针对结构比较简单的头发,可以基于已调整高光偏移量,将切线方向向法线方向进行插值,并根据插值结果、半向量方向和已调整高光平滑度生成各向异性高光(切线方向方案)。针对结构比较复杂的头发,可以先根据半向量方向、头发模型的正上方向和发片高光范围确定高光位置,并根据已调整高光偏移量对高光位置进行偏移处理,根据偏移处理结果更新高光位置,由此实现了高光位置的可控性更强的风格化控制;再根据高光位置、发片高光宽度和发片纹理坐标确定高光形状,根据已调整高光平滑度对高光形状进行平滑处理,根据平滑处理结果更新高光形状,以便根据高光形状生成各向异性高光(纹理坐标方案)。当然,头发结构的简单与复杂是相对而言,可以根据实际需求确定采用哪种方案生成各向异性高光,在此未做具体限定。特别的,在生成各向异性高光之后,还可以基于预设重映射曲线对其进行重映射处理。

在此基础上,为了凸显出高光区域以表现出更加丰富的高光渲染细节,可以使用多套高光参数分别计算出多层各向异性高光,再对这多层各向异性高光进行叠加处理。具体的,此处以两套高光参数为例,针对切向方向方案,根据插值结果、半向量方向和第一已调整高光平滑度生成第一各向异性高光,且根据插值结果、半向量方向和第二已调整高光平滑度生成第二各向异性高光,进而,基于两套已调整高光颜色对两层各向异性高光进行叠加处理,如第一各向异性高光*第一已调整高光颜色+第二各向异性层高光*第二已调整高光颜色,得到最终的各向异性高光,并基于该最终的各向异性高光进行高光渲染。

针对纹理坐标方案,先根据半向量方向、正上方向和发片高光范围确定出当前视角下在发片高光范围内的高光基本位置,再根据两套高光参数分别计算出两层各向异性高光,现以第一各向异性高光的计算过程为例进行阐述:将第一已调整高光偏移量和高光基本位置进行相加,计算出第一高光位置;根据第一高光位置、发片高光宽度和发片纹理坐标计算出第一高光基本形状;根据第一已调整高光平滑度对第一高光基本形状进行平滑处理,计算出第一高光形状,并基于第一高光形状生成第一各向异性高光,这进一步控制了第一各向异性高光的宽窄程度和软硬程度;第二各向异性高光的生成过程类似,后续基于两套已调整高光颜色对两层各向异性高光进行叠加处理以完成高光渲染。

为了证明上述方法的有效性,现以图8a-8f为例进行说明:图8a是未经高光渲染的示意图,图8b是添加一层高光后的示意图,图8c是添加两层高光后的示意图,相较于图8b,图8c的高光细节更加丰富;图8d是基于预设噪声贴图增加风格化后的示意图,此时的发丝质感更佳明显,高光渲染效果更加自然;图8e是基于目标映射贴图(Pattern贴图)增加风格化后的示意图,此时的高光形状具有更加明显的波峰波谷,起伏变化的控制性更强;需要说明的是,图8e基于切线方向方案生成各向异性高光,图8f基于纹理坐标方案生成各向异性高光,经由对比可知,针对下部的结构比较复杂的头发,图8e中的高光效果比较杂乱,而图8f中的高光效果比较规整,视觉美观性更好。

实施例四

图9为本发明实施例四提供的头发高光渲染装置的结构框图,该装置用于执行上述任意实施例提供的头发高光渲染方法。该装置与上述各实施例的头发高光渲染方法属于同一个发明构思,在头发高光渲染装置的实施例中未详尽描述的细节内容,可以参考上述头发高光渲染方法的实施例。参见图9,该装置包括:数据获取模块410、数值调整模块420和头发高光渲染模块430。其中,数据获取模块410,用于获取目标发片的发片类型、待调整位置和待调整高光参数,根据发片类型从预先生成的曲线映射贴图中筛选出目标映射贴图;数值调整模块420,用于根据目标映射贴图得到与待调整位置对应的调整数值,根据调整数值对待调整高光参数进行数值调整,将数值调整后的待调整高光参数作为已调整高光参数;头发高光渲染模块430,用于根据高光控制参数对目标发片进行高光渲染,其中,高光控制参数包括半向量方向和已调整高光参数。

可选的,高光控制参数包括高光位置控制参数和高光形状控制参数,高光位置控制参数包括半向量方向,已调整高光参数包括已调整高光平滑度;

头发高光渲染模块430,具体可以用于:根据高光位置控制参数控制目标发片的高光位置,其中,高光位置控制参数还包括头发模型的预设方向和发片高光范围;根据高光形状控制参数控制目标发片的高光形状,其中,高光形状控制参数包括高光位置、发片高光宽度和发片纹理坐标;根据已调整高光平滑度对高光形状进行平滑处理,根据平滑处理结果更新高光形状,并根据高光形状生成各向异性高光,基于各向异性高光对目标发片进行高光渲染。

可选的,高光控制参数还包括目标发片的切线方向,已调整高光参数包括已调整高光平滑度;头发高光渲染模块430,具体可以包括:

头发高光渲染单元,用于根据切线方向、半向量方向和已调整高光平滑度生成各向异性高光,基于各向异性高光对目标发片进行高光渲染。

可选的,高光控制参数还包括高光偏移量和目标发片的法线方向;

头发高光渲染单元,具体可以用于:对预设噪声贴图进行采样,根据采样结果得到抖动值,根据抖动值对高光偏移量进行抖动处理,并根据抖动处理结果更新高光偏移量;基于高光偏移量,将切线方向向法线方向进行插值,并根据插值结果、半向量方向和已调整高光平滑度生成各向异性高光。

可选的,在上述装置的基础上,该装置还可包括:

重映射模块,用于基于预设重映射曲线对各向异性高光进行重映射处理,并根据重映射处理结果更新各向异性高光。

可选的,各向异性高光的数量是至少两个,已调整高光参数还包括已调整高光颜色,已调整高光颜色的数量和各向异性高光的数量相同;

头发高光渲染模块430,具体可以包括:

叠加处理单元,用于对各个各向异性高光和各已调整高光颜色进行叠加处理,并根据叠加处理结果对目标发片进行高光渲染。

可选的,发片纹理坐标是根据预设纹理贴图或是头发模型中各三维点确定的,和/或,切线方向是根据各三维点或是预设切线贴图确定的。

本发明实施例四提供的头发高光渲染装置,通过数据获取模块获取目标发片的发片类型、待调整位置和待调整高光参数,以便根据发片类型从预先生成的曲线映射贴图中筛选出与发片类型对应的目标映射贴图;数值调整模块从目标映射贴图中得到与待调整位置对应的调整数值,并根据调整数值对待调整位置上的待调整高光参数进行数值调整,将数值调整后的待调整高光参数作为已调整高光参数;由此,头发高光渲染模块根据半向量方向和已调整高光参数,对目标发片进行高光渲染。上述装置,基于目标映射贴图提高了各发片的高光渲染的自由度,以使各发片更加接近美术原画绘制的风格化艺术效果,达到了对头发高光的渲染具有风格化控制的效果。

本发明实施例所提供的头发高光渲染装置可执行本发明任意实施例所提供的头发高光渲染方法,具备执行方法相应的功能模块和有益效果。

值得注意的是,上述头发高光渲染装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

实施例五

图10为本发明实施例五提供的一种设备的结构示意图,如图10所示,该设备包括存储器510、处理器520、输入装置530和输出装置540。设备中的处理器520的数量可以是一个或多个,图10中以一个处理器520为例;设备中的存储器510、处理器520、输入装置530和输出装置540可以通过总线或其它方式连接,图10中以通过总线550连接为例。

存储器510作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的头发高光渲染方法对应的程序指令/模块(例如,头发高光渲染装置中的数据获取模块410、数值调整模块420和头发高光渲染模块430)。处理器520通过运行存储在存储器510中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的头发高光渲染方法。

存储器510可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器510可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器510可进一步包括相对于处理器520远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置530可用于接收输入的数字或字符信息,以及产生与装置的用户设置以及功能控制有关的键信号输入。输出装置540可包括显示屏等显示设备。

实施例六

本发明实施例六提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种头发高光渲染方法,包括:

获取目标发片的发片类型、待调整位置和待调整高光参数,根据发片类型从预先生成的曲线映射贴图中筛选出目标映射贴图;根据目标映射贴图得到与待调整位置对应的调整数值,根据调整数值对待调整高光参数进行数值调整,将数值调整后的待调整高光参数作为已调整高光参数;根据高光控制参数对目标发片进行高光渲染,其中,高光控制参数包括半向量方向和已调整高光参数。

当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的头发高光渲染方法中的相关操作。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。依据这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

25页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种头发高光渲染方法、装置、设备及存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!