毛发系统是Blender里最容易被新手低估、也最容易劝退的模块之一。很多人学完基础建模、材质、灯光之后,一到角色毛发就卡住:粒子系统参数一大堆不知道从哪下手,毛发梳子工具刷出来的形状像杂草,渲染出来要么像塑料假发要么像一团棉花。我自己从最初用粒子系统硬怼,到后来逐步摸清几何节点毛发的工作流,中间踩过的坑足够写一本小册子。这篇内容就是把我这些年从零练到能独立完成角色毛发资产的路径完整拆出来,从最基础的毛发认知、工具选择、分阶段练习方法,到实际项目中的参数调优和渲染避坑,全部按可复现的步骤讲清楚。不管你是刚接触Blender毛发的新手,还是已经会用粒子系统但总觉得效果不对的中级用户,都能从这套练习路径里找到自己卡住的那一环。
1. 先搞清楚Blender里毛发到底有几套做法
很多人一上来就问"毛发怎么刷",但连Blender里有几套毛发方案都没分清,练了半天发现走的路根本不对。这一步必须先建立全局认知,否则后面所有练习都是白费。
1.1 粒子系统毛发:老牌方案的真实定位
粒子系统是Blender存在最久的毛发方案,在2.8之前的版本里几乎是唯一选择。它的核心逻辑是:在发射器网格表面生成大量粒子,每个粒子沿法线方向生长成一根毛发曲线,通过子级粒子增加密度,通过Children参数控制蓬松度。
这套方案到今天依然能用,而且有几个场景它反而更合适:
- 静态渲染为主的写实毛发:比如动物皮毛、地毯、草地这类不需要复杂造型梳理的场景,粒子系统配合Children的Clumping和Roughness参数,能快速出效果。
- 对性能敏感的大面积毛发:粒子系统在视口里的显示开销相对可控,几百万根毛发用简单显示模式还能拖动。
- 老项目兼容:很多教程和资产还是粒子系统做的,接手时需要能看懂。
但粒子系统的硬伤也很明显:造型能力弱。它的毛发形状主要靠纹理和参数控制,想梳出特定的发型走向、做出层次分明的刘海,非常吃力。而且粒子毛发在导出到其他软件时兼容性差,基本只能留在Blender里渲染。
我早期做角色头发就是死磕粒子系统,用顶点组权重去控制长度和密度,再叠加一堆纹理,结果做出来的头发永远像戴了个头盔,没有发丝的分组和穿插关系。后来才明白,粒子系统适合"铺量",不适合"造型"。
1.2 几何节点毛发:当前的主力工作流
从Blender 3.x开始,几何节点(Geometry Nodes)逐渐成为毛发制作的主力方案。它的思路和粒子系统完全不同:毛发本身就是真实的曲线几何体,每一根都是可编辑的Curve,你可以用节点对它们进行生成、变形、梳理、着色。
这套方案的优势:
- 造型自由度高:曲线可以像编辑普通曲线一样用雕刻工具梳理,发丝的走向、卷曲、分组都能精确控制。
- 非破坏性工作流:所有操作都是节点流程,改参数、换引导曲线都不影响原始数据。
- 导出兼容性好:曲线几何可以转成网格,导出到其他渲染器或游戏引擎时更灵活。
代价是学习曲线更陡。几何节点本身就是一个需要单独学习的系统,毛发只是它的一个应用方向。你得先理解节点的基础逻辑——属性传递、实例化、曲线操作——才能真正玩转毛发。
1.3 该从哪套开始练
我的建议很明确:新手直接从几何节点毛发入手,但先用最简单的节点组合跑通流程,不要一上来就啃复杂的节点树。
原因很简单:粒子系统是正在被逐步替代的方案,你现在花大量时间精通它,两年后可能用不上。而几何节点毛发是未来几年的主流,早学早受益。但直接啃复杂节点树又会劝退,所以路径应该是:
- 先用几何节点最基础的"在表面分布曲线"跑通一根毛发的生成
- 学会用梳理工具编辑曲线
- 再逐步加入分组、卷曲、动力学等高级控制
下面几章就按这个顺序展开。
2. 几何节点毛发的第一根发丝:从零跑通最小流程
这一章的目标很具体:让你在半小时内,从空场景做出一个能梳理、能渲染的毛发球。不要小看这个最小流程,它包含了毛发制作的所有核心概念,跑通之后剩下的只是加复杂度。
2.1 发射器网格的准备与法线检查
毛发必须生长在网格表面上,所以第一步是准备一个干净的发射器。用UV球或者你角色模型的头皮部分都行,但有几个细节必须检查:
- 法线方向:毛发沿法线生长,如果法线反了,毛发会往模型内部长。在编辑模式下按Shift+N重新计算外侧法线,或者打开面朝向显示确认。
- 网格密度:发射器网格太稀疏,毛发分布会不均匀。头皮区域建议至少细分到每平方厘米有足够的面。但也不要过密,否则分布计算会变慢。
- UV展开:虽然几何节点毛发不强制依赖UV,但后续如果要贴纹理控制密度、长度,有UV会方便很多。
我习惯在准备阶段就把发射器单独隔离出来,用一个简单的球体先测试,确认毛发方向和分布正常后,再换到角色头皮上。这样排查问题的时候变量最少。
2.2 用"在面上分布点"节点生成基础毛发
打开几何节点编辑器,新建节点树,核心节点链是这样的:
Group Input(输入网格) → Distribute Points on Faces(在面上分布点) → Instance on Points(在点上实例化) → Curve Line(曲线线段作为实例对象) → Group Output这里的关键理解:毛发本质上就是一根根短曲线。Curve Line节点生成的就是一根直线段,把它实例化到分布点上,就得到了最基础的"刺猬"效果。
几个必须调的参数:
- Distribute Points on Faces的Density:控制每单位面积分布多少根毛发。测试阶段先用较低值,比如100,确认流程通了再往上加。
- Curve Line的Start和End:Start固定在原点,End沿Z轴给一个长度值,比如0.1,这就是毛发的初始长度。
- Instance on Points的Rotation:默认实例会朝上,需要让它对齐表面法线。把法线属性接入Rotation,毛发才会沿法线方向生长。
跑通这一步,你应该能看到球体表面长出一层均匀的短刺。这就是毛发的"底胚",后面所有操作都是在这个基础上做造型。
2.3 让毛发有粗细变化:曲线半径与锥化
直愣愣的等粗线段看起来像针,真实毛发是从根部到尖端逐渐变细的。在Curve Line节点后面接一个Set Curve Radius,或者直接在Curve Line里设置半径,然后通过样条参数控制锥化。
更灵活的做法是用曲线插值:把Curve Line换成Curve Primitive Line,然后用Resample Curve增加分段,再通过Spline Parameter节点读取每根毛发上的位置(0到1),用Map Range把半径从根部的1映射到尖端的0.1。
这一步做完,毛发就有了基本的锥形。别小看这个细节,它直接决定了毛发看起来是"毛"还是"刺"。
2.4 梳理工具的启用与基本笔刷
几何节点毛发要能梳理,需要配合梳理模式(Sculpt Mode下的毛发笔刷)。但前提是毛发必须是可编辑的曲线,而不是实例化的静态几何。
这里有个关键转换:实例化的Curve Line是只读的,要梳理必须把它们"实体化"成真实的曲线几何。做法是在Instance on Points之后接一个Realize Instances节点,把实例转成真实几何。代价是性能下降,但梳理阶段必须这么做。
转成真实曲线后,选中毛发对象,进入Sculpt Mode,你会看到一组毛发笔刷:
- Comb(梳理):最常用,顺着鼠标方向推毛发,做出走向。
- Grow/Shrink(生长/收缩):调整毛发长度。
- Add/Delete(添加/删除):局部增减毛发密度。
- Pinch(收拢):把毛发往中心聚拢,做发束。
- Puff(蓬松):让毛发散开。
新手最容易犯的错是笔刷半径太大,一刷一大片全乱了。建议把半径调到能覆盖十几根毛发的范围,强度调低,一层一层刷。梳理是个慢活,急不得。
3. 从刺猬到发型:分阶段练习路径
跑通最小流程之后,不能一直停留在"球上长毛"的阶段。毛发制作的核心能力是造型,而造型能力需要按难度阶梯一步步练。这一章给出我实际用过的四阶段练习法,每个阶段都有明确的产出目标。
3.1 第一阶段:短发与寸头,练分布和方向
第一个练习目标:给一个球体做出均匀的短发效果,类似寸头。
这个阶段不追求造型复杂度,重点练两件事:
- 分布均匀性:通过Density和随机种子调整,让毛发在表面均匀分布,没有明显的稀疏区或堆积区。
- 方向一致性:所有毛发大致沿法线方向,但要有轻微的随机偏转,避免过于整齐像刷子。
具体操作:在Distribute Points on Faces后面接一个Random Value节点,输出一个小的旋转扰动,叠加到法线方向上。扰动幅度控制在5到10度之间,太大就乱了。
这个练习做三到五次,每次换不同的发射器形状(球体、圆柱、平面),直到你能闭着眼睛调出均匀的短发分布。这是所有毛发制作的地基。
3.2 第二阶段:中长发,练分组与层次
第二个练习目标:做出有分组、有层次的中长发,能看出明显的发束走向。
这个阶段的难点从"分布"转移到了"组织"。真实头发不是一根根独立的,而是成束的,束与束之间有穿插和覆盖关系。
练习方法:
- 先用低密度生成基础毛发,作为"底层"
- 复制一份节点组,提高密度但缩短长度,作为"填充层"
- 再复制一份,用更低的密度但更长的曲线,手动梳理成几束主要的"表层发束"
三层叠加之后,头发就有了体积感和层次感。这个思路在后续做复杂发型时会反复用到。
梳理表层发束时,用Comb笔刷顺着发流方向刷,然后用Pinch把每束收拢。注意发束的根部要稍微分开,尖端可以聚拢,这样看起来更自然。
3.3 第三阶段:卷发与波浪,练曲线变形
第三个练习目标:做出卷曲或波浪状的毛发。
直线毛发做卷,核心是给曲线加变形。有两种思路:
- 节点变形:在曲线生成后,用Set Position节点配合数学函数(正弦波)沿曲线位置偏移,形成波浪。适合规则波浪。
- 梳理变形:直接用卷曲笔刷(如果有)或者手动用Comb笔刷旋转着刷,做出不规则卷曲。适合自然卷发。
我建议先练节点变形,因为参数可控、可复现。用Spline Parameter读取曲线上的位置t,然后:
偏移量 = 振幅 × sin(频率 × t × 2π + 相位)把偏移量加到曲线的法线或副法线方向上,就能得到规则波浪。调整振幅控制卷曲程度,调整频率控制卷曲密度。
这个练习能让你真正理解曲线参数化的威力,后面做任何复杂变形都是这个思路的延伸。
3.4 第四阶段:完整角色发型,练综合调度
第四个练习目标:给一个完整的角色头部模型做出一个可用的发型,比如齐肩发、马尾或者短发造型。
这个阶段不再是单一技术点的练习,而是综合调度:
- 头皮区域用顶点组或纹理控制毛发分布范围
- 底层用高密度短毛发填充
- 中层用中等密度做体积
- 表层用手动梳理的发束做造型
- 边缘区域(发际线)要特别处理,让毛发自然过渡到皮肤
发际线是新手最容易露馅的地方。处理方法是:在发际线附近降低毛发密度,同时让毛发长度逐渐变短,形成一个过渡带。不要一刀切地让所有毛发从同一条线开始长。
这个阶段建议找参考图,最好是三视图,照着参考一点点调。做完一个完整发型,你对毛发系统的理解会有质的飞跃。
4. 参数调优与渲染避坑:那些教程不告诉你的细节
技术流程跑通之后,真正决定成品质量的是参数调优和渲染设置。这一章讲的全是我在实际项目里踩出来的经验,很多是文档里不会写的。
4.1 毛发密度与性能的平衡点
毛发密度是性能和效果的直接矛盾点。密度太低,毛发稀疏露头皮;密度太高,视口卡死、渲染爆内存。
我的经验值参考:
| 场景类型 | 建议密度(每单位面积) | 说明 |
|---|---|---|
| 测试阶段 | 50-100 | 只验证流程,不追求效果 |
| 短发/寸头 | 500-1000 | 短毛发需要高密度才不露底 |
| 中长发底层 | 300-500 | 底层填充,不需要太密 |
| 中长发表层 | 100-200 | 表层发束,靠造型不靠密度 |
| 特写镜头 | 2000以上 | 需要看到单根发丝细节 |
关键技巧:分层控制密度。不要用一个统一的密度值,而是底层密、表层疏。这样既保证了覆盖,又控制了总量。
另外,视口显示和最终渲染可以用不同的密度。在几何节点里用一个Switch节点,根据是否渲染切换密度值。视口用低密度保证流畅,渲染时自动切高密度。
4.2 毛发着色:从根部到尖端的颜色渐变
毛发颜色不是单一色,真实毛发从根部到尖端有明暗和色相变化。在几何节点里,用Spline Parameter读取曲线位置,映射到Color Ramp,再接入毛发的材质。
材质方面,毛发用Principled BSDF,但关键参数要调:
- Roughness:毛发不是光滑的,粗糙度建议0.4到0.6之间,太低像塑料。
- Specular:适当降低,毛发的高光比较柔和。
- Sheen:如果渲染器支持,加一点Sheen能模拟毛发的边缘散射。
更高级的做法是用多个Color Ramp叠加,根部深、中段亮、尖端浅,模拟光线穿透毛发的效果。这个在写实毛发里非常关键。
4.3 渲染时的毛发显示设置
渲染毛发时,有几个设置直接决定成败:
- 曲线细分:几何节点生成的曲线在渲染时需要足够的细分才平滑。在Curve to Mesh或者渲染设置里提高Resolution,但注意别太高,否则渲染时间爆炸。
- 毛发步进(Hair Steps):Cycles渲染器里有Hair Steps参数,控制光线在毛发上的反弹次数。太低会有噪点,太高渲染慢。一般8到16之间够用。
- 透明阴影:毛发材质如果有透明部分,必须开启透明阴影,否则阴影会是一块黑。
我遇到过最坑的问题是:视口里毛发正常,渲染出来毛发消失。排查下来是曲线细分设置和渲染可见性冲突。解决方法是检查几何节点里的Set Curve Radius和渲染分辨率是否匹配,以及对象属性里的Ray Visibility是否勾选了Camera。
4.4 毛发转网格:导出与后续处理
如果要把毛发导出到其他软件,或者做进一步建模,需要把曲线转成网格。用Curve to Mesh节点,给曲线一个圆形截面,就能得到管状毛发几何。
转网格的注意事项:
- 面数控制:每根毛发如果截面是8边形,一万根毛发就是八万面。导出前评估目标平台的面数限制。
- LOD策略:远景用低面数截面(4边形甚至3边形),近景用高面数。
- 法线处理:转网格后法线可能不对,需要重新计算。
这个转换在游戏资产制作里很常见,因为游戏引擎通常不直接支持Blender的曲线毛发。
5. 常见卡点与排查思路
练毛发的过程中,有几个问题几乎每个人都会遇到。这一章把这些问题和排查路径整理出来,遇到时按顺序检查。
5.1 毛发不显示或显示异常
症状:节点树连好了,但视口里看不到毛发,或者毛发显示成奇怪的样子。
排查顺序:
- 检查发射器是否有面:Distribute Points on Faces需要输入有面的网格,如果输入的是空物体或只有顶点的网格,不会生成点。
- 检查法线方向:法线反了毛发往内长,看起来像没有。按Shift+N重算。
- 检查实例对象:Instance on Points的Instance输入必须连接一个几何体,如果Curve Line没连上,实例就是空的。
- 检查视口显示模式:有些显示模式会隐藏毛发,切到实体或渲染预览看看。
- 检查密度值:Density如果设成0或者极小值,自然看不到。
5.2 梳理笔刷没反应
症状:进入Sculpt Mode,选了毛发笔刷,但刷上去没效果。
原因通常是毛发还是实例状态,没有Realize成真实几何。梳理工具只能作用于真实曲线,实例化的几何是只读的。
解决方法:在Instance on Points后面加Realize Instances节点。但要注意,Realize之后性能会下降,梳理完成后如果不需要再编辑,可以再转回实例或者用其他方式优化。
另一个可能:笔刷的半径或强度设成了0,或者笔刷被锁定。检查工具面板里的笔刷设置。
5.3 毛发渲染出来像塑料或棉花
这是着色和几何双重问题。塑料感通常来自:
- Roughness太低,高光太锐利
- 毛发太粗,单根看起来像塑料丝
- 颜色太饱和太均匀
棉花感通常来自:
- 毛发太细太密,糊成一团
- 缺少层次和分组,所有毛发一样长
- 着色太亮,缺少根部阴影
解决方向:调整毛发半径到合理范围(真实头发直径约0.05到0.1毫米,按场景比例换算),增加颜色渐变,做出分组层次。
5.4 性能卡顿与优化
毛发一多,Blender就卡。优化手段:
- 降低视口密度:用Switch节点区分视口和渲染密度
- 关闭不必要的修改器:梳理阶段关掉细分修改器
- 用代理显示:视口里用简单的线段显示毛发,渲染时才用完整几何
- 分区域处理:把头皮分成几个区域,分别处理,避免一次性计算全部毛发
我做大密度毛发时,习惯先把视口密度降到渲染的十分之一,梳理和调整都在低密度下做,最后渲染前再切高密度。这样交互流畅很多。
6. 把练习变成能力的几个习惯
技术点讲完了,最后分享几个我自己坚持下来、确实有效的练习习惯。这些不是具体操作,但决定了你能不能真正把毛发做起来。
6.1 每做完一个练习就存一个版本
毛发制作是迭代过程,经常调着调着发现还是之前某个版本好。养成习惯:每完成一个阶段性效果,就另存一个文件版本,命名清楚(比如hair_v1_short、hair_v2_layered)。这样随时可以回退,也方便对比不同参数的效果。
6.2 建立自己的参数预设库
调出一组好用的毛发参数后,把它保存成节点组或者资产,下次直接调用。比如"短发底层预设""卷发变形预设""发际线过渡预设"。积累多了,做新发型就是拼装预设,效率翻倍。
6.3 多看参考,但要看对参考
毛发参考不要只看最终效果图,要看分层结构图和发束走向图。很多游戏或影视的毛发制作花絮里会展示毛发的分层和引导线,这些比成品图有价值得多。看的时候重点分析:分了几层、每层的密度和长度关系、发束怎么分组、边缘怎么过渡。
6.4 定期回看自己的旧作品
每隔一两个月,回头看看自己之前做的毛发,你会发现很多当时觉得没问题的地方现在一眼就能看出毛病。这个反馈循环是进步最快的途径。我自己翻出半年前做的头发,经常惊讶于当时怎么能忍受那么假的效果——这说明审美和判断力在提升。
毛发制作没有捷径,但有路径。按上面这个顺序练下来,从最小流程到完整发型,从参数调优到渲染避坑,每一步都踩实了,你会发现曾经觉得高不可攀的写实毛发,其实只是一系列可拆解、可练习的具体技能的组合。我在实际项目里最深的体会是:毛发做得好不好,技术只占一半,另一半是对真实毛发结构的观察和理解。多观察真人头发在光下的表现,比多调十个参数管用。