Shader Graph11-Detail Normal Map(法线贴图叠加)

本次我们希望通过叠加两个法线贴图来增加细节。

一、准备资源

我们需要一个模型,1张纹理贴图,2张法线贴图

我们可以在商店下载,这个mesh资源来做这个例子

打开OldWest->VOL3->Meshes,找到SM_Blankets_01c这个布的模型,后面我会用到,找到布料的纹理图片并导出tga文件,右键->Assert Actions->Export,我们得到了布的纹理贴图。

 制作法线贴图,这里可以使用简易的PS制作法线的方法https://mp.csdn.net/mp_blog/creation/editor/129858101

 这个法线贴图我们名叫做TX_Blankets_01a_ALB_N.png

然后在网上找布料的纹理,我这里找的是最简单的平织法的布料纹理,然后转法线。

这个法线贴图我们叫做TX_Blankets_01a_ALB_Detail_N

这里注意一下将这个法线变成1024x1024尺寸。

 二、然后我们来写Shader,打开UE,创建Material叫做DemoDetailNormal。

核心的节点是BlendAngleCorretedNormals,Normal和Detail Normal是我们创建的法线贴图参数节点,改一下名称。在Detail Normal前面我们,我们对TexCoord进行了4倍的放大,因为我们的纹理是4096的大小,而我们的Detail布料纹理是1024的。另外一个我们在Normal节点后面的Lerp的作用是,可以通过参数控制法线的强度,是这两个参数Normla Intensity和Detail Normal Intensity。我们可以创建一个Constant然后转换为参数,这样我们就可以方便的调整法线强度了。

 

三、结果

法线没有的情况下

Normal设置为3的情况

 Normal和Detail Normla都为3的情况

四、Unity的版本

这里面我们用的核心节点是Normal Blend,然后新建Smooth、Metallic两个变量,方便在Material里面进行调整,与unreal里面一样还需要新建两个参数Normal Intensity和Detail Normal Intensity来控制法线的强度。

 效果

猜你喜欢

转载自blog.csdn.net/zhuziying99/article/details/130239591