对于任何的3D建模而言,材质可以说是实现视觉效果最关键的一步,但并不是所有的材质都可以通过着色器自行生成,我们仍需要使用PBR(Physically Based Rendering,基于物理的渲染)材质,这些材质基本都源自真实场景中拍摄的照片,PBR材质的优点是真实性很强,并且可以调整颜色、糙度、凹凸、置换等细节,而且相对VRAY等方案来说计算强度更低,对于实时渲染而言是很好的选择对象。
但既然是源自真实世界的数字图像就一定存在边界问题,当我们想要在很大的物体上使用PBR材质时,就不可避免地需要在UV面板中进行缩放,这时候就会出现一个明显的问题:即便你下载了所谓的无缝材质,在这种大幅度缩放的情况下也会出现规律性重复,如图1所示,这无疑会大幅降低视觉真实性,相信很多设计师都已经遭遇过这样的情况。那么,这个问题有没有办法解决呢?
在动手前不妨先思考一下,之所以会出现规律的原因在于物体的UV是由一块块一模一样的材质所构成,所以方案A:让每一块材质都不一样,这个方案目前来看实现难度很大,不推荐。而方案B就是打破UV构成形式,让它不再像砌砖一样规规整整,这个方案显然难度要低很多,所以就从它入手吧!
第一步:使用沃罗诺伊纹理改变材质映射
材质的显示都是通过纹理坐标来进行映射,因此,当我们需要打破UV形式时,从映射方式入手再合适不过,而映射项目上可以看到“位置”和“旋转”项目,只要改变这两个项目就能实现材质UV的重构,不过,我们仍需要选择一种重构方式,其中沃罗诺伊纹理的颜色选项就是一个非常不错的方案,它的构成形态如图2所示,显然,当随机性设置为1时,完全没有规律性,用来作为UV重构图样很适合。
所以,我们需要用它来连接材质的映射位置和旋转选项,但直接连接会存在问题,因此需要为位置选项增加一个相乘和相加,以便于微调每一个重构分块的位置,而旋转选项则需要连接相乘和合并XYZ,并以Z连接,这是因为我们并不想它在每一个轴都旋转,那样会导致图案出现明显的拉伸,当然,这是因为我们的物体是平面对象,在针对立体对象时需要随机应变,灵活设置。
第二步:降低重构UV分区的边缘锐度
當完成上一步之后其实我们就可以看到材质已经看不到规律性重复,但又有了新的问题:沃罗诺伊纹理的边缘锐度很高,几乎没有柔和的过渡,这就会导致如图3所示的情况,材质细节上会有很明显的边缘切割,这对于同时需要大场景和细节展示的设计主题来说显然不可取,所以,我们还需要进一步设置着色器以修正这个问题。
既然是重构UV的边缘出现问题,就想办法柔和过渡吧。首先我们将原材质复制一组放到一边,并用混合着色器将它与我们此前做好的重构UV材质进行混合,这么做的目的是让原材质作为混合项,来为锐利的边缘做图像填充。
接下来复制一个沃罗诺伊纹理及其纹理坐标,将“F1”改为“到边缘的距离”,这里建议用值(明度)同时连接这两个沃罗诺伊纹理的缩放值,因为这两个值必须保持一致,然后使用一个相乘来连接新的沃罗诺伊纹理和混合着色器的系数,并适当调整相乘的数值。
这时候我们可以在原材质和原理化BSDF之间添加一个“色相/饱和度/明度”,并将“色相”增加到1,这样我们就能如图4那样清晰地看到两个材质如何进行混合,蓝色部分正好是UV重构的边缘,也就是原材质对UV重构材质进行混合的区域。通过图5可以看到,图3中锐利的边缘消失了,取而代之的就是我们想要的柔和过渡,而我们最终得到的物体纹理如图6所示,已经看不到规律性重复的印迹。
本期教程完全基于着色器,完全没有涉及建模,可见Blender的各个功能模块都有着很强的可玩性,值得大家去努力探索。从整个着色器来看应该也是本系列教程有史以来最复杂的一期,但实用性很高,对很多大场景的材质渲染可以起到关键作用。本文的核心观念就是利用纹理来打破UV的限制,在材质分辨率整体保持一致的情况下实现图案的重构,事实上这一思路还有很多的应用方向,未来有机会我们再为大家继续展开吧!