引子:那个让我差点砸键盘的曲面
2023年秋天,我接了一个蓝牙音箱的工业设计单子。客户是深圳一家做高端音频的硬件公司,产品定位是“摆在客厅里能当雕塑看的音响”。需求很明确:形态要有机、流动、像被水冲刷过的鹅卵石,但表面还要有精确的声学开孔阵列,且必须能直接对接结构工程师做量产。
我当时的反应是:这不就是SubD(细分曲面建模)的活吗?Rhino 7的SubD功能已经相当成熟,理论上用“盒子建模”的思路拉出大形,再通过细分平滑就能得到漂亮的有机形态。结果,我用了整整三周,经历了三次推倒重来,才把这个项目交出去。这篇文章,就是那次项目的完整复盘——包括我踩过的每一个坑,以及背后关于NURBS和SubD底层逻辑的思考。

需求拆解与技术选型:为什么我选了SubD而不是NURBS?
客户给了一张手绘草图:一个扁平的、两端略微翘起的椭球体,侧面有渐变大小的圆孔。草图旁边写着“参考B&O Beoplay A9的调性,但更圆润”。
面对这种形态,传统的NURBS建模路线是:画四根空间曲线,用双轨扫掠或者网线曲面生成一张大面,再通过匹配曲面(MatchSrf)去调整连续性。但这条路有个致命问题——有机形态的局部起伏非常自由,NURBS的CV点(控制点)是网格状排布的,你要调整一个局部的隆起,必须牵动整排的控制点,修改成本极高。而且NURBS曲面在拼接处很难做到真正的G2(曲率连续),对于高光要求苛刻的消费电子品来说,这是硬伤。
SubD的逻辑则完全不同。它本质上是多边形网格的升级版:你从一个低模的“控制网格”(Control Mesh)开始,通过Catmull-Clark细分算法,把每个面切分成四个面,并让新顶点向邻域的平均位置靠拢。这个过程迭代几次后,低模的棱角就被“磨圆”了,得到一张光滑的极限曲面。关键优势在于:你只需要拖动低模上的几个顶点,就能直观地控制大形态,而且整个曲面天然是G2甚至G3连续的——因为细分极限曲面本身就是无限次平滑的结果。
⚠️ 技术判断:如果你的产品形态是“大曲率、自由流动、需要快速迭代”的,SubD是推荐。但如果你的形态是“规则几何、需要精确的尺寸约束、后续要开模具”,NURBS依然是更稳妥的选择。SubD不是替代NURBS,而是补充。
我最终的技术路线是:SubD做主体大形 → 转换为NURBS → 在NURBS上做精确开孔和倒角 → 导出STEP给结构。这个混合流程,既保留了有机形态的塑造效率,又满足了量产对精度的要求。
踩坑实录:SubD转NURBS时,我丢了半张面
第一个坑出现在第一次转换。我在Rhino里用SubD拉出了一个漂亮的扁椭球,看着很完美,直接执行了ToNURBS命令。结果弹出一个警告:“细分曲面转换为NURBS时,部分区域可能丢失细节。”我没当回事,转完之后一看,模型表面出现了几条明显的接缝,而且原来光滑的过渡区域变成了多个小面片拼接,高光直接断了。
为什么?这里要讲一下底层机制。Rhino的SubD转NURBS,并不是把极限曲面精确地参数化,而是把每个细分面片近似地拟合为一张NURBS面片。对于规则区域(比如一个标准的立方体细分后),拟合是精确的;但对于星点(Star Point)——也就是连接了超过四条边的顶点——周围的区域,拟合会产生误差,甚至需要把面片切碎。我的模型两端有多个星点,所以转换后出现了接缝。
解决方案有两个:一是调整拓扑,尽量让模型只包含四边形面,把星点推到不显眼的位置;二是干脆不转NURBS,直接在SubD上做后续操作,最后导出网格给结构做渲染,但结构工程师需要STEP格式,所以这条路走不通。我选择了前者:重新规划布线,把星点从侧面高光区移到了底部。

核心技术实操:用“引导曲线+SubD”做渐变开孔
主体形态搞定后,第二个难题来了:侧面的渐变开孔。客户要求孔洞从中心向边缘逐渐变小,而且孔壁要有一定的厚度,不能是简单的布尔运算破面。
常规做法是在NURBS曲面上投影曲线,然后布尔运算。但SubD转过来的NURBS面片是碎片的,投影曲线会跨越多个面片,布尔运算极易失败。我换了一个思路:用Grasshopper在SubD控制网格上直接生成孔洞的定位点,然后通过“细分→挤出→桥接”的方式手动构建孔洞拓扑。
具体步骤:
- 第一步:在SubD主体上,用
SubD Edge提取侧面的一圈边线,作为孔洞排列的参考路径。 - 第二步:在Grasshopper里用
Divide Curve把边线等分成N段,每段的中点作为孔洞的中心点。孔洞半径用Graph Mapper控制,从中心到边缘做线性衰减。 - 第三步:把中心点投影回SubD曲面,得到每个孔洞的精确位置。这里不能用
Project,因为SubD曲面不是NURBS,要用Pull Point把点吸附到SubD上。 - 第四步:在每个孔洞位置,用
SubD Face命令插入一个四边形面片,然后删除这个面片,形成孔洞。注意,孔洞的边数必须是偶数,否则细分后会出现奇怪的收缩。 - 第五步:选中孔洞的边线,用
SubD Extrude向内挤出,形成孔壁。挤出的深度要一致,否则孔壁厚度不均。
这个过程听起来机械,但实际操作中有一个关键参数:孔洞的边数。我一开始用了三角形孔洞,结果细分后孔洞收缩成了圆形,完全失去了设计感。后来改成六边形孔洞,细分后正好得到一个接近圆形的孔,而且边缘过渡非常自然。这是因为Catmull-Clark细分对三角形面片的处理是“趋向于三角形内切圆”,而六边形面片细分后更接近正圆。
💡 实战技巧:在SubD上开孔,尽量用偶数边的多边形(四边形、六边形、八边形)。奇数边(三角形、五边形)会导致细分后曲率突变,高光断裂。如果必须用三角形,把它放在平坦区域或者非视觉焦点处。
孔洞做完后,我用SubD Thicken给整个模型加了2mm的壁厚。这里有个细节:Thicken命令对星点区域也会产生不均匀的厚度,所以我在加厚之前,先用SubD Smooth把星点周围的网格松弛了一下,让厚度更均匀。
交付前的最后一公里:从SubD到量产数据
模型完成后,客户要求提供STEP格式用于CNC手板。我把SubD转成NURBS后,发现模型有超过2000张面片,结构工程师直接崩溃了——这么多面片,模具分型面根本没法做。
这里涉及一个行业常识:SubD转NURBS后,面片数量会爆炸式增长。一个低模只有几十个面的SubD,细分三次后就是几千个面,转成NURBS后每个面片又可能被切成多个NURBS面。对于结构设计来说,他们需要的是“尽可能少的、大块的、连续的曲面”。
我的解决方案是:用Rhino的FitSrf(拟合曲面)命令,把碎面重新拟合成一张或几张大的NURBS曲面。具体操作是:提取模型的关键截面曲线,用NetworkSrf重建一张干净的大面,然后把SubD的细节(比如孔洞)以“修剪”的方式做上去。这个过程相当于把SubD的“造型能力”和NURBS的“工程能力”做了最后一次解耦。
最终交付的模型,主体是4张NURBS面片,孔洞区域是修剪出来的,结构工程师拿到后只花了两天就完成了分型。客户看到手板的那一刻说:“这就是我想要的鹅卵石。”

复盘总结:SubD有机形态建模的五个关键认知
这个项目做完,我最大的感触是:SubD不是“更简单的NURBS”,而是一套完全不同的建模哲学。以下是五条我用血泪换来的认知:
- 拓扑决定一切。SubD的形态质量,90%取决于你的控制网格拓扑。四边形为主、星点远离高光区、边线走向顺应曲率方向——这三条是铁律。
- 细分级别不是越高越好。很多人喜欢一上来就细分到4级、5级,觉得越平滑越好。但高细分级别会让你失去对形态的直观控制,而且转NURBS后面片数量爆炸。我通常保持在2-3级,最终输出前再升到4级做一次平滑。
- 星点是双刃剑。星点让SubD可以自由地改变拓扑流向,但也是曲率突变的源头。能用四边形网格解决的,绝不用星点;必须用星点时,把它藏在底部、内侧或者被遮挡的区域。
- SubD和NURBS是互补的。不要试图用SubD做所有事。我的标准流程是:SubD塑形 → 转NURBS → 用NURBS做精确特征 → 必要时再转回SubD做局部调整。这个双向流程在Rhino 8里已经非常顺畅。
- Grasshopper是SubD的加速器。对于阵列、渐变、参数化开孔这类重复性操作,用GH驱动SubD控制网格的效率是手动操作的十倍以上。我现在的习惯是:大形手动拉,细节GH刷。
| 对比维度 | NURBS建模 | SubD建模 |
|---|---|---|
| 核心逻辑 | 控制点网格 + 数学曲面 | 低模控制网格 + 细分极限曲面 |
| 连续性 | 需手动匹配G0/G1/G2 | 天然G2以上连续 |
| 局部修改 | 牵一发动全身 | 拖动顶点即可,影响局部 |
| 精确尺寸 | 强,可直接标注 | 弱,需转NURBS后标注 |
| 适用场景 | 规则几何、工程件、模具 | 有机形态、概念设计、快速迭代 |
| 转工程数据 | 直接可用 | 需转换和优化 |
最后说一句掏心窝的话:SubD刚出来的时候,很多人觉得“NURBS要过时了”。但经过这个项目,我反而更清楚了两者的边界。SubD是设计师的画笔,NURBS是工程师的尺子。真正的高手,是知道什么时候该用画笔,什么时候该换尺子。
关于火星人教育
如果你也想掌握Rhino SubD这类前沿建模技术,并希望在有真实项目经验的导师带领下少走弯路,可以了解一下火星人教育。我们创办24年来,一直专注数字艺术与AIGC实战职业技能培训,开设的课程覆盖AI漫剧创作、AIGC视觉设计、UE5游戏特效、室内全屋定制、MAYA三维动画、C4D动态设计、工业设计、NUKE影视后期、摄影摄像实训等方向。在北京和深圳双校区开设线下面授班,面向美术生、在校大学生以及想转行的职场人群,用项目化实训的方式帮你夯实专业技能,真正实现就业和职业提升。想了解课程详情,可以拨打咨询电话:010-65918670。








评论(0)