跳到内容

Blender 3D:菜鸟到高手/纹理节点

来自 Wikibooks,开放世界开放书籍

纹理节点允许您生成由复杂计算产生的纹理。本教程将仅触及可能性的皮毛。

一个简单的“彩虹”纹理

[编辑 | 编辑源代码]

从一个新的 Blender 文档开始。删除默认的立方体。添加一个新的平面对象。在对象属性窗口的材质上下文,点击材质名称左侧的图标,将材质分配给平面(应该已经存在一个名为“Material”的默认未使用材质)。在纹理上下文,应该已经有一个名为“Tex”的纹理分配给了此材质。现在将显示 3D 视图的区域拆分为两个并排的区域。在右侧区域,调出节点编辑器。在它的区域标题中,您应该看到一组 3 个小图标位于菜单 旁边;点击中间那个图标,用于纹理节点。您将看到在区域标题更远的地方出现一个弹出菜单,其中包含在您的文档中创建的纹理的名称:这应该显示分配给平面对象材质的纹理的名称“Tex”。并且在它右侧,应该有一个标题为“使用节点”的复选框。选中它,您应该看到编辑器中立即出现一对初始节点:一个名为“Checker”的输入节点和一个名为“Output”的输出节点,其中包含一个可编辑字段,其中包含“Default”。

纹理定义中必须至少有一个输出节点;馈送到此节点的数据将构成最终的纹理。您在名称字段中分配的名称将显示在对象属性窗口的纹理上下文中的“Output:”标题的弹出菜单中,每个输出节点对应一个条目。最初这可能显示“未指定”:将其更改为“Default”。

Note:

节点编辑器中的导航:与大多数 Blender 窗口一样,您可以通过使用  MMB  拖动来滚动周围,并使用鼠标滚轮放大和缩小视图。

每个节点窗口在其左侧和右侧边缘都有小彩色圆圈(终端);左侧边缘的圆圈(如果有)是用于从其他节点馈送数据的输入,右侧边缘的圆圈(如果有)是用于向其他节点提供数据的输出。因此,输出节点没有输出(它们是数据的最终目的地),而输入节点没有输入。其他节点类型代表处理中的中间阶段,因此它们将同时具有输入和输出。

回到节点编辑器,点击“Checker”节点窗口的标题栏,并使用  X  DEL  删除它。注意,与在 3D 视图中删除对象不同,没有确认弹出窗口:节点会立即消失。(当然,您可以使用  CTRL + Z  以通常的方式撤消操作。)

现在转到“添加”菜单(或使用通常的  SHIFT + A  快捷键),找到“输入”子菜单,并选择“坐标”项。这将添加一个新的输入节点,它只是生成未修饰的纹理坐标作为其数据。新添加的节点将跟随鼠标移动;在将其移动到方便的位置后,按  LMB  一次。您将看到新节点有一个输出终端,标题为“坐标”。左键点击它,并拖到输出窗口中的包含单词“颜色”以及旁边一个小矩形颜色样本的输入终端。瞧!一条线(实际上是一根线)应该出现在连接两个终端的地方,您应该看到输出窗口中的大型方形颜色样本从黑色变为整个彩虹的颜色。这就是您的纹理!

如果您连接错误,您可以通过使用  LMB  将线的输出端从连接到的输入终端拖到另一个位置来移动或剪切它,要么拖到新的输入终端,要么拖到节点之间未占用的空间;当您松开按钮时,线将在前一种情况下连接到新的输入终端,或者在后一种情况下消失。

此时,您应该能够点击  F12  进行渲染,您将看到平面对象应用了彩虹纹理。您可以看到我选择平面对象的原因:因为它很平坦,整个纹理可以从一个相机角度看到。

标量与向量

[编辑 | 编辑源代码]

线在节点之间传递数字。这些数字可以是两种类型:标量是单个实数,例如“0.5”,而向量可以由序列中的两个、三个或四个标量组成,例如“(0.5, 0.75, 0.2, 1.0)”。向量中分量的数量也称为向量的维数。二维向量可用于表示纹理坐标,而三维向量可用于表示空间中的位置。颜色可以用 3 个维度(R、G、B 或 H、S、V)或 4 个维度(RGB 或 HSV 加 alpha 通道)来表示。

一些节点对标量进行操作,而另一些节点对向量进行操作。还有一些节点,其一些终端输入或输出标量,而另一些终端输入或输出向量。

试试这个。在上面的坐标和输出节点中,添加一个“分离 RGBA”节点(位于“添加”菜单的“颜色”子菜单下)。将坐标节点的输出馈送到分离节点的“颜色”输入节点。现在将分离节点的“红色”输出终端连接到输出节点(如果您将新创建的节点移动到现有线之上,这应该会自动发生)

看看输出样本如何仅显示从左侧的黑色到右侧的白色运行的灰度渐变?这表明向量的第一个维度如何解释为 RGB 颜色中的红色分量,但作为位置中的 X 坐标。删除红色终端的输出(删除现有线),并从绿色终端获取它(通过从绿色拖动一条新线到输出节点的颜色终端);现在您将看到渐变从底部的黑色到顶部的白色。向量的第二个维度是 RGB 颜色中的绿色分量,以及位置中的 Y 坐标。

终端有不同的颜色来提醒您它们应该用于什么类型的数据(坐标为紫色,颜色为黄色,标量为灰色),但是就 Blender 的节点编辑器而言,颜色和位置实际上不是不同的类型。两者都是向量,一个可以解释为另一个。这可以(被滥用)用于一些创造性的效果!例如,“分离 RGBA”节点的名称表明它是用于将 RGBA 颜色分离到其分量,但在这里我们正在使用它来拆分坐标向量。

另请注意,在上面的示例中,输出节点上的颜色终端期望一个 RGB 颜色向量,但是当您馈送它一个单一颜色分量(即标量)时,它只是简单地将其复制必要的次数以生成一个所需维度的向量。由于 RGB 颜色的所有分量都相同,因此您会得到一个灰色阴影。

华夏公益教科书