
至少有两种方法可以创建3D模型。 其中之一是最受欢迎的对象,其中包含许多多边形。 在另一个(
自由曲面建模 )中-由曲线(样条曲线)定义的
NURBS曲面。
每种方法都有其优点和缺点,在许多方面都类似于栅格和矢量2D图形之间的差异。 很多文章专门介绍了使用多边形建模软件的功能,但是就NURBS建模工具而言,我认为情况更加复杂。 这些文章中的大多数都是关于创建特定对象的教程,或者更多地面向软件创建者而不是其用户,并且包含诸如“权重,T点,n阶曲线”之类的术语。我将尝试中间。
从NURBS曲面创建对象用于精度在其中起着重要作用的区域-本身及其在编辑对象时的保存。 这对于在CNC机器上制造零件特别重要,这就是为什么这种方法广泛用于CAD的原因。
但是,精度不是拒绝多边形的唯一原因。 NURBS建模非常广泛地用于工业设计,建筑和珠宝。 如果查看著名的现代建筑,您会注意到它们是相互转换的组合-可以识别的几何图元,也可以是复杂的,在数学上明确定义的表面。 这同样适用于车身,家用电器以及各种戒指,项链(尤其是“有机”外观)等。
这些形式通常很容易辨认,并且归因于该软件用于NURBS建模的典型功能。 换句话说,设计往往更多地是由所使用软件的特性决定的,而不是设计师的想法。
在本文中,我希望以
Rhino 3D软件包为例,重点介绍此方法特有的一些功能和问题。
在这里,您必须立即撤退。 事实是,使用NURBS曲面也可能非常不同。
我们将考虑两种方式-标准Rhino功能和
T-Spline功能,这是Rhino的流行插件,并且实际上是编辑器中的编辑器-具有自己的表面/主体表示形式及其编辑方式。
首先,让我们看一下使用三种不同方法创建的一些原语。 接下来,我将它们称为“网格”(多边形),“犀牛”(Rhino NURBS)和“ tspline”(T样条NURBS)。 是的,Rhino中的多边形建模也是可能的,尽管形式非常简化。
这里描绘了三个圆柱体,球体,立方体,曲面。

当然,直接将一个与另一个进行比较并不是完全正确的-尤其是因为多边形的顶点和定义样条线的点远非同一件事。 但是,在这里可以清楚地看到一些有用的观点。
例如,在Rhino变体中,球体是一个弯曲的表面(线较粗-连接的位置)。
圆柱体-三个表面:扭曲的壁和两个圆形的“盖子”。
Rhino立方体有点类似于网格-它由六个平坦的表面组成(只是它们是平坦的事实只是一个特例-它们也可能是凹入的)。
T样条曲线版本中显然有一些奇怪的东西-圆柱体看起来像桶,而立方体看起来像球体。 如果仔细观察,该表面具有圆角。 实际上,似乎他们正试图用铁环拉起膨胀的球。 为了更接近所需的清晰格式,将需要更多的“圈”。 但是,我们将回到这一点。 您还可以注意到T样条没有接缝。
C网格是可以理解的-很明显,带有少量多边形的曲面不是很光滑。 当然,这不是新闻。 但是有了立方体,一切都很棒。
现在,让我们尝试通过拉弯角以类似的方式使所有对象变形:

反应明显不同。 网格物体的反应比所有物体都反应得最厉害,Rhino变得更懒惰且更具塑性,而且T样条通常是软体样品。
有一个一般性的想法,现在让我们继续具体。
犀牛的平坦表面
在Rhino中,您可以绘制一条曲线,并使用PlanarSrf,ExtrudeCrv,EdgeSrf命令(还有其他选项)之一来获取以某条曲线为边界的平面:

似乎结果(表格除外)在所有地方都是相同的。 但是,事实并非如此-在第一种情况下,PlanarSrf团队实际上只是拿走了矩形,并从矩形中隐藏了超出曲线的所有内容。 此过程称为修整。 在下面,您可以看到取消修剪的Untrim命令的结果:

这种差异非常重要,因为物体(以及其中的孔)通常由较大的裁剪表面组成,并具有相应的行为:

通常在对此类对象执行操作时,会在表面的接缝处出现问题。 例如,这是一个非常典型的情况,即在倒角过程中会形成孔(所谓的“裸边缘”以彩色突出显示):

再举一个例子:

要消除此类问题,您必须进行解围并手动创建新的曲线进行裁剪,然后对其进行拟合以进行接合,因为如果未正确接合它们,我们将无法获得实体(通过使用Join进行接合)。
为了避免不必要的工作,有必要事先仔细考虑将要做什么以及如何处理,因为当突然出现问题时,事实证明,问题已经退后了许多步,而回到该阶段已经是有问题的。
简而言之,在Rhino中没有简单的方法来编辑复杂的曲面及其主体。 这是使用Rhino的一个重大缺陷,而Rhino已部分修复在T-Spline中。
T样条中的平面
现在,让我们尝试在T样条曲线中绘制平面。 我必须马上说,使飞机由特定曲线定界就像在Rhino中一样简单-不能。 更确切地说,您可以这样做,但是它的拓扑是如此(糟糕),以至于您只能在某些特殊情况下使用它。

在第一种情况下,t样条对象是通过曲线的挤压形成的。 请注意,边缘是在曲线上有点的地方形成的(换句话说,并非所有看起来相似的曲线对于特定任务都将同样有用)。
另外,在中心存在一个孔的问题,该孔在下面。 在这里,孔只是简单地伪装了-它的大小为零(定义其边缘的所有点的坐标都重合),但是实际上这是非常糟糕的情况。 顺便说一句,还制作了上一张图片中提到的规则的样条曲线球体-实际上,它不是实体,在极点上有孔。 但是四分球虽然在拓扑上更接近立方体,但看起来像一个球体,而且更坚固。 因此,一切都是复杂而神秘的。
在第二种情况下,以线的框架为基础。 此方法使您可以很好地近似所需的形式,同时非常重要,它可以提供合理的拓扑(实际上,您可以完全自己指定)。 但是,即使在简单的情况下,线与生成的曲面之间的关系也并不明显。
第三种情况是Rhino的Loft的类似物。
在第四种情况下,立即使用tsPlane命令创建平面。 您可以水平和垂直设置面数。 以这样的飞机为基础,然后去除多余的部分并移动其余部分-您可以获得具有良好拓扑的相当复杂的图形:

回到漏洞的问题
有一个_tsFillHole命令可自动关闭它们。 但是,仅在某些非常简单的情况下(例如上图中的一个洞),她的工作结果很难预测并令人满意。
在大多数情况下,必须小心谨慎地封闭孔-通过使用tsWeld命令焊接相邻顶点,或通过使用_tsAppend命令在现有顶点之间创建边:

如您所见,如果您接近“正面”,那么在所有情况下结果都是糟糕的。 不仅拓扑没有实际应用,而且外部边界的形状也失真了。 而且,尽管所有这些都可以纠正,但是这里的错误恰恰是创建曲面的方式-在这里纠正比重新做起来更加困难。 对于这种情况,tsFromLines会更好(顺便说一句,它使人联想到一张著名的图片,上面有石蜘蛛和清醒的网):

Rhino的曲面和实体
实体(实体或封闭的多曲面)与一个表面(曲面)或多个连接的曲面(开放式多曲面)之间有什么区别? 看起来很奇怪,固体的外观可能与仅表面不同。 真正的区别是没有孔。 形成实体的所有表面必须紧密连接(连接),没有任何间隙。 在这种情况下,该对象将被视为封闭(而非开放)多曲面。 当然,存在公差的概念,可以通过设置更改公差,以便将清晰可见的间隙视为没有间隙。 但这已经是紧急情况,您不应该沿着这条路走。

弯曲表面可以与平坦表面相同的方式获得-通过弯曲曲线以及其他几种方式获得:

让我们举一个简单的例子-一个键帽。 这是Rhino出色的地方。 为了方便起见,我们将使用PictureFrame插入图片以立即查看尺寸,位置和尺寸大约为:

在这里,所有作为基础的东西都是标准的。 原始的平行六面体,挤压矩形,顶部带有圆形边缘。 结果,球体的减法(以获得凹陷)和所有随后的边缘倒圆正确地进行了。
现在,让我们采用一个更复杂的选项-手机并尝试毫不犹豫地描绘它(通常他们一开始会做,然后对工具感到失望)。
选项一,通过CreateSolid:

即 用曲线对轮廓进行圆形,通过拉伸将其变成曲面,然后使用CreateSolid命令创建受这些曲面的交点限制的实体。
似乎一开始一切都很好,最重要的是简单。 当我们想使管子变圆时,问题就开始了。
为此有一个圆角命令。 首先,要进行所需的四舍五入是相当困难的,但是甚至没有进行。 我们最初是这样做的-选择边缘和半径。 它起作用了,但是一方面可以看到一个明显的伪像(实际上它们更多,而其他的则不那么明显)。 经过仔细检查,结果发现在该位置表面不理想,但实际上已被弄皱。 因此,圆角工作不当。 奇怪,因为原始曲线在外观上非常平滑且整洁。 事实证明,这还远远不够!
问题的原因不同。 可能会发现,切割表面边缘所沿的曲线具有小环,扭结和其他魅力。
结果,在这里我们将被迫回滚,使该曲线重新生成/重新拟合,甚至再次重新创建主体。 由操作本身引起的问题会导致形成新的曲线和曲面。
也许您可以立即进行舍入? 好吧,你可以。 例如,使用Loft和NetworkSurf:

在这里,使用了一种不同的方法-多条曲线反映了人体多个部位的截面形状。 放样小组立即根据这些曲线构建了车身。 一切都会很好(当然,仅曲线需要更多,以使表面更准确),但是在端部存在孔的问题,这些孔很难正确闭合(在这种情况下,使用了Patch)。
一个更复杂的选择是NetworkSurf团队。

在这种情况下,曲线不是沿一个方向,而是沿两个或三个方向。 从理论上讲,一切都应该很好。 实际上,所有曲线都应以严格定义的方式相对放置-某个地方相交,某个地方不相交。 这些规则不是很明显(没有正式描述)。 因此,如本例所示,在曲线数量较少的情况下,团队通过了,但是更多了-不再。 而且,没有有意义的诊断-仅命令无法执行。 到底是什么错误很难找到。
当然,任何方法都不会排除将多个实体统一为一个实体,切断某些部分,进行变形等操作的可能性。但是最初提出的问题,在以后的阶段中很少成功地解决。
一般道德是这样的:在Rhino中,您可以创建一个复杂的整齐的身体。 但是90%的成功是在工作的开始就确定的-在选择对给定混凝土主体成功的方法以及创建主要曲线的阶段。 不愿意这样做是T-Spline产品出现的原因之一...
T样条曲线中的曲面和实体
T样条曲线的种类将更少。 原因是,与Rhino相比,修复已完成的操作更容易。 因此,采用某种图元并将其简单编辑为所需形状可能很方便。
与平面情况类似,您可以使用tsFromLines,而不是在平面中而是在3d中设置线网格。 虽然,这比2D情况还要复杂。
在某些情况下,先制作某种Rhino曲面,甚至导入一个Mesh,然后将其转换为T样条线,然后再对其进行编辑,会很方便。 但这仅在相当简单的情况下才有可能。 此外,在这种情况下,您无法影响最终的拓扑,并且进一步编辑的前景直接取决于此。
例如,考虑在T-Spline中创建相同的手机。 使用Box原语并对其进行编辑:

首先,使用折弯弯曲。 下一个合乎逻辑的想法是,将其中间部分变形(如划掉的图片所示),但我必须立即说这是一个坏主意。 在这种特殊情况下,它将无法进行精确的平滑弯曲。 因此,让我们以不同的方式进行操作-首先删除一些面,然后使用tsAppend封闭孔。
您可能会注意到,此特定管是对称对象。 通过与tsSymmetry团队指出T样条,可以大大简化我们的工作。 有两种方法:如果我们已经有一个对称的对象,则可以指定对称轴(不是我们的情况,因为管看上去只是对称的-对于T样条曲线,两半仍会略有不同)。 或创建一个对称对象。 为此,删除一半的试管,并指示对称平面沿去除线穿过。 从现在开始,在另一半上的所有动作将反映在另一半上(请参见第三张图片):

顺便说一下,请注意,在此过程中,某些地方多余的边缘已被去除。 它们越小,就越容易形成光滑均匀的表面。 另一方面,边缘越多,可以进行的细节越多。 在此过程中,然后根据情况将正确位置的肋骨移除,然后添加。
T样条:清晰的边界
与Rhino不同,在T样条曲线中很难制作清晰的边框或拐角。 解决这个问题有两种根本不同的方法。 一种是形成所谓的折痕(折痕)。 在这种情况下,T样条明确表明特定的边缘必须是锐利的

实际上,这种方法有许多缺点。 尤其是,无法以任何方式控制这种清晰度,这意味着最终,您无需将曲面转换为Rhino后就去倒角。 在此过程中,很有可能会出现难以消除的问题。
另一种方法是控制带有附加边缘的曲率并更改它们之间的距离。 这里也存在困难-例如,在三个边缘相交的角度处,将很难获得所需的曲率半径。 另外,根本不可能发生非常急剧的变化(因此,以后转换为Rhino时,将获得一个“肋骨”)。 这意味着您可以对其进行处理,例如将其四舍五入,然后以后几乎就无法进行处理。

犀牛的表面转变
Rhino有相当丰富的命令集,可让您以复杂的方式倾斜,弯曲,扭曲甚至扭曲曲面。 这里唯一要考虑的是此类转换的可逆性差。 如果沿一个方向弯曲表面,然后向后弯曲-最有可能会得到另一个更复杂的表面。 随着由多个表面组成的物体的多重和/或复杂变换,这些表面的接缝处将出现问题。

T样条曲线中的表面变换
在T-Spline中,一切都变得更加简单。 通常,您甚至不需要使用任何特殊命令-只需选择并移动/旋转/缩放点,边缘或面(包括与径向对称性结合使用),就可以满足您的几乎所有需求。
毫无可逆性的问题-即使需要艰苦的手工工作,也始终可以手动将积分返还。
对于Rhino的上述标准命令(_Twist,_Bend等)的使用,有一个重要的细微差别-效果取决于编辑模式。 如果将tspline对象选择为对象,则对其应用转换命令将导致该对象从tspline到Rhino的过早转换,这是完全不可接受的。 但是,如果选择了控制点,边线或面的模式,则实质上,这些点将进行转换:

同时,只能选择对象的一部分进行转换:

Rhino: history
Rhino , history, . , history, . , , — , .
T-Spline:
Extrude Rhino, T-Spline -. , .

. — . , , — (star). ( ) .
— , .., , , ( — ). — , , ..

T-Spline Rhino?
:
Rhino:— / ( , )
— , ( , )
— ( ) , , .
—
T-Spline:— , . «»
— (, ) . Rhino — ( — ).
—
, , T-Spline, Rhino Rhino.
Rhino T-Spline
, , ( , T-Spline — .. ):
1. , , , T-Spline ( ) , , Rhino, T-Spline .
, , , pictureFrame .
mesh (, 3d ), rhino t-spline . , . T-Spline — tspline mesh.
, tsAppend' T-Spline .
2. T-Spline Rhino . , T-Spline ( ).
3. Rhino , . — . - , .. , . , T-Spline ( )
4. , Rhino, T-Spline. , , . , Rhino ( ), , , .

5. , Rhino. ?
. , . Rhino , — . — Keyshot, V-Ray . , NURBS , , …
, , Rhino. 即 , Rhino…

, Rhino . , - (, , , , ), .
, Rhino — CAD-, STEP IGES, ( , , ).
Rhino
, Rhino 6. , T-Spline . , T-Spline ( 4.x) , Autodesk , Rhino, .
— Clayoo. , Rhino , Rhino. .
, Rhino 5 + T-Spline ( ). .