简介:这是一份面向Blender初学者的甜甜圈制作教程,由Blender Guru经典视频教程整理而成,以PDF图文形式呈现,共1个文件,压缩包大小13.77MB。内容从环体基础建模入手,逐步讲解尺寸设定、衰减编辑下的非规则形变、平滑着色与表面细分,重点演示糖霜部分的复制分离、实体化修改器应用及垂落效果制作,穿插了透选、吸附、挤出等实用技巧,并对操作中常见的“移动连带整体”“顶点穿面”等问题给出解决思路。教程共74页,每一步都配有截图和快捷键标注,适合零基础用户跟随练习,也适合作为三维建模入门教学的辅助资料。目前已有1094人学习下载,资源虽小但步骤完整,能够帮助读者系统掌握Blender建模与修改器的核心用法。
1. 用Blender做甜甜圈:一个案例跑通建模到出图全流程
很多人找Blender使用教程,真正想要的是做出一件看得见、摸得着的三维物件——甜甜圈制作就是这类案例里性价比很高的一条路。它是初学者常见的第一道“完整流程训练”:不考验角色建模那样的造型功力,也不需要高强度雕刻,却能把多边形建模、修改器堆叠、材质着色、灯光渲染这一整套核心操作全走一遍。对新手来说,用一两天时间做出一颗能发朋友圈的甜甜圈,比背快捷键表更能建立手感;对熟手来说,这个案例又是测试新版本渲染器、调参数习惯的轻量试验场。
这篇笔记按底胚建模、材质与糖屑、灯光渲染、避坑排查、脚本进阶五个阶段展开。每个阶段都给出了可直接套用的参数和顺序,也会把那些“看起来玄学”的现象拆开讲。
2. 底胚建模:从圆环参数到糖霜下垂的挤出技巧
2.1 为什么甜甜圈案例适合当主线练习:拓扑简单、反馈直接
甜甜圈的基本体是环面,Blender里叫“环形圆环”(Torus)。环面这个基础形状天生就接近甜甜圈的轮廓,省去了从立方体拉伸、再清理多余边面的麻烦。Blender 4.x中直接按 Shift+A 添加网格里的“环形圆环”,两秒钟就得到一对大小半径可控的圆环体,这是建模案例里少见的“起点即接近成品”的情况。
但它又不至于简单到没有练习价值:挤出糖霜下垂边缘、用修改器平滑表面、给底胚加厚度,这三步恰好覆盖了 Blender 建模里最常用的“编辑模式选面”“衰减编辑”“修改器堆叠”三个技能点。很多想入门 Blender 建模案例的新手,第一次顺利跑完这四个小时,靠的就是甜甜圈这个恰到好处的复杂度——比立方体有趣,比角色头部轻松。
2.2 添加环形圆环并设置主半径与次半径:推荐参数表
打开 Blender,默认场景里有一个立方体。先删掉它:进入物体模式选中立方体,按 X 键删除。然后 Shift+A → 网格 → 环形圆环。此时 3D 视图左下角会出现一个“调整上一步操作”的折叠面板,里面可以精确改参数。别急着用鼠标拖拽,先把数值填好:
| 参数 | 推荐值 | 作用 |
|---|---|---|
| 主半径(Major Radius) | 1.2 | 甜甜圈外圈的大小,决定整体尺寸 |
| 次半径(Minor Radius) | 0.35 | 甜甜圈横截面的粗细,0.35 比较接近“胖嘟嘟”的烘焙感 |
| 主段数(Major Segments) | 48 | 环体绕一圈的段数,段数太低会看到明显棱边 |
| 次段数(Minor Segments) | 20 | 管体截面的分段数,保持 20 左右会让后续选面不卡 |
| 旋转(Rotation) | 0 | 保持默认即可,后续通过挤出解决问题 |
主半径控制外圈直径,次半径控制管的粗细。如果想让甜甜圈更扁一点,可以进入编辑模式后选中全部顶点,按 S 键,再按 Y 键输入 0.85,把 Y 轴方向压扁。这个比例决定了最终是“圆胖型”还是“偏扁型”,没有标准答案,只是提醒你:不要一开始就把次半径设到 0.5 以上,后面做糖霜时容易变得像游泳圈,视觉上“太壮”。
2.3 挤出糖霜下垂感:衰减编辑、快捷键与操作顺序
基础环体建好后,先别急着加细分曲面。这时候直接挤出糖霜是最容易控制的,因为顶点数量少,选择面、拖拽的反馈很直接。进入编辑模式的快捷键是 Tab;需要调整多个顶点一起动时,开启“衰减编辑”(快捷键 O)。衰减编辑是甜甜圈制作里最常用的工具:当你移动一个顶点或一块面时,周围顶点会跟着按“平滑”或“随机”的曲线一起动,这样挤出的边缘才不会像刀切一样生硬。
具体操作顺序我一般这样走。第一步保持全选,在衰减编辑开启的状态下按 E 键挤出,再按 S 键把整个挤出部分略微放大 1.05 倍,让糖霜覆盖区域比底胚大出一圈。第二步在“面选择”模式下,选中糖霜层外侧朝下的那几圈面,按 G 键再按 Z 键向下微移,产生几处自然的“滴落”或“堆叠”效果。第三步取消衰减编辑,选中个别面,Alt+E 选择“沿法线挤出”,把某几块往下拉得更低一点,模拟凝固前流动的糖浆。
| 功能 | 快捷键 | 备注 |
|---|---|---|
| 进入/退出编辑模式 | Tab | 物体模式与编辑模式来回切换 |
| 开启/关闭衰减编辑 | O | 移动前先按,否则周围顶点不动 |
| 挤出选区 | E | 出现“沿法线挤出”菜单用 Alt+E |
| 缩放选区 | S | 配合 Z 轴锁定方向,如 S、Z、0.85 |
| 随机选择面 | 选择菜单 → 选择随机 | 在顶部菜单中找,用于制造不均匀的自然感 |
每一步操作后最好看一眼左下角的“调整上一步操作”面板,快捷键拖拽出来的数值往往不够精准。例如下拉糖霜时,从面板里改“距离”为 -0.3 到 -0.6 之间,比凭手感乱拉更可控。
2.4 给底胚加厚度:Solidify 与 Subdivision 的堆叠顺序
很多人做完甜甜圈后,发现渲染出来像一张环形的纸片,就是因为漏了实体化修改器。底胚本质是表面网格,必须用 Solidify(实体化)修改器给它内外两层厚度,才有真实烘焙的体量感。选中物体,在“修改器属性”面板添加“实体化”,厚度设为 0.06 左右,勾选“双边”可以获得内外统一厚度,不会出现内侧比外侧薄的问题。
接着再添加“细分曲面”(Subdivision Surface)修改器,把“视口级别”设为 1,渲染级别设为 2,模型就会从棱角分明的多边形变得圆润。这里有个顺序坑:如果先加细分曲面再加实体化,实体化会沿着细分后的顶点法线方向生长,边缘厚度不均匀;正确做法是先实体化再细分曲面,这样内外两层都平滑,糖霜边缘也会圆顺很多。等形状满意后,别忘了 Ctrl+A 应用缩放,否则后续粒子系统的方向会被带偏。
3. 材质与着色:让糖霜告别塑料感的6个节点参数
3.1 理解 Principled BSDF 的核心滑杆:颜色、粗糙度、清漆
Blender 默认的“原理化 BSDF”材质球能覆盖绝大多数食品级材质。甜甜圈涉及两种质感的强烈对比:烘焙底胚是哑光粗糙的,糖霜是带有轻微光泽和油脂感的。很多人做得“假”,是因为只调了基础色,粗糙度和清漆权重完全没动。
底胚部分的材质建议这样设置:基础色用深褐色,常规做法是把 RGB 拉到 96、54、32 附近,模拟烤过之后的麦色;粗糙度设在 0.75 到 0.9 之间,烘焙食品表面并不是镜面反射,而是粗糙的漫反射。糖霜部分的基础色用奶白色或淡粉色,例如 RGB 242、205、207;粗糙度降到 0.35 到 0.5,让它有微弱反光但不至于像塑料;清漆权重增加 0.4 到 0.6,模拟表面那层薄薄的硬化糖衣。这里最容易被忽略的就是“清漆”,它能让糖霜看起来有一层透明硬壳,和底胚的哑光质地形成对比。
3.2 顶点绘制模拟烘烤焦色:把烤色画到模型上
底胚在烘焙时,接触烤盘和边缘的地方颜色较深,中间偏浅。这个细节靠单一材质球做不到,常见做法是使用“顶点绘制”。在 3D 视口右上角把模式切换为“顶点绘制”,选择深棕色,硬度调低,沿底胚下半部分和外侧弧线轻轻刷几笔。注意刷的时候不要覆盖全部区域,保留中心浅色。
刷完后进入“着色器编辑器”,在两个 Principled BSDF 节点中间加一个“顶点绘制”节点,把它的 Color 输出连接到基础色输入上。如果发现顶点色的色块感太强,可以加一个“混色”节点,把系数调整到 0.7 左右,混入一点原始基础色。这种方法比贴图快,且不需要 UV 展开就能直接看效果。但顶点绘制的精度受网格细分影响,如果切换到渲染模式后发现颜色块状感明显,就回到修改器把细分曲面的渲染级别临时调高到 3,烘焙时会平滑不少。
3.3 撒糖屑的正确姿势:用粒子系统而不是一个个摆
甜甜圈的糖屑数量动辄几百颗,手动摆放既不现实,也很难摆出随机感。Blender 的粒子系统就是为这类场景设计的:选中糖霜模型,在“粒子属性”面板点击加号新建粒子系统。发射源选“面”,数量给到 300 到 500,不要超过 800,否则渲染负担陡增,画面也容易被糖屑盖满。
为了让糖屑是立体的小圆柱而不是贴在表面的点,还要准备好一个糖屑物体。新建一个圆柱体,把半径设为 0.02,深度 0.05,然后回到粒子系统的“渲染”面板,把“渲染为”改成“对象”,在“实例物体”中选择圆柱体。关键参数有三个:物体缩放设为 0.02 到 0.04,避免糖屑太大;旋转改为“全局”并打开“随机”,让每根糖屑有自己的朝向;在“粒子编辑”中把“随机种子”换个值,就能快速改变分布结果。如果你想让糖屑有不同的颜色,需要预先给圆柱体创建几个不同颜色的材质,然后在粒子系统“渲染”面板打开“材质索引”随机,Blender 会从物体材质槽里随机挑选。
3.4 烘焙基础色贴图:有一个“后悔药”步骤建议提前做
当你把顶点绘制和着色器节点调整到满意状态后,建议做一次烘焙,把这套材质结果“固化”成一张基础色贴图。这不是必须步骤,但对后续调试灯光很重要——材质不动时,每次调灯都重新计算材质节点会拖慢预览速度。烘焙的操作是:先给物体新建一个“图像纹理”节点,尺寸设为 1024 或 2048,命名为 base_color;在“渲染属性”里把渲染器暂时切成 Cycles,然后找“烘焙”面板,类型选“基础色”,目标选“选中到活动物体”,点烘焙。等图像像素填充完毕后,把原材质节点断开,直接使用这张贴图。我习惯称这步为“后悔药”,因为如果后续改了灯光对不上效果,还能一键回到这个相对稳定的起点继续调。
4. 灯光与渲染:出图前必须调对的5个参数
4.1 Eevee 还是 Cycles:为什么渲染结果跟视口不一样
甜甜圈阶段会遇到一个经典问题:在视口里看着很精致,F12 渲染出来却像是另一个场景。这多半是因为视口用 Eevee 实时渲染,而最终输出切到了 Cycles。Eevee 是光栅化和屏幕空间反射,速度快但光线反弹不真实;Cycles 是物理光线追踪,慢但准确。对甜甜圈这种小场景,我建议前期用 Eevee 摆位置调构图,正式出图切 Cycles。
| 对比项 | Eevee | Cycles |
|---|---|---|
| 预览速度 | 实时,几乎无延迟 | 慢,受采样数影响明显 |
| 反射与全局光照 | 近似,依赖屏幕空间技巧 | 物理计算,阴影和反射更细腻 |
| 材质表现 | 清漆、次表面效果偏“平” | 更接近相机实拍效果 |
| 适合用途 | 调整模型、灯光位置和构图 | 最终成品输出 |
如果你用的是 Cycles,推荐采样 128 起步,开启降噪器(NVIDIA 显卡用 OptiX,普通 CPU 用 OpenImageDenoise),大多数甜甜圈场景 128 采样配合降噪已经足够干净。
4.2 用 HDRI 建立基础环境光:别让场景死在纯黑里
很多人新建场景后没加任何环境光,直接放一盏点灯就开始渲染,结果阴影生硬、糖霜发黑。简单有效的做法是在“世界属性”里加一张 HDRI 环境贴图,这类免费资源通常标着“studio”或“food”关键词,适合室内食品拍摄。把“环境纹理”节点加载 HDRI 后,强度先给到 0.4,不要一上来就 1.0,否则高光区会过曝。观察暗部,如果底胚侧面看不清轮廓,再慢慢加到 0.6 到 0.8。
在视口里按 Z 键切换到“渲染”模式(Rendered),就能实时看到 HDRI 对场景的影响。这个模式很吃显卡,但至少比一次次 F12 试错要快得多,算是调灯光阶段的必备姿势。
4.3 三点布光的具体数值:主光、辅光、轮廓光
HDRI 负责环境基调,布光负责把甜甜圈的立体感“抠”出来。最常见做法是三点布光:主光从右前上方 45 度位置打亮主体,辅光从左侧补暗部阴影,轮廓光从后上方勾勒边缘。在 Blender 里给每个灯设置固定数值:
| 灯光类型 | 强度 | 距离 | 位置 | 色温 |
|---|---|---|---|---|
| 主光(面积光) | 300W | 2.2m | 右前方,朝向甜甜圈 | 5500K |
| 辅光(面积光) | 150W | 2.8m | 左后方,补阴影 | 5200K |
| 轮廓光(聚光灯) | 500W | 2.5m | 正后上方,打轮廓 | 6000K |
面积光的阴影边缘天生柔和,适合表现食品的柔软质感。聚光灯只做轮廓照明,别让它直接照射正面。强度不要只靠灯自身的瓦数硬顶,如果画面过曝,优先把主光降到 200W,而不是去动辅光和轮廓光,否则暗部细节会立刻丢干净。这也是许多新手翻车的常见原因。
4.4 相机与构图:焦距、景深、输出规格
相机设置在“相机属性”面板里:焦距用 50mm 比较自然,想压缩背景、让甜甜圈占更大画幅可以用 85mm。勾选“景深”后,指定焦点物体为空物体,放在甜甜圈中心,光圈值调到 f/2.8 到 f/5.6。f/2.8 会带来明显的背景虚化,f/5.6 则保留更多环境细节,食品摄影一般选后者。输出规格放在“渲染属性”里:尺寸 1920×1080,采样 128,格式 PNG。颜色管理默认的 Filmic 可以保留,它比标准模式有更宽的动态范围,高光不容易死白。
5. 甜甜圈制作避坑指南:现象、原因与解决
5.1 挤出后的糖霜面变成黑块:法线方向问题
现象:在编辑模式里挤出糖霜后,材质预览出现大片黑色区域,渲染时某些面像被吞掉一样。原因:挤出时如果沿法线方向向内收缩,或者拖动顶点跨过中心,面朝内生长,Blender 会直接把它当作背面处理。解决:进入编辑模式按 A 全选,Shift+N 重算外侧法线;局部仍然黑的面,切换到面选择模式选中该面,Alt+N 选择“翻转”,再重算一次。判断是否修复,可以把材质临时改成纯白色,黑色区域一下就看出来了。
5.2 甜甜圈变了形,像一块被捏过的橡皮泥:缩放没应用
现象:明明按比例拉出了糖霜下垂感,继续挤出或加粒子系统时,变形方向完全不对,左右不对称。原因:物体模式下用 S 缩放后,没有把缩放应用到网格数据上,编辑模式里的轴仍然按缩放前的世界坐标计算。解决:返回物体模式,选中甜甜圈按 Ctrl+A,选择“全部变换”,把位置、旋转、缩放都应用掉。之后再进编辑模式,挤出的方向、粒子的发射方向就正常了。这个步骤如果漏掉,后面加“实体化”和“细分曲面”时还会出现厚度不均的问题。
5.3 粒子糖屑挤成一团或完全不显示:实例化方式错误
现象:糖屑粒子撒出来后,全部挤在模型的某个顶点区域,或者视口里一片空白。原因:发射器类型误选了“顶点”而不是“面”,粒子只从顶点出发;也可能是粒子系统渲染面板里没有指定实例物体,或者视口显示方式还是“点”。解决:在粒子系统“发射源”里把“顶点”改成“面”,并勾选“随机顺序”;在渲染面板把“渲染为”改为“对象”,“实例物体”选到小圆柱;在“视口显示”里把显示改为“物体”,避免预览不准。调完建议先 F12 渲染单帧验证,不要只盯着视口看。
5.4 删不掉“多余材质”导致糖屑变黑:材质槽索引错位
现象:给圆柱体做了六种糖屑颜色的材质后,粒子随机出来的只有两种颜色,其他糖屑全黑。原因:材质被直接删除时,物体材质槽里的索引没有同步清理,粒子系统按材质索引读取时落到空槽上。解决:不要用右键菜单里的删除,去“材质属性”面板选中每一个材质槽,点列表下方的减号图标逐槽移除;然后把需要的六个材质依次排好,并在粒子系统“渲染”面板打开“材质索引”的随机开关。给材质命名时养成带前缀的习惯,比如 Sprinkles_Red、Sprinkles_Blue,方便后期排查。
5.5 渲染出来噪点密集,糖霜高光位置全是彩噪
现象:Cycles 渲染后,糖霜的高光区域布满彩色颗粒,怎么采样都无法完全消除。原因:采样率不足,且最大光程反弹设置过高。粒子很多的小场景里,高光和边缘的反射路径数量少,光线反弹超过 12 次后大量路径计算用于了看不到的角落。解决:首选把“渲染属性 → 采样”提升到 128,并开启 OpenImageDenoise 或 OptiX 降噪;其次把光程里的“最大反弹”从默认 12 改成 4 到 6,对甜甜圈这种没有透明介质的场景,减少反弹能明显降低噪点而不损失画质。如果你只在 Eevee 下调过材质,切到 Cycles 时还应该重新检查糖霜的粗糙度,因为两个渲染器的粗糙度高光表现并不完全相同。
6. 进阶:用 Blender 脚本给糖屑随机批量配色
做到这里,甜甜圈的模型、材质和灯光基本已经完整。最后分享一个我实际在用的进阶技巧:当粒子系统里的糖屑使用同一个圆柱物体作为实例时,手动一个个换材质非常低效,而且颜色分布永远是“连续同色”。用一段 Python 脚本就能解决。
这段脚本会在当前 Blender 文件里查找名为 Sprinkles 的集合,遍历集合里的所有小圆柱物体,给每个物体随机旋转、随机缩放,并从预设颜色列表中随机挑一种颜色创建材质赋上去。这样糖屑的颜色分布会更有颗粒感,也更自然。
import bpy import random from math import radians # 指定糖屑集合名,粒子系统渲染面板里对应的集合名必须一致 coll = bpy.data.collections.get("Sprinkles") if coll is None: raise ValueError("找不到 Sprinkles 集合,请先确认粒子渲染为集合的指定名称") # 预设糖屑颜色,RGBA 范围 0-1 colors = [ (0.9, 0.2, 0.2, 1.0), # 红 (0.2, 0.5, 0.9, 1.0), # 蓝 (0.9, 0.8, 0.1, 1.0), # 黄 (0.1, 0.7, 0.3, 1.0), # 绿 (0.8, 0.4, 0.8, 1.0), # 紫 (1.0, 1.0, 1.0, 1.0), # 白 ] for i, obj in enumerate(coll.objects): # 随机旋转,让每根糖屑朝向不同 obj.rotation_euler = ( radians(random.uniform(0, 360)), radians(random.uniform(0, 360)), radians(random.uniform(0, 360)), ) # 随机缩放,打散整齐感 scale = random.uniform(0.8, 1.2) obj.scale = (scale, scale, scale) # 随机取一个颜色并创建材质 color = random.choice(colors) mat = bpy.data.materials.new(f"Sprinkle_{i}") mat.use_nodes = True bsdf = mat.node_tree.nodes.get("Principled BSDF") if bsdf: bsdf.inputs["Base Color"].default_value = color bsdf.inputs["Roughness"].default_value = random.uniform(0.3, 0.6) # 把材质指定到圆柱物体,保留顺序索引 if obj.data.materials: obj.data.materials[0] = mat else: obj.data.materials.append(mat)这段脚本里,集合名 Sprinkles 必须和粒子系统“渲染为集合”时填写的集合名完全一致,找不到集合会立刻报错,而不是静默失败。颜色列表可以按喜好扩充,脚本每次运行都会重新随机,所以多跑几次直到满意为止。把脚本粘贴到 Blender 的“文本编辑器”窗口,点“运行脚本”,然后切到着色或渲染模式看结果。
跑完脚本后,记得验证一遍三个位置:视口里糖屑是否浮空、粒子系统里随机种子是否固定、F12 渲染单帧确认没有全黑或全白颜色。如果发现糖屑嵌进糖霜内部,回到粒子系统把物体缩放下调到 0.015 左右即可。这也是我每做完一个阶段都会养成的习惯:先保存一个版本,再改下一处;靠 Ctrl+Z 找后悔药,不如靠文件版本号来得安心。希望帮到你。
本文还有配套的精品资源,点击获取