剖析Unreal Engine超真实人类的渲染技术Part 1 - 概述和皮肤渲染 (12)

剖析Unreal Engine超真实人类的渲染技术Part 1 - 概述和皮肤渲染

这部分跟基础色类似,通过4张不同动作状态的粗糙度贴图(Toksvig_mesoNormal,Toksvig_mesoNormal1,Toksvig_mesoNormal2,Toksvig_mesoNormal3)混合成初始粗糙度值。

2.4.3.2 基于微表面的粗糙度

剖析Unreal Engine超真实人类的渲染技术Part 1 - 概述和皮肤渲染

如上图,由Toksvig_mesoNormal的G通道加上基础粗糙度BaseRoughness,再进入材质函数MF_RoughnessRegionMult处理后输出结果。

其中,MF_RoughnessRegionMult的内部计算如下:

剖析Unreal Engine超真实人类的渲染技术Part 1 - 概述和皮肤渲染

简而言之,就是通过3张mask贴图(head_skin_mask4,T_siren_head_roughmask_02,T_siren_head_roughmask_01)的10个通道分别控制10个部位的粗糙度,并且每个部位的粗糙度提供了参数调节,使得每个部位在\([1.0, mask]\)之间插值。

2.4.3.3 粗糙度调整和边缘粗糙度

剖析Unreal Engine超真实人类的渲染技术Part 1 - 概述和皮肤渲染

上图所示,RoughnessVariation通过Mike_T_specular_neutral的R通道,在Rough0和Rough1之间做插值;EdgeRoughness则通过Fresnel节点加强了角色视角边缘的粗糙度;然后将它们和前俩小节的结果分别做相乘和相加。

2.4.3.4 微表面细节加强

剖析Unreal Engine超真实人类的渲染技术Part 1 - 概述和皮肤渲染

如上图,将纹理坐标做偏移后,采用微表面细节贴图skin_h,接着加强对比度,并将值控制在\([0.85, 1.0]\)之间,最后与上一小节的结果相乘,输出到粗糙度引脚。

其中微表面细节贴图skin_h见下:

剖析Unreal Engine超真实人类的渲染技术Part 1 - 概述和皮肤渲染

2.4.4 次表面散射(Opacity)

首先需要说明,当材质着色模型是Subsurface Profile时,材质引脚Opacity的作用不再是控制物体的透明度,而变成了控制次表面散射的系数。

剖析Unreal Engine超真实人类的渲染技术Part 1 - 概述和皮肤渲染

由贴图T_head_sss_ao_mask的G通道(下图)提供主要的次表面散射数据,将它们限定在[ThinScatter,ThickScatter]之间。

剖析Unreal Engine超真实人类的渲染技术Part 1 - 概述和皮肤渲染

次表面散射遮罩图。可见耳朵、鼻子最强,鼻子、嘴巴次之。

另外,通过贴图T_RGB_roughness_02的B、A通道分别控制上眼睑(UpperLidScatter)和眼皮(LidScatter)部位的次表面散射系数。

2.4.5 法线(Normal)

剖析Unreal Engine超真实人类的渲染技术Part 1 - 概述和皮肤渲染

与漫反射、粗糙度类似,法线的主要提供者也是由4张图控制。

此外,还提供了微观法线,以增加镜头很近时的皮肤细节。

剖析Unreal Engine超真实人类的渲染技术Part 1 - 概述和皮肤渲染

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyfffj.html