Blender 教程: 轻松制作逼真的冰块模型与材质两种方法

欢迎来到本篇 Blender 教程!在本教程中,我们将学习如何在 Blender 中制作两种不同风格的逼真冰块模型,并为它们创建一个通用的冰块材质。无论你是 Blender 的初学者还是有一定经验的用户,都可以通过本教程掌握使用修改器进行程序化建模以及通过节点编辑器创建材质的基础技巧。
通过本教程,你将学到:
- 使用基础网格和修改器(Subdivision Surface, Bevel, Displace)进行建模。
- 利用程序化纹理(Clouds, Voronoi)为模型增加细节。
- 基础的材质节点搭建,包括 Noise Texture, Color Ramp, Bump 等节点的使用。
- 设置 HDRI 环境光照和 Cycles 渲染引擎的基础配置。
环境要求
- 软件: Blender 4.0 或更高版本。
- 硬件: 本教程在 MacBook Pro (M1芯片, 16GB RAM) 上演示,但适用于任何能运行 Blender 4.0 的 Windows, macOS 或 Linux 计算机。
- Blender 插件 (Add-on): Node Wrangler (节点查看器)。教程中会说明如何启用。
- 可选: 一个 HDRI 环境贴图文件。
步骤一: 准备工作与场景设置
- 打开 Blender,创建一个新文件。默认场景会包含一个立方体、一个光源和一个摄像机。
- 按下
A
键选中场景中的所有物体。 - 按下
X
键,在弹出的菜单中点击 Delete,删除所有默认物体。
步骤二: 制作第一种冰块 (ICE CUBE-1 - 程序化不规则冰块)
我们将首先制作一个表面不规则、更自然的冰块。
- 按下
Shift+A
快捷键,在弹出的添加菜单中选择Mesh
->Cube
,创建一个新的立方体。 - 选中立方体,在右侧的属性面板中,找到并点击 Modifier Properties (扳手图标)。
- 点击 Add Modifier 按钮,在列表中选择
Generate
->Subdivision Surface
。- 在
Subdivision Surface
修改器中,将类型从Catmull-Clark
改为Simple
。 - 将
Levels Viewport
和Render
的值都设置为3
。
- 在
- 再次点击 Add Modifier 按钮,选择
Generate
->Bevel
。保持默认设置即可 (Amount: 0.1m, Segments: 1, Affect: Edges)。 - 再次点击 Add Modifier 按钮,选择
Deform
->Displace
。- 重要: 在修改器堆栈中,通过拖拽
Displace
修改器最左侧的圆点手柄,将其移动到Bevel
修改器的 上方。 - 在
Displace
修改器的设置中,点击Texture
旁边的 New 按钮创建一个新纹理。 - 点击
Texture
属性右侧的 Show texture in texture tab 图标 (看起来像一个红白棋盘格),跳转到 Texture Properties 面板。 - 在
Texture Properties
面板中,将Type
从Image or Movie
改为Clouds
。 - 将
Clouds
纹理的Size
设置为0.33
。
- 重要: 在修改器堆栈中,通过拖拽
- 回到 Modifier Properties (扳手图标) 面板。
- 在
Displace
修改器中,将Strength
(强度) 设置为0.5
。
- 在
- 在3D视图中,右键点击冰块模型,选择
Shade Smooth
(平滑着色)。 - 再次点击 Add Modifier 按钮,选择
Generate
->Subdivision Surface
。- 将新添加的
Subdivision Surface
修改器的Levels Viewport
设置为2
(Render 通常也会默认为2)。
- 将新添加的
- 选中冰块模型,按下
F2
键 (Mac 用户请按Fn+F2
),在弹出的Object Name
输入框中,将其重命名为ICE CUBE-1
,然后按回车确认。 - 应用修改器: 为了使模型的形变固定下来,我们需要应用所有修改器。
- 在 Modifier Properties 面板中,将鼠标悬停在每一个修改器上 (从上到下顺序为:Subdivision, Displace, Bevel, Subdivision.001)。
- 对于每个修改器,点击其名称右侧的向下小箭头,在下拉菜单中选择 Apply。或者,Mac 用户可以按
Cmd+A
,PC 用户按Ctrl+A
(当鼠标悬停在修改器上时)。确保所有修改器都被应用。
- 选中
ICE CUBE-1
,按下H
键暂时隐藏它。

步骤三: 制作第二种冰块 (ICE CUBE-2 - 边缘平滑冰块)
接下来,我们制作一个边缘相对平滑,但表面仍有细节的冰块。
- 按下
Shift+A
,选择Mesh
->Cube
,创建第二个立方体。 - 选中新的立方体,按下
Tab
键进入 Edit Mode (编辑模式)。(Tab 键通常位于键盘左侧,Caps Lock 键上方)。 - 在编辑模式下,确保所有顶点都被选中 (如果没有,按
A
键全选)。右键点击模型,在弹出的菜单中选择Subdivide
。 - 操作完成后,3D视图左下角会出现一个名为 Subdivide 的小面板。点击展开它。
- 将
Number of Cuts
(切割次数) 设置为4
。
- 将
- 按下
Tab
键返回 Object Mode (物体模式)。 - 进入 Modifier Properties (扳手图标) 面板。
- 点击 Add Modifier,选择
Generate
->Bevel
。- 将
Amount
(数量) 设置为0.16 m
。 - 将
Segments
(段数) 设置为3
。
- 将
- 在3D视图中,右键点击模型,选择
Shade Smooth
。 - 点击 Add Modifier,选择
Deform
->Displace
。- 点击
Texture
旁边的 New 按钮。 - 点击 Show texture in texture tab 图标,进入 Texture Properties 面板。
- 将
Type
改为Voronoi
。 - 将
Voronoi
纹理的Intensity
(强度) 设置为0.22
。 - 将
Size
(大小) 设置为0.11
。
- 点击
- 回到 Modifier Properties 面板。
- 在
Displace
修改器中,将Midlevel
(中间值) 设置为0.119
。
- 在
- 点击 Add Modifier,选择
Generate
->Subdivision Surface
。- 将
Levels Viewport
设置为2
。
- 将
- 选中此冰块模型,按下
F2
键 (Mac 用户请按Fn+F2
),将其重命名为ICE CUBE-2
。 - 应用修改器: 按照与
ICE CUBE-1
相同的方式,按顺序应用ICE CUBE-2
上的所有修改器 (Bevel
,Displace
,Subdivision
)。 - 按下
Alt+H
(或 Mac 上的Option+H
) 取消隐藏所有物体,现在你应该能看到两个冰块了。

步骤四: 设置场景光照与渲染引擎
为了更好地预览材质效果,我们需要设置一下光照和渲染器。
- 在右侧属性面板中,点击 Render Properties (相机图标)。
- 将
Render Engine
(渲染引擎) 从Eevee
改为Cycles
。
- 将
- 切换到顶部菜单栏中的 Shading 工作区。
- 在 Shading 工作区的3D视图中,按下
Z
键,在弹出的饼状菜单中选择 Rendered (渲染模式),以便实时预览材质。 - 添加光源:
- 在3D视图中,按下
Shift+A
,选择Light
->Area
(区域光)。 - 按下
G
键然后按Z
键,向上移动区域光,使其位于冰块上方。 - 选中区域光,在右侧属性面板中,点击 Object Data Properties (灯泡图标)。
- 将
Power
(功率) 设置为500 W
。 - 按下
S
键然后输入5
,再按回车,将光源放大5倍。
- 在3D视图中,按下
- 设置 HDRI 环境光照:
- 在右侧属性面板中,点击 World Properties (地球图标)。
- 在
Surface
部分,点击Color
(颜色) 属性旁边的小黄点。 - 在弹出的菜单中选择
Environment Texture
(环境纹理)。 - 点击 Open 按钮,浏览并选择你的 HDRI 文件 (例如视频中使用的
peppermint_powerplant_4k.exr
,你可以在 Poly Haven 等网站免费下载 HDRI)。
- 设置背景透明 (可选): 如果你希望渲染时背景是透明的,只保留 HDRI 的光照效果:
- 回到 Render Properties (相机图标)。
- 展开
Film
(胶片) 部分。 - 勾选
Transparent
(透明) 复选框。
步骤五: 创建冰块材质 (ICE Material)
现在我们将为冰块创建材质。
- 启用 Node Wrangler 插件: 这是一个非常实用的节点编辑辅助插件。
- 点击 Blender 左上角的
Edit
->Preferences
。 - 在弹出的
Blender Preferences
窗口中,选择Add-ons
(插件) 选项卡。 - 在搜索框中输入
Node Wrangler
。 - 勾选
Node: Node Wrangler
旁边的复选框以启用它。关闭首选项窗口。
- 点击 Blender 左上角的
- 在 Shading 工作区,确保
ICE CUBE-1
被选中。 - 在底部的 Shader Editor (着色器编辑器) 窗口中,如果还没有材质,点击 New 按钮创建一个新材质。
- 将此材质命名为
ICE
(在材质名称输入框中修改)。 - 链接材质到第二个冰块:
- 首先选中
ICE CUBE-2
。 - 然后按住
Shift
键,再点击选中ICE CUBE-1
(确保ICE CUBE-1
是最后选中的,即活动对象,其轮廓线更亮)。 - 按下
Ctrl+L
(Mac 用户按Cmd+L
),在弹出的菜单中选择Link Materials
。现在两个冰块都使用了ICE
材质。
- 首先选中
- 搭建节点网络: 选中任一冰块,在 Shader Editor 中操作:此时,你的节点连接应该大致如下 (从左到右):你可以暂停视频在 5:35 处,仔细核对节点连接和参数。
- 添加基础纹理和映射:
- 按下
Shift+A
,在搜索框中输入Noise Texture
,选择并添加一个Noise Texture
(噪波纹理) 节点。 - 选中
Noise Texture
节点,按下Ctrl+T
(这是 Node Wrangler 的快捷键),会自动添加Texture Coordinate
(纹理坐标) 和Mapping
(映射) 节点。 - 选中
Mapping
节点,按下X
键将其删除。 - 将
Texture Coordinate
节点的Object
输出端口连接到Noise Texture
节点的Vector
输入端口。
- 按下
- 调整 Noise Texture (用于表面细节):
- 在
Noise Texture
节点中,设置Scale
(缩放) 为4.000
。 - 设置
Detail
(细节) 为15.000
。 - (保持
Roughness
为0.500
,Lacunarity
为2.000
,Distortion
为0.000
)
- 在
- 连接到 Principled BSDF:
- 默认情况下,你应该有一个
Principled BSDF
节点连接到Material Output
节点的Surface
输入。 - 将
Principled BSDF
节点的Base Color
(基础色) 设置为纯白色 (Hex:FFFFFF
)。 - 将
Transmission Weight
(透射权重,控制玻璃/透明效果) 设置为1.000
。 - 将
IOR
(折射率,冰的折射率约为1.309) 设置为1.309
。
- 默认情况下,你应该有一个
- 创建粗糙度 (Roughness):
- 按下
Shift+A
,添加一个Converter
->ColorRamp
(颜色渐变) 节点。 - 将
Noise Texture
节点的Fac
(因子) 输出连接到ColorRamp
节点的Fac
输入。 - 将
ColorRamp
节点的Color
(颜色) 输出连接到Principled BSDF
节点的Roughness
输入。 - 在
ColorRamp
节点中:- 选中右侧的白色色标,将其
Pos
(位置) 设置为0.766
。 - 选中左侧的黑色色标,将其
Pos
(位置) 设置为0.416
。 - 点击黑色色标下方的颜色条,将其颜色改为一个较浅的灰色,Hex 值为
#525252
。
- 选中右侧的白色色标,将其
- 按下
- 创建表面凹凸 (Bump - 细节):
- 按下
Shift+A
,添加一个Vector
->Bump
(凹凸) 节点。 - 选中我们刚刚为粗糙度设置的
ColorRamp
节点,按下Shift+D
复制一个新的ColorRamp
节点 (我们称之为ColorRamp_Bump_Fine
)。 - 将原始
Noise Texture
节点的Fac
输出连接到这个新的ColorRamp_Bump_Fine
节点的Fac
输入。 - 将
ColorRamp_Bump_Fine
节点的Color
输出连接到Bump
节点的Height
(高度) 输入。 - 在
ColorRamp_Bump_Fine
节点中:- 确保左侧色标的颜色是纯黑色 (Hex:
#000000
),位置0.416
。 - 确保右侧色标的颜色是灰色 (Hex:
#666666
),位置0.766
。
- 确保左侧色标的颜色是纯黑色 (Hex:
- 将
Bump
节点的Normal
输出连接到Principled BSDF
节点的Normal
输入。 - 将
Bump
节点的Strength
(强度) 设置为0.200
。
- 按下
- 创建表面凹凸 (Bump - 大块):
- 选中原始的
Noise Texture
节点,按下Shift+Ctrl+D
复制它以及其连接的Texture Coordinate
节点 (我们称之为Noise_Texture_Large
)。 - 在
Noise_Texture_Large
节点中:- 设置
Scale
为1.000
。 - 设置
Roughness
(粗糙度) 为0.800
。 - (保持
Detail
为15.000
)
- 设置
- 选中第一个
Bump
节点,按下Shift+D
复制一个新的Bump
节点 (我们称之为Bump_Large
)。 - 将
Bump_Large
节点放置在第一个Bump
节点和Principled BSDF
节点之间,形成链式连接:- 将
Noise_Texture_Large
节点的Fac
输出连接到Bump_Large
节点的Height
输入。 - 将第一个
Bump
节点的Normal
输出连接到Bump_Large
节点的Normal
输入 (注意是 Normal 输入,不是 Height)。 - 将
Bump_Large
节点的Normal
输出连接到Principled BSDF
节点的Normal
输入。
- 将
- 将
Bump_Large
节点的Strength
设置为0.060
。
- 选中原始的
- 添加基础纹理和映射:
Texture Coordinate
(Object
输出)- 连接到
Noise Texture
(Scale: 4, Detail: 15
) 的Vector
输入。 - 连接到
Noise_Texture_Large
(Scale: 1, Detail: 15, Roughness: 0.8
) 的Vector
输入。
- 连接到
Noise Texture
(Fac
输出)- 连接到
ColorRamp
(用于Roughness: Black#525252
@0.416
, White@0.766
) 的Fac
输入。 - 连接到
ColorRamp_Bump_Fine
(Black@0.416
, Grey#666666
@0.766
) 的Fac
输入。
- 连接到
ColorRamp
(用于Roughness) 的Color
输出连接到Principled BSDF
的Roughness
输入。ColorRamp_Bump_Fine
的Color
输出连接到第一个Bump
(Strength: 0.2
) 的Height
输入。Noise_Texture_Large
的Fac
输出连接到Bump_Large
(Strength: 0.06
) 的Height
输入。- 第一个
Bump
的Normal
输出连接到Bump_Large
的Normal
输入。 Bump_Large
的Normal
输出连接到Principled BSDF
的Normal
输入。Principled BSDF
(Base Color: White, Transmission: 1, IOR: 1.309
) 的BSDF
输出连接到Material Output
的Surface
输入。

总结
恭喜!你已经成功制作了两种不同风格的冰块模型,并为它们创建了一个可复用的冰块材质。我们学习了如何通过修改器进行非破坏性建模,如何使用程序化纹理增加模型的真实感,以及如何在 Cycles 渲染器中搭建一个基础但效果不错的PBR材质。
你可以尝试调整各种参数,比如 Noise Texture
的 Scale
和 Detail
,ColorRamp
的色标位置和颜色,以及 Bump
节点的强度,来创造出更多不同效果的冰块。
希望本教程对你有所帮助!