Blender 教程: 使用几何节点创建程序化水晶及材质

Blender 教程: 使用几何节点创建程序化水晶及材质

在本教程中,我们将学习如何使用 Blender 的几何节点 (Geometry Nodes) 创建一个程序化的水晶模型。这意味着你可以通过调整参数轻松生成各种不同形状和细节的水晶。此外,我们还将探讨如何为这些水晶创建两种不同风格的材质:一种是发光效果的风格化材质,另一种是更逼真的玻璃材质。

本教程适合对 Blender 有一定基础,并希望深入学习几何节点程序化建模以及 Cycles 渲染器材质应用的读者。

通过本教程,你将学到:

  • 使用基础几何体搭建程序化模型。
  • 理解并运用多个核心几何节点,如 Extrude Mesh, Scale Elements, Merge by Distance, Dual Mesh, Triangulate, Subdivide Mesh, Set Position, Noise Texture, Map Range 等。
  • 通过节点连接实现复杂的逻辑控制。
  • 将几何节点参数暴露到修改器面板,方便快速调整。
  • 在 Cycles 中创建程序化水晶材质,包括发光效果和真实玻璃效果。

准备工作

  • Blender 3.0 或更高版本 (视频中使用的是 Blender 3.3.0)。
  • 开启 Cycles 渲染引擎以获得最佳材质效果 (尤其是对于玻璃材质)。

步骤一: 创建水晶基础模型

我们将从一个简单的立方体开始,并利用几何节点将其塑造成水晶的基本形态。

  1. 打开 Blender,选择默认的立方体。
  2. 切换到 几何节点 (Geometry Nodes) 工作区。
  3. 在几何节点编辑器底部,点击 + New 按钮,为立方体创建一个新的几何节点树。默认情况下,你会看到一个 Group Input 节点和一个 Group Output 节点,它们之间通过一条绿色的 Geometry 线连接。
  4. 添加圆柱体作为基础形状:
    • 按下 Shift + A,在菜单中选择 Mesh Primitives -> Cylinder,添加一个圆柱体节点。
    • Cylinder 节点的 Mesh 输出连接到 Group Output 节点的 Geometry 输入,替换掉原有的立方体输入。现在场景中的立方体应该变成了一个圆柱体。
    • Cylinder 节点中,设置 Vertices (顶点数) 为 5。这将决定水晶的基本棱面数量,你可以根据喜好调整此数值 (例如 4、6 或更多),不同的顶点数会产生不同外观的水晶。
  5. 使圆柱体顶部和底部收缩成尖端:现在,圆柱体的顶部和底部面应该被挤出并缩放到了一个点,形成了类似双锥体的形状。
    • 添加 Extrude Mesh 节点: 按下 Shift + A,搜索并添加 Extrude Mesh 节点,将其放置在 CylinderGroup Output 节点之间。
    • 添加 Scale Elements 节点: 按下 Shift + A,搜索并添加 Scale Elements 节点,将其放置在 Extrude MeshGroup Output 节点之间。
    • 添加 Boolean Math 节点: 按下 Shift + A,搜索并添加 Boolean Math 节点。将其操作模式从默认的 And 更改为 Not
    • 连接节点:
      1. Cylinder 节点的 Side 输出 (这是一个布尔值,表示哪些面是侧面) 连接到 Boolean Math (Not) 节点的输入。
      2. Boolean Math (Not) 节点的 Boolean 输出连接到 Extrude Mesh 节点的 Selection 输入。这一步的目的是反转选择,使得 Extrude Mesh 只作用于圆柱体的顶部和底部面 (因为我们反转了对侧面的选择)。
      3. Extrude Mesh 节点中,取消勾选 Individual 复选框
      4. Extrude Mesh 节点的 Top 输出连接到 Scale Elements 节点的 Selection 输入。
      5. Scale Elements 节点的 Scale 值设置为 0
  6. 合并重叠顶点:
    • 由于上一步将多个顶点缩放到了同一个位置,我们需要合并这些重叠的顶点,以形成单一的尖端。
    • 按下 Shift + A,搜索并添加 Merge by Distance 节点,将其放置在 Scale ElementsGroup Output 节点之间。保持默认的 Distance 值即可。
  7. 创建水晶刻面效果:
    • 为了让水晶表面更具不规则的刻面感,我们将使用 Dual MeshTriangulate 节点的组合。
    • 添加第一个 Dual Mesh 节点: 按下 Shift + A,搜索并添加 Dual Mesh 节点,将其放置在 Merge by Distance 之后。
    • 添加 Triangulate 节点: 按下 Shift + A,搜索并添加 Triangulate 节点,将其放置在第一个 Dual Mesh 之后。
    • 添加第二个 Dual Mesh 节点: 按下 Shift + A,搜索并添加 Dual Mesh 节点,将其放置在 Triangulate 节点之后。
      • Dual Mesh 节点会将网格的顶点转换为面,面转换为顶点。通过两次 Dual Mesh 中间夹一个 Triangulate (将面三角化),可以有效地打乱原有规则的拓扑,形成类似水晶的随机刻面。

步骤二: 添加随机化与细节

现在基础形状已经完成,我们来添加一些噪点和细分,使水晶看起来更自然、更有机。

  1. 细分网格:
    • 按下 Shift + A,搜索并添加 Subdivide Mesh 节点,将其放置在最后一个 Dual Mesh 节点之后。
    • 设置 Subdivide Mesh 节点的 Level2。这将增加模型的面数,为后续的噪点置换提供足够的细节。
  2. 使用噪点进行置换:现在水晶表面应该出现了一些随机的起伏。
    • 添加 Set Position 节点: 按下 Shift + A,搜索并添加 Set Position 节点,将其放置在 Subdivide Mesh 之后。
    • 添加 Noise Texture 节点: 按下 Shift + A,搜索并添加 Noise Texture 节点。
    • 添加 Map Range 节点: 按下 Shift + A,搜索并添加 Map Range 节点。将其数据类型从 Float 更改为 Vector
    • 添加 Vector Math 节点: 按下 Shift + A,搜索并添加 Vector Math 节点。将其操作模式从 Add 更改为 Scale
    • 连接节点并设置参数:
      1. Noise Texture 节点的 Color 输出连接到 Map Range (Vector) 节点的 Vector 输入。
      2. Noise Texture 节点中,可以根据喜好调整以下参数,参考值为:
        • Scale: 1.000
        • Detail: 2.000
        • Roughness: 0.500
        • Distortion: 0.000 (保持默认)
      3. Map Range (Vector) 节点中,设置:
        • To Min (X, Y, Z) 全部设置为 -1.000
      1. Map Range (Vector) 节点的 Result 输出连接到 Vector Math (Scale) 节点的第一个 Vector 输入。
      2. 设置 Vector Math (Scale) 节点的 Scale 值为 0.400 (这个值控制噪点置换的强度,可以自由调整)。
      3. Vector Math (Scale) 节点的 Vector 输出连接到 Set Position 节点的 Offset 输入。

步骤三: 最终调整与材质设置

  1. 设置材质与平滑着色:
    • 添加 Set Material 节点: 按下 Shift + A,搜索并添加 Set Material 节点,将其放置在 Set Position 之后。
    • 添加 Set Shade Smooth 节点: 按下 Shift + A,搜索并添加 Set Shade Smooth 节点,将其放置在 Set Material 之后,并连接到 Group Output
    • 创建新材质: 在 Blender 右侧的 材质属性 (Material Properties) 选项卡中,点击 + New 按钮创建一个新材质,并将其命名为 Crystal
    • 回到几何节点编辑器,在 Set Material 节点中,从下拉菜单选择刚刚创建的 Crystal 材质。
  2. 暴露参数到修改器面板:
    • 为了方便地调整水晶的各种属性而无需进入节点编辑器,我们可以将一些关键参数连接到 Group Input 节点。
    • Cylinder 节点的 Depth 输入拖拽连接到 Group Input 节点上一个空的接口。
    • Cylinder 节点的 Radius 输入拖拽连接到 Group Input 节点上一个空的接口。
    • Extrude Mesh 节点的 Offset Scale 输入拖拽连接到 Group Input 节点上一个空的接口。
    • Noise Texture 节点的模式从 3D 更改为 4D。这会多出一个 W 输入,它相当于噪点的“种子”或相位,可以改变噪点的整体模式。
    • Noise Texture 节点的 W 输入拖拽连接到 Group Input 节点上一个空的接口。
    • 现在,在选中水晶对象后,右侧的 修改器属性 (Modifier Properties) 面板中,你会看到这些暴露出来的参数 (Depth, Radius, Offset Scale, W),可以直接调整它们来改变水晶的形状和噪点。
  3. 添加倒角修改器 (可选):
    • 为了让水晶的边缘不那么锐利,可以添加一个标准的倒角修改器。
    • 修改器属性 (Modifier Properties) 面板中,点击 Add Modifier,选择 Bevel
    • 设置 Segments23
    • 设置 Amount 为一个较小的值,例如 0.01m

步骤四: 创建水晶材质

两种材质效果:一种是发光的风格化效果,另一种是更真实的玻璃效果。两种材质主要在 Cycles 渲染引擎下效果更佳。

材质1: 发光水晶 (Emissive Crystal)

这种材质利用菲涅尔效果控制发射强度,产生边缘发光、内部通透的效果。

  1. 确保渲染引擎设置为 Cycles
  2. 选中水晶对象,切换到 着色 (Shading) 工作区。
  3. 在着色器编辑器中,你会看到之前创建的 Crystal 材质,它默认包含一个 Principled BSDF 节点连接到 Material Output
  4. 设置 Principled BSDF 节点:
    • Roughness: 设置为 0.250 左右。
    • Transmission: 设置为 1.000 (使其完全透明)。
    • Transmission Roughness: 设置为 0.250 左右 (与 Roughness 类似,控制透射的模糊程度)。
  5. 添加控制发射的节点:
    • Fresnel 节点: 按下 Shift + A,搜索并添加 Fresnel 节点。
    • ColorRamp 节点: 按下 Shift + A,搜索并添加 ColorRamp 节点。
    • Math 节点: 按下 Shift + A,搜索并添加 Math 节点,将其操作模式设置为 Multiply
    • 连接节点:
      1. Fresnel 节点的 Fac 输出连接到 ColorRamp 节点的 Fac 输入。
      2. ColorRamp 节点的 Color 输出连接到 Math (Multiply) 节点的第一个 Value 输入。
      3. Math (Multiply) 节点的 Value 输出连接到 Principled BSDF 节点的 Emission Strength 输入。
  6. 调整参数:
    • Fresnel 节点的 IOR (折射率) 设置为 2.000
    • 调整 ColorRamp 节点:
      • 你可以调整色标的位置和颜色来控制菲涅尔效果的过渡。通常,让靠近边缘的部分 (色标在右侧) 更亮。将左侧黑色标向右移动到约 0.333 位置,右侧白色标保持在最右。
    • Math (Multiply) 节点的第二个 Value 输入控制整体发射强度,可以根据场景需要调整,例如 0.2502.000 或更高。
    • Principled BSDF 节点的 Base Color 可以设置为水晶的基色,例如略带粉色的颜色 (R: 0.88, G: 0.23, B: 0.33 )。
    • Principled BSDF 节点的 Emission 颜色可以设置为发光的颜色,例如明亮的蓝色 (R: 0.03, G: 0.63, B: 1.00 )。

材质2: 真实感水晶 (Realistic Glass Crystal)

这种材质使用标准的玻璃着色器,并通过菲涅尔效果混合不同的颜色,模拟光线在水晶内部的复杂折射和色散。

  1. 这种设置与上一个类似,但用 Glass BSDF 替换 Principled BSDF 的大部分功能,并使用 Mix Shader (或 Mix RGB 用于颜色) 来混合。
  2. 基础设置:
    • Fresnel 节点: IOR 设置为 2.000
    • ColorRamp 节点: 调整色标,例如左侧黑色标在 0.151 附近。
  3. 混合颜色:
    • MixRGB 节点: 按下 Shift + A,搜索并添加 MixRGB 节点,模式设置为 Mix
    • ColorRamp 节点的 Color 输出连接到 MixRGB 节点的 Fac 输入。
    • Color1Color2 可以设置为你希望水晶呈现的两种主要颜色,例如一种偏品红,一种偏青蓝。
  4. Glass BSDF 节点:
    • 按下 Shift + A,搜索并添加 Glass BSDF 节点。
    • MixRGB 节点的 Color 输出连接到 Glass BSDF 节点的 Color 输入。
    • Roughness: 设置为一个较小的值,例如 0.400
    • IOR: 保持默认 1.450 或根据需要调整。
  5. Glass BSDF 节点的 BSDF 输出连接到 Material Output 节点的 Surface 输入。

现在,你可以通过调整 ColorRampMixRGB 节点中的颜色来获得各种色彩斑斓的真实感水晶效果。

总结

通过本教程,我们成功地使用 Blender 的几何节点创建了一个灵活可控的程序化水晶模型。我们还学习了如何为其添加两种不同风格的材质,以适应不同的渲染场景和艺术需求。你可以尝试调整几何节点树中的各个参数,以及材质节点中的颜色和数值,创造出属于你自己的独特水晶!

希望本教程对你有所帮助!