您需要 登录 才可以下载或查看,没有账号?注册
x
本期内容
如何将纹理添加到您的着色器中
因此如果我右键单击并键入示例,您可以在虚幻中看到我在此处获得了名为texture sample
然后在此处在设置面板上我可以选择我想使用的纹理,输入它我想要我的鹅卵石纹理。 所以我要选择那个,现在你可以看到我在采样器上得到了一点预览,然后我可以点击并从纹理样本的 rgb 端口拖动到我想要插入的根节点上的端口。现在你可以看到我的鹅卵石的漫反射纹理或基色纹理。
在unity中,我们有一个空的着色器,我可以按空格键调出创建节点菜单然后我将像在虚幻中一样输入示例,并选择示例纹理 2d 并创建一个 2d 纹理采样器
然后我将在此处单击这个小圆圈以选择我想要的纹理然后它会弹出这个窗口其中包含我的项目中的所有纹理。选择我们需要的鹅卵石纹理。
在这里看到鹅卵石预览,然后我可以抓住我的纹理样本的 rgba 输出并拖动一根电线并将其放到我的主堆栈上的基色输入插座上,这样你就可以添加新的纹理你也可以对其他贴图做同样事事情。
接下来我们讨论线性插值,所以有很多时候当你在做一个着色器时,您希望能够使用第三个值将两件事混合在一起,所以让我们看一下这个例子这里我有一个红色、这里我有一个蓝色然后这里我有一个静态值float,我想要做的是当这个值为 0 时我希望我的结果是红色的,当这个值是 1 时我希望我的结果是蓝色的,红框是lerp的内部运算。
所以如果我在这里添加两个浮点值0和1,(下图最下面float)我会让这个浮点为0得到看起来是黑色的。当这个值是1我会得到1看起来像白色,非常整洁。我可以混合颜色,我可以混合数字
我也可以混合纹理所以这里有一些,现在如果我将我的纹理样本2d放到lerp的A里,第二个放到lerp的B里,好了,现在我的值是1所以我在这里得到我的第二个纹理。如果我的值是零我在这里得到我的第一个纹理它是鹅卵石。所以如果我想在第一个和第二个之间混合纹理我可以给它 0.5。它是我的第二个纹理的一半和我的第一个纹理的一半。
好了,现在我们在unreal 5的材质编辑器中,如果我右键点击这里,寻找一个lerp节点
还可以使用纹理通道进行混合
去饱和这个节点的作用,是如果我把我的鹅卵石放在这儿。然后把它插入去饱和然后把它插入基色,现在你可以看到我得到了我的彩色鹅卵石纹理的黑白版。
我要把它插入 我的 lerp 的 b 插座,我会得到去饱和的版本如果我给它一个值零。我会得到彩色版本,所以你可以看到我在 a 中纹理的彩色版本和 b 中纹理的黑白版本之间进行混合所以我可以从全色变为无色如果我只是给它一个值
我谈到了将值保持在 0 和 1 之间的重要性,如果我是负的因为当我的值是1时我是黑色,当我的值为0时白色版本 我在全彩版还有什么比全彩更全彩的,负值会得到了一些更饱和的东西。能够使用lerp并且超出界限 lerp 是一个非常酷的使用。 通常你想保持你的价值观传递给 lerp 介于 0 和 1 之间但有时跳出这个范围会很有用。
今天我们要讨论点积节点,为了帮助你们更好地理解点积节点。首先我要给你们展示点积节点的数学运算。然后我会给你们举三个例子来说明它的用途。 我有法向量和视图,方向向量,我们把它们结合起来点积,我们得到了这个式子,点积节点的作用是什么
下面来看下一个例子,这组结点的作用和点积作用是一样的,我们要做的第一件事就是分割,把两个向量化成xy和z或者rg和b,最后结果相加到一起。
如果你按下unity的空格键着色器图形和输入点,然后你得到点积,你可以用它来执行点运算两个传入向量的乘积运算
我们进入虚幻看一下
我在球面处得到了这个结果,当表面看着我的时候是白色的,当表面垂直于相机它是黑暗的
让我们举例说明:
在第一个例子中,我有一个这是我一直使用的鹅卵石纹理,这里有一个向量3你可以看到这里有一个硬编码的值0.21, 0.71, 0.07这里还有一些数字是0.0722,我用这个神奇的数字和我的纹理做点积,这样我就得到了不饱和的质感而不是颜色。现在我有一个黑白图像,只是一个单一的通道浮动值而不是RGB,这个神奇的数字在做什么。 绿色通道的数值更高是因为你眼睛里,用来检测颜色的锥状感受器要多得多。对绿色比对红色或蓝色更敏感。当我们把纹理转换成灰度时,我们想把更多的权重放在绿色上而不是红色或蓝色上。
同样例子我们看下虚幻,然后用RGB做一个灰度值颜色值可以使用点积节点,然后点乘纹理和这个特定的数字0.2126、0.7152和0.0722然后我们代入把这个放到根结点上。你得到的是纹理的灰度值而不是颜色值,这是第一个例子我们可以使用点产品节点将RGB颜色转换为灰度。用这个神奇的数字好
这个例子有点像我们的灰度,转换我这里得到的是一个蒙版纹理,让我们来看看,在这个纹理的红 绿 蓝 A 单独的通道与不同规模的细节 他们想要的四个掩码中的哪一个在点积节点中,我把rgba代入点积,然后这里有一个值作为参数,现在值有一个红色的然后其他三个频道都是零,通过调整rgba通道数值,控制我们要使用的遮罩。用户在四个通道中任意一个输入1结果就是这个的通道
看看unity中的相同例子这是我们选择的通道例子,你可以看到我有相同的面具。不同的通道为了提供更多的面具选择,然后让用户选择他们想要使用的遮罩。
创建一个vector4值,然后调用这个蒙版。现在不管我给向量4取什么值,我允许用户选择我想用哪个输出通道
最后一个例子可能是,这是最常用的,但也是解释起来最复杂的 顶部有一个光源这里有一个平面代表模型的表面,在下面这里这是朝向光的方向(绿色箭头) 曲面法线向量模型表面方向(红色箭头)两个向量分别是光向量和表面向量, 如果我想知道这个表面有多亮,我要做的就是比较这两个向量的表面法线光矢量,观察它们之间的角度,90度,我知道这个表面应该是暗的。但是随着角度变小两个向量相互平行表面是亮的。(详见教程)
这是法向量这是曲面的方向,而不是使用光线向量 i 用的是视图向量摄像机指向的方向,所以我们要看的是模型的表面是否指向相机,我在比较摄像机向量和法向量。如果这两个向量是相互垂直的,我会得到一个较暗的表面,如果这两个向量彼此平行也就是说,模型的表面正对着相机我将得到一个更亮的表面,这是它在整体上的样子。(下图)
我们看看UE5
我用这四个节点来得到我的摄像机向量,减去物体的世界位置相机的位置,然后归一化结果和把它传递给点积,然后我用顶点法向量,当我做点视图向量和法向量的乘积我得到的结果是当模特面对着我的时候是明亮的,当它背对着我的时候是黑暗的从我的角度看,所以让我们把这个连接到根结点上 我们会看一下这些结果,你们可以看到我在这里得到了白色球面正对着摄像机。
我把这里的颜色弄暗了如果我想做一个变化。我可以在这里加一个1 -节点然后取倒数给我一个结果,在垂直的边缘是明亮的摄像机和中间的黑暗就这样,所以我们有一个值,中间有点暗,然后变亮朝向边缘,如果你说,嘿,这看起来有点像菲涅耳,你是对的,这就是用点计算菲涅耳的方法表面法线和视图之间的乘积,这个点积可以做出很酷的布料。
好了,让我们回顾一下今天在虚幻和unity两方面讲过的内容 点积节点,我给你们展示了它的数学运算,然后把结果加在一起 然后我给你们展示了三个例子如何使用点积节点第二次得到颜色的不饱和或灰度版本,作为一个频道选择器,选择四个不同的然后在纹理蒙版中 最后比较两个角度不同的向量,得到一个结果如果向量平行结果是白色和如果它们是垂直的结果是黑色的所以点积节点是一个非常有用的节点。
|