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

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 环境贴图文件。

步骤一: 准备工作与场景设置

  1. 打开 Blender,创建一个新文件。默认场景会包含一个立方体、一个光源和一个摄像机。
  2. 按下 A 键选中场景中的所有物体。
  3. 按下 X 键,在弹出的菜单中点击 Delete,删除所有默认物体。

步骤二: 制作第一种冰块 (ICE CUBE-1 - 程序化不规则冰块)

我们将首先制作一个表面不规则、更自然的冰块。

  1. 按下 Shift+A 快捷键,在弹出的添加菜单中选择 Mesh -> Cube,创建一个新的立方体。
  2. 选中立方体,在右侧的属性面板中,找到并点击 Modifier Properties (扳手图标)。
  3. 点击 Add Modifier 按钮,在列表中选择 Generate -> Subdivision Surface
    • Subdivision Surface 修改器中,将类型从 Catmull-Clark 改为 Simple
    • Levels ViewportRender 的值都设置为 3
  4. 再次点击 Add Modifier 按钮,选择 Generate -> Bevel。保持默认设置即可 (Amount: 0.1m, Segments: 1, Affect: Edges)。
  5. 再次点击 Add Modifier 按钮,选择 Deform -> Displace
    • 重要: 在修改器堆栈中,通过拖拽 Displace 修改器最左侧的圆点手柄,将其移动到 Bevel 修改器的 上方
    • Displace 修改器的设置中,点击 Texture 旁边的 New 按钮创建一个新纹理。
    • 点击 Texture 属性右侧的 Show texture in texture tab 图标 (看起来像一个红白棋盘格),跳转到 Texture Properties 面板。
    • Texture Properties 面板中,将 TypeImage or Movie 改为 Clouds
    • Clouds 纹理的 Size 设置为 0.33
  6. 回到 Modifier Properties (扳手图标) 面板。
    • Displace 修改器中,将 Strength (强度) 设置为 0.5
  7. 在3D视图中,右键点击冰块模型,选择 Shade Smooth (平滑着色)。
  8. 再次点击 Add Modifier 按钮,选择 Generate -> Subdivision Surface
    • 将新添加的 Subdivision Surface 修改器的 Levels Viewport 设置为 2 (Render 通常也会默认为2)。
  9. 选中冰块模型,按下 F2 键 (Mac 用户请按 Fn+F2),在弹出的 Object Name 输入框中,将其重命名为 ICE CUBE-1,然后按回车确认。
  10. 应用修改器: 为了使模型的形变固定下来,我们需要应用所有修改器。
    • Modifier Properties 面板中,将鼠标悬停在每一个修改器上 (从上到下顺序为:Subdivision, Displace, Bevel, Subdivision.001)。
    • 对于每个修改器,点击其名称右侧的向下小箭头,在下拉菜单中选择 Apply。或者,Mac 用户可以按 Cmd+A,PC 用户按 Ctrl+A (当鼠标悬停在修改器上时)。确保所有修改器都被应用。
  11. 选中 ICE CUBE-1,按下 H 键暂时隐藏它。
Ice Cube 1

步骤三: 制作第二种冰块 (ICE CUBE-2 - 边缘平滑冰块)

接下来,我们制作一个边缘相对平滑,但表面仍有细节的冰块。

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

步骤四: 设置场景光照与渲染引擎

为了更好地预览材质效果,我们需要设置一下光照和渲染器。

  1. 在右侧属性面板中,点击 Render Properties (相机图标)。
    • Render Engine (渲染引擎) 从 Eevee 改为 Cycles
  2. 切换到顶部菜单栏中的 Shading 工作区。
  3. Shading 工作区的3D视图中,按下 Z 键,在弹出的饼状菜单中选择 Rendered (渲染模式),以便实时预览材质。
  4. 添加光源:
    • 在3D视图中,按下 Shift+A,选择 Light -> Area (区域光)。
    • 按下 G 键然后按 Z 键,向上移动区域光,使其位于冰块上方。
    • 选中区域光,在右侧属性面板中,点击 Object Data Properties (灯泡图标)。
    • Power (功率) 设置为 500 W
    • 按下 S 键然后输入 5,再按回车,将光源放大5倍。
  5. 设置 HDRI 环境光照:
    • 在右侧属性面板中,点击 World Properties (地球图标)。
    • Surface 部分,点击 Color (颜色) 属性旁边的小黄点。
    • 在弹出的菜单中选择 Environment Texture (环境纹理)。
    • 点击 Open 按钮,浏览并选择你的 HDRI 文件 (例如视频中使用的 peppermint_powerplant_4k.exr,你可以在 Poly Haven 等网站免费下载 HDRI)。
  6. 设置背景透明 (可选): 如果你希望渲染时背景是透明的,只保留 HDRI 的光照效果:
    • 回到 Render Properties (相机图标)。
    • 展开 Film (胶片) 部分。
    • 勾选 Transparent (透明) 复选框。

步骤五: 创建冰块材质 (ICE Material)

现在我们将为冰块创建材质。

  1. 启用 Node Wrangler 插件: 这是一个非常实用的节点编辑辅助插件。
    • 点击 Blender 左上角的 Edit -> Preferences
    • 在弹出的 Blender Preferences 窗口中,选择 Add-ons (插件) 选项卡。
    • 在搜索框中输入 Node Wrangler
    • 勾选 Node: Node Wrangler 旁边的复选框以启用它。关闭首选项窗口。
  2. Shading 工作区,确保 ICE CUBE-1 被选中。
  3. 在底部的 Shader Editor (着色器编辑器) 窗口中,如果还没有材质,点击 New 按钮创建一个新材质。
  4. 将此材质命名为 ICE (在材质名称输入框中修改)。
  5. 链接材质到第二个冰块:
    • 首先选中 ICE CUBE-2
    • 然后按住 Shift 键,再点击选中 ICE CUBE-1 (确保 ICE CUBE-1 是最后选中的,即活动对象,其轮廓线更亮)。
    • 按下 Ctrl+L (Mac 用户按 Cmd+L),在弹出的菜单中选择 Link Materials。现在两个冰块都使用了 ICE 材质。
  6. 搭建节点网络: 选中任一冰块,在 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
      • (保持 Roughness0.500, Lacunarity2.000, Distortion0.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
      • Bump 节点的 Normal 输出连接到 Principled BSDF 节点的 Normal 输入。
      • Bump 节点的 Strength (强度) 设置为 0.200
    • 创建表面凹凸 (Bump - 大块):
      • 选中原始的 Noise Texture 节点,按下 Shift+Ctrl+D 复制它以及其连接的 Texture Coordinate 节点 (我们称之为 Noise_Texture_Large)。
      • Noise_Texture_Large 节点中:
        • 设置 Scale1.000
        • 设置 Roughness (粗糙度) 为 0.800
        • (保持 Detail15.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
    1. Texture Coordinate (Object 输出)
      • 连接到 Noise Texture (Scale: 4, Detail: 15) 的 Vector 输入。
      • 连接到 Noise_Texture_Large (Scale: 1, Detail: 15, Roughness: 0.8) 的 Vector 输入。
    2. Noise Texture (Fac 输出)
      • 连接到 ColorRamp (用于Roughness: Black #525252@0.416, White@0.766) 的 Fac 输入。
      • 连接到 ColorRamp_Bump_Fine (Black@0.416, Grey #666666@0.766) 的 Fac 输入。
    3. ColorRamp (用于Roughness) 的 Color 输出连接到 Principled BSDFRoughness 输入。
    4. ColorRamp_Bump_FineColor 输出连接到第一个 Bump (Strength: 0.2) 的 Height 输入。
    5. Noise_Texture_LargeFac 输出连接到 Bump_Large (Strength: 0.06) 的 Height 输入。
    6. 第一个 BumpNormal 输出连接到 Bump_LargeNormal 输入。
    7. Bump_LargeNormal 输出连接到 Principled BSDFNormal 输入。
    8. Principled BSDF (Base Color: White, Transmission: 1, IOR: 1.309) 的 BSDF 输出连接到 Material OutputSurface 输入。

总结

恭喜!你已经成功制作了两种不同风格的冰块模型,并为它们创建了一个可复用的冰块材质。我们学习了如何通过修改器进行非破坏性建模,如何使用程序化纹理增加模型的真实感,以及如何在 Cycles 渲染器中搭建一个基础但效果不错的PBR材质。

你可以尝试调整各种参数,比如 Noise TextureScaleDetailColorRamp 的色标位置和颜色,以及 Bump 节点的强度,来创造出更多不同效果的冰块。

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