三维软件的材质球在绝大部分情况下,我们见到的都是固定纹理,意即不变化的,在经过一系列参数设置之后所表现出来的一个单一的图片,这是绝大部分的应用方向,不过在最近我似乎找到了可变纹理的多种实现途径。
变有多种变法,一是材质内部变化,二是材质球叠加变化,三是材质功能变化。
第一种,许多渲染器都内置了一些有关于材质变化的功能节点,例如阿诺德的【着色切换】。
内部变化提供了较为简单机械的功能切换,就是你在一个材质球内做好几个材质,然后使用这个节点来进行切换,这种使用方法较为简单,应用场景也不算广泛,但在做动画时这个节点还是很棒棒的。
第二种就是材质球叠加变化,这种方式较为高级,可能互联网上都没有普及此种文章,简单来说,就类似于PS里的图层通过不透明度进行叠加。例如第一个材质球为底色,第二个材质球只影响左边,第三个材质球只影响上边,用这种方式来实现更为复杂更为高级的材质调整。
这种叠加方式存在2个要点,第一是区域,第二是功能。所谓区域,就是你要影响哪些地方,这些都是通过alpha通过来实现的,你可以使用贴图,也可以使用程序化纹理来实现alpha通道。第二所谓的功能,就是你想要在这些区域做些什么事情,比如我想在一个石头上挖个洞,那么第一个材质球就可以做好石头材质,第二个材质球只做这个洞的凹凸,再通过alpha通道把第二个材质球限定在需要打洞的地方。
这种方式相当高级,可以说新增了无数种变化,我们都知道材质球的纹理是平铺在表面的,不论你是默认使用还是展UV,纹理始终能看出人为痕迹,并不显得怎么自然,要么太完美要么太假,在这种情况下,我们可以使用多个材质球去定义更多的细节,比如单独增加灰尘划痕,或者是在平铺的纹理上再来点纹理叠加,让无限平铺的纹理变得自然和谐而又真实,总之在各方各面都有非常强大的应用前景。
这种方式的问题就是这个alpha着色器如果产生变化,材质表现不会更新,需要手动强制更新一下。
第三种,材质功能变化,这个是靠功能节点来实现的,比如工具、正面比、穿过、UV切换、环境吸收、线框等等,这种变化其实从结果来看不太看的出来,不是特别明显,不过用起来却是相当好用。可以用来做一些虚幻的东西,或者是纹理的自然复杂性,比如可以让一个虚拟物体有一些不寻常的变化,又或者让一片山地上不规则的出现草地,都是很棒的应用方向。下面这3张图片就展示了我应用了阿诺德节点中【正面比】之后的效果,从不同的角度看是不同的纹理,正常角度看是混合纹理,低角度是草地纹理,高角度是岩石纹理。