随机纹理解析

在贴图制作中,为了避免贴图重复感,我们在制作贴图的时候一般会尽可能在制作贴图的途中避免一些特征性的纹理, 但是在tiling次数多了之后, 还是很难避免重复的感觉, 这里我们通过shader来减少重复感。具体效果如下

随机纹理解析

上图分别是调整前和调整后,可以看到重复感有了较大的改善,原理很简单,我们通过UV 采样的时候使每个采样的偏移量做区分,然后混合。
首先我们先把原图tiling5次,为了方面观看,这里我用箭头贴图来表示

随机纹理解析

通过Frac节点,我们可以看到UV的呈现

随机纹理解析

接着,我们让箭头随机朝向,方法有很多,用随机函数,噪声贴图纹理等等,这里我们介绍用随机函数来做偏移,在这里我们用到了Custom节点,将得到的结果乘以2并通过floor阶段强制转换成黑白,将随机黑白纹理做mask,来给原有的UV和翻转后的UV做差值

随机纹理解析

现在可以看到tiling的箭头有了不一样的朝向,现在我们让它更加重复,再加一个custom,并传入不同的值,然后做mask,给目前的UV和反向的UV做差值

随机纹理解析

现在朝向更丰富了,当然,我们可以通过其他方式让朝向更随机, 接着我们让箭头随机做一些偏移,我们可以通过刚刚得到的随机值来做偏移,将两个随机值append到一起,然后同原有UV做加法。

随机纹理解析

可以看到现在tiling出来的贴图已经被打乱了,但是现在我们的图片中每个格子之间有一些白线,我们需要清除这些白线的效果,在这里我们将贴图mip模式改成如下设置

随机纹理解析

将UV分别赋予DDX和DDY,再传递到贴图对应属性中,可以发现,白线消失了

随机纹理解析

接着,我们需要更多的变化,并消除硬边,我们将UV的X轴偏移1,并重复上面的步骤

随机纹理解析

然后,我们将UV连接Frac,提取x轴做mask,将两张纹理进行混合

随机纹理解析

可以看到,消除了一半的硬边,接着,我们再复制两层,重复上面的步骤,偏移量分别给上(0,1)、(1,1),并混合

随机纹理解析

最后将两者lerp,差值为上文中提到的讲UV进行Frac后提取的Y轴

随机纹理解析

现在可以看到,硬边已经消失了,我们替换其他纹理看看

随机纹理解析

再看看默认tiling5次的纹理

随机纹理解析

中间的多次重复计算的区域,我们可以做成材质函数来代替,也方便优化,偏移的数值可以自行调整,做出更多不同的效果。

随机纹理解析:等您坐沙发呢!

发表评论

您必须 [ 登录 ] 才能发表留言!