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

步骤二: 添加随机化与细节
现在基础形状已经完成,我们来添加一些噪点和细分,使水晶看起来更自然、更有机。
- 细分网格:
- 按下
Shift + A,搜索并添加Subdivide Mesh节点,将其放置在最后一个Dual Mesh节点之后。 - 设置
Subdivide Mesh节点的Level为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。 - 连接节点并设置参数:
- 将
Noise Texture节点的Color输出连接到Map Range (Vector)节点的Vector输入。 - 在
Noise Texture节点中,可以根据喜好调整以下参数,参考值为:Scale:1.000Detail:2.000Roughness:0.500Distortion:0.000(保持默认)
- 在
Map Range (Vector)节点中,设置:
- 将
- 添加 Set Position 节点: 按下
To Min(X, Y, Z) 全部设置为-1.000。- 将
Map Range (Vector)节点的Result输出连接到Vector Math (Scale)节点的第一个Vector输入。 - 设置
Vector Math (Scale)节点的Scale值为0.400(这个值控制噪点置换的强度,可以自由调整)。 - 将
Vector Math (Scale)节点的Vector输出连接到Set Position节点的Offset输入。

步骤三: 最终调整与材质设置
- 设置材质与平滑着色:
- 添加 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材质。
- 添加 Set Material 节点: 按下
- 暴露参数到修改器面板:
- 为了方便地调整水晶的各种属性而无需进入节点编辑器,我们可以将一些关键参数连接到
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),可以直接调整它们来改变水晶的形状和噪点。
- 为了方便地调整水晶的各种属性而无需进入节点编辑器,我们可以将一些关键参数连接到
- 添加倒角修改器 (可选):
- 为了让水晶的边缘不那么锐利,可以添加一个标准的倒角修改器。
- 在 修改器属性 (Modifier Properties) 面板中,点击 Add Modifier,选择
Bevel。 - 设置
Segments为2或3。 - 设置
Amount为一个较小的值,例如0.01m。

步骤四: 创建水晶材质
两种材质效果:一种是发光的风格化效果,另一种是更真实的玻璃效果。两种材质主要在 Cycles 渲染引擎下效果更佳。
材质1: 发光水晶 (Emissive Crystal)
这种材质利用菲涅尔效果控制发射强度,产生边缘发光、内部通透的效果。
- 确保渲染引擎设置为 Cycles。
- 选中水晶对象,切换到 着色 (Shading) 工作区。
- 在着色器编辑器中,你会看到之前创建的
Crystal材质,它默认包含一个Principled BSDF节点连接到Material Output。 - 设置 Principled BSDF 节点:
Roughness: 设置为0.250左右。Transmission: 设置为1.000(使其完全透明)。Transmission Roughness: 设置为0.250左右 (与Roughness类似,控制透射的模糊程度)。
- 添加控制发射的节点:
- Fresnel 节点: 按下
Shift + A,搜索并添加Fresnel节点。 - ColorRamp 节点: 按下
Shift + A,搜索并添加ColorRamp节点。 - Math 节点: 按下
Shift + A,搜索并添加Math节点,将其操作模式设置为Multiply。 - 连接节点:
- 将
Fresnel节点的Fac输出连接到ColorRamp节点的Fac输入。 - 将
ColorRamp节点的Color输出连接到Math (Multiply)节点的第一个Value输入。 - 将
Math (Multiply)节点的Value输出连接到Principled BSDF节点的Emission Strength输入。
- 将
- Fresnel 节点: 按下
- 调整参数:
Fresnel节点的IOR(折射率) 设置为2.000。- 调整
ColorRamp节点:- 你可以调整色标的位置和颜色来控制菲涅尔效果的过渡。通常,让靠近边缘的部分 (色标在右侧) 更亮。将左侧黑色标向右移动到约
0.333位置,右侧白色标保持在最右。
- 你可以调整色标的位置和颜色来控制菲涅尔效果的过渡。通常,让靠近边缘的部分 (色标在右侧) 更亮。将左侧黑色标向右移动到约
Math (Multiply)节点的第二个Value输入控制整体发射强度,可以根据场景需要调整,例如0.250到2.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)
这种材质使用标准的玻璃着色器,并通过菲涅尔效果混合不同的颜色,模拟光线在水晶内部的复杂折射和色散。
- 这种设置与上一个类似,但用
Glass BSDF替换Principled BSDF的大部分功能,并使用Mix Shader(或Mix RGB用于颜色) 来混合。 - 基础设置:
- Fresnel 节点:
IOR设置为2.000。 - ColorRamp 节点: 调整色标,例如左侧黑色标在
0.151附近。
- Fresnel 节点:
- 混合颜色:
- MixRGB 节点: 按下
Shift + A,搜索并添加MixRGB节点,模式设置为Mix。 - 将
ColorRamp节点的Color输出连接到MixRGB节点的Fac输入。 Color1和Color2可以设置为你希望水晶呈现的两种主要颜色,例如一种偏品红,一种偏青蓝。
- MixRGB 节点: 按下
- Glass BSDF 节点:
- 按下
Shift + A,搜索并添加Glass BSDF节点。 - 将
MixRGB节点的Color输出连接到Glass BSDF节点的Color输入。 Roughness: 设置为一个较小的值,例如0.400。IOR: 保持默认1.450或根据需要调整。
- 按下
- 将
Glass BSDF节点的BSDF输出连接到Material Output节点的Surface输入。
现在,你可以通过调整 ColorRamp 和 MixRGB 节点中的颜色来获得各种色彩斑斓的真实感水晶效果。

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