ue实战065(在UE中表现丝袜材质)
ue实战065(在UE中表现丝袜材质)2 材质细节用菲涅尔作为Lerp节点的Alpha,输入A作为皮肤颜色,输入B设置为0,Metallic、Specular和Roughness也先给上参数,大概调节一下基本的丝袜效果已经出来了。在参阅了大量参考图后我们会发现,丝袜最明显的特征是面向视线的部分会比不面向视线的部分要更透,于是我们会立刻想到用菲涅尔来实现这个特点。个人习惯建材质蓝图的同时建好材质实例,参数直接在实例中调整看效果,避免每次调整数值后apply的等待时间。给Base color一个颜色参数作为丝袜的颜色,透出来的肤色经过尝试后发现通过自发光来表现比放在Base Color上更好一点,唯一的缺点就是无光环境下还会看到,但是纯无光这种极端情况一般是不会出现的。
哈喽各位LSP(Loving Shader People),今天我们来一起研究下丝袜材质。实现效果很简单,主要是带大家理一下解决问题的思路。
首先第一步,找参考,找资料(为了保证大家之后还能看到这篇文章,参考就不放了,大家自己找吧)。
丝袜中有个最常见的参数叫做Denier(丹尼尔)或D,它是纤维的纤度单位,表示的是每9000米纤维的重量(克),通常在丝袜上用来表示丝袜的厚度。D越高,丝袜越厚,越不透;D越低,丝袜越薄,越透。
1 基础材质
在参阅了大量参考图后我们会发现,丝袜最明显的特征是面向视线的部分会比不面向视线的部分要更透,于是我们会立刻想到用菲涅尔来实现这个特点。
个人习惯建材质蓝图的同时建好材质实例,参数直接在实例中调整看效果,避免每次调整数值后apply的等待时间。
给Base color一个颜色参数作为丝袜的颜色,透出来的肤色经过尝试后发现通过自发光来表现比放在Base Color上更好一点,唯一的缺点就是无光环境下还会看到,但是纯无光这种极端情况一般是不会出现的。
用菲涅尔作为Lerp节点的Alpha,输入A作为皮肤颜色,输入B设置为0,Metallic、Specular和Roughness也先给上参数,大概调节一下基本的丝袜效果已经出来了。
2 材质细节
下面我们开始加点细节,提高一下表现力。
首先当然是是丝袜的纤维纹理,仔细观察参考,我们可以看到,也许是由于穿的时候用力不均匀,薄一点的丝袜在腿上总会有一些不均匀的纹理,可以尝试表现一下。
表现这个效果用两张贴图可以搞定,一张正常的纤维纹理,再叠加一张噪点图。SD里3分钟搞定,顺带出个纤维纹理的Normal一会贴上试试效果。
两张图相加在一起作为Lerp节点的Alpha,输入A为前面的皮肤颜色,输入B为0。噪点我们控制的细一点,两个方向的重复度分开控制,再控制一下强度。
把纤维纹理的Normal也加上来增加点立体效果。这么小的纹理的Normal其实可有可无,大家可以看效果自行取舍。
调节一下两张贴图的Tilling,和噪点的强度,效果现在已经非常好了。在相机可以达到的对焦范围内基本上已经合格。
截图缩放后纤维纹理可能会产生摩尔纹,实际画面中基本上没有出现(下图建议点开大图放大看)。
再看参考,我们还会发现,在膝盖、脚踝这些有突出结构的地方,会使得丝袜撑得更薄,这部分的透出效果会更明显。
这个效果我们通过一张Mask贴图来实现,在SP(以后该改叫PT了...)里绘制Mask贴图,把关节突出的部分标示出来。这里为了演示效果,我们把Mask画大一点。
回到UE里,让新加的Mask与之前的菲涅尔相加。
这里节点我们做了一下调整,其实应该用菲涅尔的反相效果,前面图省事我们把后面Lerp的输入A和输入B做了调整省去了一个1-x节点,现在要加Mask了就还是调回来。记得菲涅尔加了1-x之后后面的Lerp的两个输入也要反过来。
Mask也加一个控制强度的参数。
可以看到这张Mask贴图能够非常好的增加丝袜的拉伸细节。
最终的表现效果基本OK了,通过调节参数我们可以实现不同D数,颜色,材质的丝袜效果。
如果要在项目中给美术小伙伴使用,可以删掉一些对效果影响不大的参数,方便他人调节。再极致一点可以尝试总结一下几个参数的变化规律,如果大致有相关性可以把它们整合成一个Denier参数,更直观地调节效果。不过这里我没有尝试,大家有兴趣的可以试一下。