快手数字美妆系列:星河高光效果解析

您所在的位置:网站首页 三渲二模型制作方法 快手数字美妆系列:星河高光效果解析

快手数字美妆系列:星河高光效果解析

2023-03-12 03:47| 来源: 网络整理| 查看: 265

摘 要

本文介绍了快手数字美妆系列下的星河高光效果,相比传统美妆效果,星河高光效果更真实华丽。使用此效果可以轻松完成高光上妆,带来更真实更美好的体验。本文将从技术角度分析效果组成,并对其进行拆解和实现,解析相关技术原理。

效果介绍

星河高光效果是快手“数字美妆”中的效果之一[1],使用该效果后可以让用户通过手机看到自己上妆之后的样子,通过模拟现实光照条件,可以精准还原市面上常见的化妆品质地,渲染出高光的美妆效果,不但能够瞬间提升颜值,而且极具高级质感,且看上去没有过度修图和美肌,提升了用户的“沉浸感”和“愉悦感”,使其更加有趣。使用星河高光包装效果后,可以明显地看到,模特的五官变立体,效果更加迷人。

图1 采用星河高光的效果对比图下面为动态效果,使用星河高光在快手的魔法表情“夏日阳光”上,模特的面部呈现出高光的效果。夏日阳光的实际效果视频https://www.zhihu.com/video/1616811344380084224技术分析一、效果拆解

高光产生的原因是在面部(颧骨、鼻梁、眉弓)等处涂抹了化妆品,在光线的作用下显得比无化妆品区域更亮,除此之外还增加了细微的颗粒亮片闪烁的效果。将高光的效果拆分为两个部分,一部分是大面积的基础高光,该高光带有表面纹理,凸显出皮肤表面的形状;另一部分是细碎的亮片,附着在高光处,呈现出中间密集、边缘稀疏的自然分布的效果。

二、技术分析

基础高光为高光膏产生的效果,由于比较薄,需要考虑到肤色融合,其反射的不仅有高光膏本身的颜色,还需要适当地融入肤色效果;考虑到妆容的涂抹力度不一样,在某些区域,高光妆容比较厚,某些区域比较薄,需要一个控制高光局部强度的变量。

部分高光膏中包含了细碎的亮片,涂抹之后会在高光表面形成不同朝向的亮片,这样在转动面部的同时,会有闪烁的效果,需要谨慎地控制亮片的密度、大小、反射强度,与基础高光进行融合。两部分效果合并后,考虑到人眼视觉上的效果,需要加上后处理。从实际的渲染流程来分析,依次从材质、光照、后处理三个方面进行拆分详细处理,下文将按照顺序依次介绍模块。

三、材质

常规的理解中,材质指物体看起来是什么质地,可以看成材料和质感的结合。在渲染流程中,它是表面各种可视属性的组合,比如表面的色彩、纹理、光滑度、反射率、折射率等等。本文按照上妆顺序描述星河高光的材质:人脸材质、基础高光材质、亮片材质。

1、人脸材质人脸材质包含基础颜色和人脸法线,基础颜色为前处理环节输出的图像,人脸法线为面部各个部位的朝向。人脸法线的来源有两种方式,一种是直接采用3D人脸检测点上获取到的法线信息,这种很好理解,空间片元的三个点会形成一个面,直接获取该面上的法线信息即可;另外一种方式是采用固定人脸法线模型,根据对应的3D人脸检测点做相应的匹配。

直接采用3D人脸检测点获取的法线信息会比较匹配真实的人脸信息,但是带来一个问题:人脸法线抖动比较大,通常会导致妆容抖动等一系列问题。固定人脸法线模型使用人脸检测点匹配的方式相对而言抖动好很多,妆容也比较稳,前提是需要选择一个能很好平衡各个人脸的法线模型。通过大数据采集和训练,我们获取到了一个适用的均衡脸法线模型。

2、基础高光材质基础高光材质指剔除了亮片部分的背景高光,一般而言面积比较大,接近人脸肤质。本文从表面纹理、基础颜色、粗糙度进行描述。

(1)表面法线

表面纹理指的凹陷突出这种细节,通常使用切向法线就足够。基础高光材质使用的表面纹理是一张切向法线贴图,该贴图由设计师绘制的人脸表面height map转化而来,具体转换方法可使用该网址[2],通过设置不同的参数可以获取不同效果的表面纹理。图3为原始的height map,经过转换后形成表1中的切向法线贴图,表1对比了不同Strength参数后的法线贴图及效果的变化。

从表1可以看出不同参数下面部的细节效果不一样,Strength太大会导致面部呈现尖刺状,太小则细节消失,需要合理选择参数。选择合适的strength参数,将切向法线贴图与人脸法线贴图叠加后会形成丰富的细节[3],下表做了一个面部法线和效果的对比图。a为无高频细节叠加,b中叠加了切向法线的高频细节,可以看出叠加后的法线及成像效果变得不一样。表2 增加切向法线后的效果对比图

表2为增加切向法线后的效果对比图,a中的人脸表面为完全光滑的效果,完全无面部细节,看上去不自然;b中的人脸表面有微弱细节,符合日常生活中化妆后的效果。

(2)基础颜色

指的是高光本身的颜色。每个人的皮肤颜色不同,适合的高光颜色也有差异,因此有很多不同颜色的高光产品。常用的高光颜色有透明色、米白色、香槟色、粉紫色、橘色等[4]。基础颜色选择有两种方式,一种是统一使用一种颜色;另外一种是采用颜色贴图,这样可以在不同区域选择不同的颜色。

(3)粗糙度

粗糙度顾名思义代表了材质表面的光滑程度,越光滑粗糙度越低,反之粗糙度越高,其范围为0.0~1.0。粗糙度对基础高光的效果影响巨大,下面是对比图:表3 粗糙度对面部高光的影响。

从上表中可以看出,粗糙度越低,效果越尖锐,粗糙度越高,效果越柔和。通过设置不同的粗糙度可以获取不同的妆容效果,一些妆容会有明显的金属质感,西式彩妆会偏向这个方向,降低粗糙度可以获取类似效果;另外一些妆容亲和力强,比较温和,这个时候需要设计稍高的粗糙度。

3、亮片材质

通常美妆用的亮片表面光滑,采用金属镀膜的方式,细碎随机附着在面部,因此亮片本身的形态比较关键,而形态由法线决定。相较于基础材质,亮片材质的粗糙度一般设置为非常低,模拟光滑的金属面,颜色上也一样通过统一取色或者颜色贴图来实现,因此重点描述亮片的表面法线。

(1)表面法线

亮片材质的表面纹理和基础高光材质的表面纹理在形态上有很大区别,基础高光材质表面纹理是较为连续的起伏,亮片表面纹理形状为亮片断续堆叠而成,因此表征亮片表面纹理的法线会有显著的特征。亮片法线的核心在于制造出朝向差异的法线块,类似下图这种[5],附着在茶壶上显示出来的亮片,转动时会有相对自然的效果。

亮片法线与实际效果

上面的亮片法线贴图需要设计师耗费极大的耐心去绘制,考虑到制作成本和效果收益平衡的问题,我们采用了一种新型的亮片法线制作方法,使用专门的算法自动生成随机分布、大小、朝向的圆形亮片,层层堆叠起来形成错落有致的效果。

左侧为无亮片效果,右侧为采用了多层多尺度随机亮片后的效果,右侧的细节显得更为丰富,动态拍摄时显得更突出、闪亮。

四、光照光照对于整体效果非常重要,星河高光采用了三种光照,环境光照、平行光和点光源,每种光源都有其用途,环境光专门用于影响基础材质,平行光和点光源影响亮片材质,因此分两个子篇幅介绍:环境光照,平行光和点光源。

1、环境光照

环境光是场景周围存在的光,“在生活中,错综复杂的光线与凹凸不平的物体表面相互反射,使得整个环境都被照亮,仿佛被一层光均匀笼罩,这个光一般称为环境光。通过调节环境光,是调节环境整体光照最为直接的方式,也是一种有效表达环境气氛的方式。”[6]本文采用的环境光照通过贴图采样的方式获取,经过BRDF积分后显示出效果[7]。

在星河高光中,环境光作用于基础材质上,得到不同的效果。为了方便设计师切换颜色和效果,基础材质被认为是透明的,色泽主要来源于环境光。为了方便对比,先去掉亮片,下表对比了不同环境光贴图下的效果。

2、平行光和点光源

平行光是没有衰减的、平行的光线,通常用于模拟太阳光、探照灯、激光等效果。点光源的工作原理很像一个真实的灯泡,从灯泡的钨丝向四面八方发出光。然而,为了性能考虑,点光源被简化为从空间中的一个点均匀地向各个方向发射光[8]。相比于平行光和点光源,环境光虽然可以照亮基础材质高光,但是对于亮片材质则显得比较无力,无法产生闪烁的效果。环境光采用的是BRDF积分图,使用真实场景制作的环境光的积分图强度分布柔和,无法产生剧烈的亮度变化,这导致在光线反射过程中难以形成强烈的光照强度对比。平行光和点光源的差异在于,平行光默认无衰减,点光源有衰减;平行光的方向是固定的,点光源的照射方向取决于被照射物体和光源的相对位置。这里把平行光和点光源放一起的原因是两者都作用于亮片上,用于制造闪烁的效果,效果上点光源会更闪烁但是范围偏小。

从细节上可以看出,高光处有细小亮片,模特转动面部时亮片随着高光转动,层次更为丰富。

五、后处理

“所谓后处理(Post-processing),是指在正常渲染管线结束后,对最终渲染图像进行的后期加工,如滤镜等。以此来模拟物理摄像机和电影特效。”[9]。通常后处理有很多效果,比如bloom、散焦、抗锯齿等等,星河高光采用后处理的目的是为了做效果融合以及模拟散焦效果。

图6 亮片散焦效果在该图片中,部分区域清晰,另外一部分区域模糊,并且散焦为圆形。散焦算法在多处有描述,有采用Hexagon Bokeh算法[10]进行处理,也有采用神经渲染的方式[11],但是这些算法普遍性能消耗巨大,每个像素的卷积核采样点在100点以上,比如shadertoy上的Bokeh算法[12],采样点为150个,在手机上无法采用如此耗费性能的算法。为了提高性能,星河高光采用精简、优化后的算法,采样点降低了一个数量级;通过合理生成亮片法线块形状,减少了内存占用,进一步优化了性能。图14为后处理融合的效果对比。表6 采用后处理融合的效果对比。

总结及展望

星河高光基于目标效果,在分析和拆解实际高光效果后,试验了多种组合效果,最终形成了一个静态华丽、动态真实的高光效果。使用包含效果的魔法表情后,能自动上妆,秒级完成高光效果。目前效果已经上线“必扬特效平台->特效库->美妆->修容->星河高光”,采用的魔表有“完美高光”,“夏日阳光”等等,感兴趣的读者或者创作者可参考使用。未来我们将探索更自然丰富的3D美妆效果,提升算法效率,为更广大的用户带来自动上妆体验,化妆从此so easy。

参考文献

[1] https://mp.weixin.qq.com/s/8KJjRz6V37UVcs6oxqfxOg

[2] https://cpetry.github.io/NormalMap-Online/

[3] https://zhuanlan.zhihu.com/p/375764857

[4] https://m.maigoo.com/goomai/234145.html

[5] Flakes normal map https://docs.chaos.com/display/OSLShaders/Flakes+normal+map

[6] https://docs.cocos.com/creator/3.0/manual/zh/concepts/scene/ambient.html

[7] https://learnopengl-cn.github.io/07%20PBR/01%20Theory/

[8] https://docs.unrealengine.com/4.27/zh-CN/BuildingWorlds/LightingAndShadows/LightTypes/Point/

[9] https://zhuanlan.zhihu.com/p/245646670

[10] https://blog.csdn.net/weixin_41191739/article/details/10266481

[11] https://www.modb.pro/db/540612

[12] Bokeh disc https://www.shadertoy.com/view/4d2Xzw



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3