您需要 登录 才可以下载或查看,没有账号?注册
x
本期内容 今天我们将使用我们的 uv 随机变换节点来分解纹理平铺,所以我们在创建材质时要处理的一个大问题是纹理,需要近距离观察的大物体, 在很远的地方,我们需要多次重复我们的纹理贴图以获得足够的纹理分辨率关闭并覆盖整个对象,但是一遍又一遍地重复纹理看起来真的很不自然地形是一个很好的例子,这个问题变得非常明显一个解决方案是 为了使我们的纹理贴图更大,因此它们平铺的更少,但这只会占用大量的纹理内存,我们仍然有平铺,它只是更大的平铺,所以我们需要想出一个更有创意的解决方案
今天我将向您展示如何 使用我们的 uv 随机变换节点来分解纹理平铺我们将从看起来像这样可以看到很多纹理平铺重复的地方变成看起来像这样的平铺重复完全消失了,这个uv随机变换节点是我们技术的核心
我放入随机种子的任何值都会给我们一组随机变换偏移旋转和缩放,所以我正在使用该值 现在是 72所以我放入随机种子的任何值都会给我们一组随机变换,
我们有一张三通道的黑白图,每个通道黑白比例不同随机的噪波我们将它的黑白渐变取消利用Round,然后接入我们随机值
下面我们看下如何平铺我们的纹理,如果我们将纹理坐标乘以7那么我们的纹理就会平铺七次,特别是网格纹理平铺会非常明显我们不想这样
如果我们将面具应用到我们uv可以看见,黑色这里我没有得到任何变换,但是它是白色的,你可以看到我有这个交替变换,就像对角旋转这工作得很好,但是我在这里看到的一个问题是我仍然可以看到一些纹理平铺,因为你知道例如我有这个瓷砖,这个瓷砖等没有变化所以我们要做更多差异化区域
所以我在这里使用的这个纹理这个蒙版大部分只是黑色和白色它给了我两个很好的随机变换区域但我真正需要的是 要创建更多区域,为了做到这一点,我需要使用在黑白之间有更多渐变的纹理,在这里使用我的纹理,我有一个叫做失真的纹理,我在过去的视频中使用过,在这里添加一个乘法节点我要把它乘以我想要的区域数量得到更多区域
我们换一张明显的纹理
随着数值增加你甚至无法分辨出单独鹅卵石7级我认为是一个很好的效果,我已经很好地打破了纹理重复
接下来我将向您展示如何在程序上生成这样的六边形
所以在上周的视频结束时,我向您展示了我们如何使用这样的六边形网格图案来分解纹理平铺通常,当我们有一个想要添加纹理,会有很多平铺现象,我们最终会得到一个看起来像这样的图案,,你可以看到重复的图案,它确实会导致一个问题,使我们的场景看起来不那么逼真
所以我们用六角网格来随机偏移比例并旋转最终我们得到了这样的结果,其中每个图块随机偏移和旋转,然后与所有其他图块混合,因此我们在图块之间进行平滑过渡,并且每个图块都应用了稍微不同的随机变换,因此像这样的图案可以平铺永远看不到任何重复的平铺
首先我们先生成这种红绿蓝平铺图案然后在下周的视频中,我将向您展示如何将这种平铺与我们创建的 uv 随机变换节点一起使用
首先我们新建材质函数然后打开
嗯,在我们开始之前 01-我们需要引入我们的纹理坐标, 02-将坐标乘以12为了给我们一个合适大小的网格
03-我们将创建我们的红色绿色和蓝色棋盘格网格所以为了做到这一点,我需要做的第一件事是floor 节点,然后我将使用组件掩码拆分我的 u 和 v坐标,使用红色通道作为第一个,将绿色通道用于第二个,我要从 u 中减去 v,所以我将在此处添加减法注释,将红色插入 a 和绿色进入b
预览节点可以看到
04-嗯,好的,现在我们需要区分我们的方格,所以我要添加一个向量 3 按住 3 键并单击,我需要一个值 0 1 和 2。所以对于每个方格,我将添加零 红色通道一个到绿色通道,两个到蓝色通道,这只是为了帮助区分正方形并将它们分开一点我只是要预览
05-现在我需要做的下一件事是我们要在这里添加一个乘法节点,,然后我将做一除以三,然后我们将其插入到乘法中,然后我将预览这个节点
06-我们需要做的下一件事是添加1.6667,我们将添加它,现在我们需要获取结果的小数部分,所以我要添加一个 frac 节点,我们可以预览它
07-所以我们几乎到了最后一件事 需要做的是舍入,要么四舍五入为1要么为零,最终红绿蓝棋盘格非常酷,所以这是过程的第一步
第一步完整节点
第二步
01-我要延用这里的坐标,创建一个压制节点Frac
02-把它分成单独的通道,然后将这些加在一起,在添加一个减法节点给他一个硬编码值然后我将取这个的绝对值,我将只添加一个 abs 节点我要在这里添加一个附加节点,这样我就可以使它成为我的向量的第一部分
03-我要添加一个 swizzle 节点我们要把 x y变成只是 y x 反转它然后我们要在这里添加一个减号节点,反转结果现在我们需要添加一个 if 节点,因此我们的 a 值将是我们在此处减去 1 的结果,我们的 b 值将是 0,因此我们要说a 是否为 大于 b那么我们将在这里使用这个值,否则我们将在这里使用我们的 frac 的结果
然后附加起来
第二步,接下来我们需要做的是,从我们的红色绿色和蓝色网格从这里引入我们的值,所以我将从这里的圆形值中获取我得到的值并添加一个 拆分组件节点,因为我将在这里使用红色绿色和蓝色的所有三个组件,就像我们在Unity中所做的那样,我将采用我们创建的这个网格并创建它的三个不同版本,我们改变顺序我需要使用附加许多节点
从这些附加节点中,我将在这里做一个点积,结果是我在这里得出的结果,然后我将再次用第二个做一个点积
你可以 看到就像我们在Unity中所做的那样,我们得到了这个六角网格图案它是一种蜂窝形状
接下来第三步锐化 01-添加一个电源节点和我在这里插入我的硬编码值也就是强度控制 02-现在我需要将结果除以它的点积的值点积为1,把它插入到我们除法的 b 端口 03-数值6控制我们模糊程度
继续第四步
01-就是转动我们的瓷砖,使它们不成对角线
完整节点(下周制作的材质函数)
今天我们将制作一个无限平铺但从不重复的纹理,我们在过去的五周里一直在为这个教程做准备,我们要平铺纹理而不重复它
先介绍下最终节点:
01-我们有MF_UVRandom transform随机变换节点我们几个星期前制作的 02-然后我们有上个星期制作的六边形网格节点,今天我们拿这个并完成这个,我将它们作为我们的随机数传递给我们的 uv 随机变换 种子,因此每个图块都会获得不同的随机变化。然后将他们混合在一起
今天我们要创建网格Grdid1 2 3
我们在上周最终节点内制作
我们先来到第二步获取减法节点的结果并将其拖出,我们将添加一个新的 if 节点,这样 if 节点将允许我们根据特定行为进行分支
然后乘以stp1,然后创建一个拆分组件节点,调整组合我们的通道
我们继续在step1中的floor节点后,添加add节点到我们蓝色通道
最终函数节点
将我们制作好的函数带入到我们材质中使用
很棒,所以现在我有三个独立的uv 随机变换,我有三个独立的纹理样本,
我需要做的最后一件事是将我的样本混合在一起,所以我要在这里取出我的权重
我们将使用拆分组件节点将权重拆分为红色绿色和蓝色,然后我们将第一个纹理乘以红色我们将第二个纹理乘以绿色,我们是多重的,我们将第三个纹理乘以蓝色,然后我们所要做的就是将结果相加,所以我将把这个和这个相加,然后我会将结果添加到我的第三个现在我已经将我的纹理全部混合在一起,我可以将输出连接到我的基色,然后我们就可以了
现在我们有了无限平铺网格,这是一个很酷的技术,因为它允许您根据需要多次平铺它,它可以永远平铺,而且您根本看不到任何重复
Gridsize:调整网格大小(取决于你纹理内容可调节)
ScaleMin:纹理缩放最小到最大(实际我们不需要这样)(0.7,1.5)
我在讨论时所说的那样不适用于法线贴图,因为您无法旋转法线贴图,所以也许下周我们将,讨论需要发生的事情,以便在您想要的整个材质上使用相同的技术将这些相同的随机变换应用于您的漫反射纹理,您的法线纹理和您的蒙版纹理并且您想要正确处理该如何制作?后续讲解
视频版
|