本次我们希望通过叠加两个法线贴图来增加细节。
一、准备资源
我们需要一个模型,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的情况