Skip to content

根据大神帖子整理

揭开犀牛神秘的面纱

犀牛在哪里?

一般设计使用的软件分为:二维(2D)和三维(3D)两大类软件:

  • 2D: Adobe Photoshop、Adobe Illustrator、CorelDraw等等。
  • 3D: 按使用领域的不同,又可以分为好几类软件:
    • CAD (计算机辅助设计):AutoCAD、Rhino、Alias、Pro/E、Solidwork、Caita...
    • CAID(计算机辅助工业设计):Rhino、Alias、Solidthinking...
    • CAM (计算机辅助制造):MasterCAM、PowerMill、Cimatron、CAMTools、NCWorks...
    • CG(Computer Graphics的缩写,指利用计算机技术进行视觉设计和生产。)
      我们提到CG时,一般指以下四个主要领域:CG艺术与设计、游戏软件、动画、漫画。使用的软件包括:3Dmax、Maya、C4d...

三维软件核心的区别

CAID软件一般是曲面核心的,CAM软件一般都是实体核心。

两者的区别:实体核心和曲面核心是指对内部数据的一种处理方式。实体核心操作的对象是有厚度的曲面,而曲面核心操作的对象是没有厚度的曲面。这是基本区别。这里有个概念:我们说的曲面都是指:Nurbs,暂且就只需要知道Nurbs是一种曲面的描述方式。CAID和CAM软件内部操作的基本几何元素都是Nurbs。(第二节中详细介绍Nurbs)

CG类软件,主要的建模方式都是Polygon。Polygon是多边形的意思。polygon 所建的模型是由很多三角面组成的。

注意: 目前计算机数字建模的基本技术有polygon和Nurbs。Nurbs是工业设计以及制造业领域的工业标准。

CAM软件中,曲面是为模具造型服务的,造型并不是cam软件中最主要的实现需要,它所追求的是能不能生产建造。缺点就是造型能力有时候比较缺乏,还有重要的一点就是它的建模方式很工程化。不是非常适合设计者的外观造型使用。

CAID软件中重点就是造型,他拥有大量的工具指令,都是为了让使用者更方便造型,造型是CAID软件的目的。建模方式是比较符合设计师思维模式的自由造型方式,比较随意。好处就是造型比较有弹性,缺点也就是因为随意,所以模型没有CAM软件那么贴合制造的标准了,但是也可以达到。

破译Nurbs

Nurbs:Non-Uniform Rational B-Splines的缩写。中文的意思是:非均匀有理B样条曲线。下面分别来介绍一下它们:

  • B-Splines, B样条

    B样条曲线是一种比较早出现的绘制曲线的方式,Photoshop里面的钢笔工具和CorelDRAW里面的贝塞尔曲线工具都是B样条曲线,而Nurbs则在B样条曲线的基础上扩展出来更多的可控制特性。

  • Non-Uniform, 非均匀 & Rational, 有理 这两项特性其实可以统一写成:非均匀和非有理。要注意的是,非均匀和非有理是B样条扩展出来的两种特性。这也就表明B样条的常态是:均匀和非有理。

    所以大部分时候我们使用的Nurbs,都是均匀和非有理的,只有一些较为特殊的曲线,才具有非均匀和有理的特性。

    那么它们在实际模型中的表现是怎么样的呢?如何的特殊呢?

下面介绍一下非均匀和有理在模型中的表现,先解释一下比较容易理解的“有理”:

  • 有理

    在Rhino中,可以注意观察一下,几乎所有的标准几何曲线,都是有理曲线。比如:圆,椭圆,抛物线,双曲线等等,都属于二次曲线范畴,这些只能是用有理曲线才可以精确描述。

    下面就以圆为代表来详细解释下有理的含义: 图1

    如图1,最左边的圆才是有理的圆,其他两个都是非有理的。

    为什么呢?

    因为只有左边的是真正标准的圆。

    这是怎么得知的呢?

    有两种方法可以知道这个结果:

    1. 我们可以通过曲率检测工具 (Curvaturegraph)来检测曲线曲率的变化:
      白色曲线和黑色曲线的距离都一样,那就表明这条曲线的曲率都是一样的。 图2

      见图2,中间的那个圆,白色曲线看起来像一个多边形,所以它的曲率是不一样的,右边的曲线看起来和左边的曲线一样都很圆,其实还是一个多边形,因为右边曲线的cv比中间的那个圆要多的多,所以只是更类似标准的圆而已,并未达到标准圆的要求。

      想知道图2中右边圆和标准圆之间的曲别,可以把曲率梳的检测结果“放大”,如图3。

      当我们把它放大的时候,就可以很清楚看到它的曲率检测结果其实还是一个多边形;而真正的圆不论放大多大,结果都是圆的,如图4。

    2. 另外也可以用半径检测工具 来看:

      检测左边第一个圆得到的结果如图5,每个半径都相等,说明是真正的圆。
      检测中间的圆得到的结果如图6,在不同位置,半径不一样。
      图7是右边的圆的检测结果,虽然误差要小很多,但是在不同位置的半径也不一样。

    证明第一个圆才是真正的圆以后,我们就可以从中取出¼个圆来说明有理在模型中是如何表现的,如图8。

    ¼圆曲线只有3个cp点。使用 (Weight)这个工具来查看每个cp点的权重,先不用管权重是什么。等下解释。

    比较后可以看出,中间的cp的权重和两头的值不一样,如图9:

    所以,在Nurbs中,所谓的有理,在模型中的表现就是 cp点的权重不一样。

    如果在Nurbs中,一条曲线上或者一个曲面上,所有cp点权重一样,那么它就是非有理的;如果cp点权重不一样,那么它就是有理的。cp点权重是不是一样,唯一的决定了曲线或者曲面是否有理。

    在前面讲到了权重的概念,那么什么是权重呢?

    图10

    如图10,一共有四条封闭曲线,它们都是非有理曲线。

    • 第1条曲线是标准圆重建设置6个cp点后的结果。第2、3、4条曲线是第1条曲线改变权重后的结果。
    • 第2条曲线是把其中一个cp点的权重改为2,相当于这个点的作用力度提高了2倍。
    • 第3条曲线是将其中一个cp点的权重增大到5。
    • 第4条曲线是把其中一个cp点的权重减小为0.5的结果。

    从图中我们可以看出:所谓权重就是控制点的引力。权重值越大,那么它的吸引力也就越大,控制点影响范围内的那部分曲线/曲面也就越接近控制点;相反,如果权重越小,它的吸引力也就越小,控制点影响范围内的那部分曲线/曲面也就越远离控制点。总的来说:权重影响的是cp点对曲线/曲面的吸引力。

    我们知道权重后对作图有什么作用吗?

    利用这个特性,可以做很多特殊造型。它能够保证用较少的控制点来绘制造型复杂的曲线。提高曲线的质量。如图11:

    左边是有理曲线,所以cp点可以比较少,而曲线质量可以比较高。因为每个点都可以控制作用力的强度,所以他的造型能力也会比较强。

    有理的概念就先解释到这里,对于均匀的概念就不那么好理解了,因此到最后来解释。

  • 均匀

    指的是Knot点赋值的均匀。Knot中文叫作节点。

    一条Nurbs曲线的造型是怎么样确定的?

    很多人会误认为是cp点确定曲线造型的,其实cp点并不是直接影响曲线造型的,cp点只影响了Knot点的位置。而Knot点的位置以及它的赋值,才是唯一定义一条曲线造型的因素。简单言之,cp点是间接控制的,而Knot点是直接控制的。

    那么Knot点的赋值是怎么样设定的呢?

    Rhino中有两个绘制曲线工具,分别是控制点曲线和内插点曲线 。一种是定义cp点画曲线,一种是定义节点画曲线。其实它们的区别主要就是Knot点赋值方式的不同。

    第一个工具是通过cp点画曲线,这样绘制的曲线Knot点的赋值是固定的,按照0 、1、 2、 3 、4……依次类推,规律赋值。所以说,控制点曲线工具画出来的曲线始终是均匀的。

    第二种方式是直接用Knot点来绘制曲线,而Knot点的定义方式默认是:弦长。按照弦长的方式绘制的曲线一般都是不均匀的。

    另外节点还有两种不同方式,如图12。分别是:均匀和弦长平方根。弦长平方根和弦长类似,也是一种不均匀的绘制方式。

    图12

    那么均匀与否,对曲线的影响是什么呢?

    前面就讲到了,其实就是对造型的影响 。

    如图13:两条曲线都有5个控制点,而且cp点重合,都是非有理曲线,但是造型不一样。原因是:黑色曲线是均匀的,红色是不均匀的 。由此,Knot点的赋值也会影响造型。

    其实这也是一种可以在复杂造型情况下减少曲线复杂度的方式。

    图13

犀牛我自己来

例1. 打开non uniform.3dm文件,如图14使黑色曲线去贴合红色曲线,并使之重合。

可能会出现的情况及建议:

因为黑色曲线是通过编辑点曲线工具绘制出来的,所以通过拖动黑色曲线cp点去贴合红色的曲线,会很难控制。试了以后,是不是发现两边的第二个cp调节起来很奇怪?

Rebuild黑色曲线后,就成了:非有理的、均匀的曲线,这时用均匀的曲线去贴合,就很容易贴合好,而且曲率也会很好。

所以,相对于均匀的曲线而言,非均匀的曲线控制起来会难很多。一般来说,建议大家用非有理的均匀的曲线来造型,不建议大家用非均匀曲线去造型。

也就是说,一般最好用cp点的方式去画线,如果要用Knot点的方式去画线,就要注意它们的“间距”,最好要比较均匀,以利于后续造型编辑的方便。

例2. 绘制一条曲线,如图15:

图15 图16

我们打开 节点捕捉,然后使用Split命令按节点把曲线断开。结果如图16所示。

注意是在节点位置把曲线分隔开,直接使用split的p参数捕捉Knot点来分割曲线。选择第一段曲线,查看它的属性:0~1,见图17。

图17
再看第二段,见图18:
图19
第三段~第六段依次如下:
图20
图21
图22

图中这些定义域数值就是Knot的赋值。它是均匀赋值的,所以曲线是均匀曲线。

如果一条曲线定义域是17,那么所有的Knot的赋值都是在17之间。虽然画线时候这个关系是反过来的,不过不妨这样理解:定义域可以任何值,只是程序默认按照012~…这样的整数来赋值而已,差异值(delta)都是1。如果是非均匀曲线,就不会有这个差异值。如图24,是非均匀曲线的属性,并没有显示差异值。
图24

例2证明:Knot点的赋值,如果是均匀赋值,曲线就是均匀的,反之就是不均匀的。

简单来理解非均匀和有理就是:cp的权重是否一致,决定曲线(曲面)是不是有理,而Knot的赋值是不是均匀,决定曲线是不是均匀。


解密Nurbs

Nurbs曲线,有一些基本元素,比如:cp、ep、Knot、degree…,前面在介绍Nurbs的时候已经介绍了前面三项内容,这里再重述下:

Nurbs曲线的定义值。除了首位两个控制点在曲线上外,其他都不在曲线上,其中的Weight值可以决定曲线是否为有理。Weight也是Nurbs的基本元素之一。

都在曲线上,编辑点曲线是通过Knot定义完一条曲线后在首尾各增加一个编辑点组成一条曲线。可以通过EditPtOn命令 来显示曲线编辑点。编辑它可以直接改变曲线,但是不容易精确控制曲线走向。

通俗点讲,就是曲率开始变化的地方,曲线顶点(End)也是Knot点。在曲面上的表现就是iso线,所以Knot越多,模型上面的结构线也就越多。

它也是曲线的基本元素之一,不过单一曲线不存在Kink,所以也可以理解成曲线的交点。对单一曲线添加Kink点,可以把曲线分割开来。

阶数的概念

这里重点要理解下阶数的概念。简单的说degree是一个数值,准确来说它是描述一条曲线的方程的“指数”。

不知道大家是不是还记得高中里面介绍的圆的方程中指数是多少?

通过圆的方程式 \(x^2+y^2=r^2\) 可以看出:指数是2。这个指数在Nurbs中被定义为阶数,所以Rhino中,正圆曲线是2阶的。当然了,要注意一点2阶可以描述正圆,那么更高的阶也同样可以描述。而直线,用1阶就足够了。

Rhino中,我们最常用到的曲线阶数是哪几种?

一般是1阶,3阶和5阶的就够用了。默认为3阶曲线,一般不需要改变。

那是为什么呢?不同阶数的曲线又有什么区别呢?

主要区别就是:曲线的光顺程度不同。可以用实验说明这个问题。

图25

绘制一条Polyline,如图25所示,黑色曲线为一阶曲线。通过ployline的几个定义点,绘制一条Curve,输入D改变阶数为2,如图红色曲线。同样绘制默认的3阶紫色曲线和4阶的蓝色曲线。

从图25可以看出曲线阶数越高,曲线就绷得越紧,每个cp点对他的影响力就越小。所以,阶数越高趋向越容易光顺就是这个道理。

那么是不是我们在实际建模时阶数设置的越高越好呢?

一般对外观造型品质要求比较高的产业,都倾向于使用高阶的曲线和曲面,就是为了得到更好的模型品质。比如汽车业,经常用的曲面都是5阶~7阶。但是阶数太高了也未必好,前面说了阶数就是曲线方程的指数,想象下指数为7的方程解起来有多费劲?!这样就不难理解,阶数越高就需要占用更多的系统资源了。

Rhino目前是可以制作最高为11阶的曲线和曲面。rhino的核心可以支持最高为42阶的曲线和曲面,只是界面没有开放出来,所以大家用不了。

阶数的改变

  • 先设置Degree,然后绘制曲线:
    在Rhino中,我们使用Control Point Curve工具画线时候是可以设置所需要曲线的degree的,如图26 Start of curve后面括号内的Degree=3,默认为3阶。
    图26

    输入d,回车。见图27。
    图27
    然后就可以输入我们需要的degree值。

  • 先绘制曲线,然修改Degree:
    同样,绘制完成的曲线或曲面我们也同样可以改变它的阶数。输入命令Change Degree 改变曲线和曲面的阶数。

阶数和控制点的关系

阶数和cp数量有很密切的关系。

那它们有怎么样关系呢?

可以来做这样一个实验:把degree设置为11,然后画两个点的曲线,同样的方法分别再分别画3个,4个,5个,6个点的曲线,如图28。

图28

接下来,选择有两个cp点的曲线,在命令栏内输入“wh”回车,跳出What界面。如图29所示:

图29

注意看里面的文字,显示为Line。用同样的方法查看其它曲线,如图30。

图30

对比下它们的cp点数量和degree值。然后再用同样的方法绘制两条曲线,分别是12个控制点和13个控制点,然后进行What命令查看,如图31。

图31

通过这个实验,可以发现一个规律:n阶的曲线至少需要 \((n+1)\) 个cp数,如果cp数少于设置的degree值,会默认转换成按照cp数量可以做出来的最高degree值的曲线。

注意: 这里注意一个误区:“ \(n\) 阶的曲线至少需要 \((n+1)\) 个cp数”,用公式表示为:

\(cp≥degree+1\),但不能转换成 \(degree≥cp-1\)。 首先,在rhino中,目前最高阶为11,但是控制点可以是无数个。然后,假设你画一条3阶的线,你可以有n个cp点,但是degree不等于 \(cp-1\)

最简曲线

上面讲到了一个 n阶的曲线至少需要 (n+1) 个cp数 的公式 \(cp≥degree+1\)。那么,当 \(cp=degree+1\) 的时候, 曲线就是最简曲线。用文字表示:最简曲线就是不能再减少cp的曲线;如果减少cp ,曲线的dgree就会降级。

比如:degree=5的曲线,可以有6个cp,也可以有7个cp,更可以有10个cp ,甚至还可以有更多的cp数量,其中只有6个cp的曲线是“degree=5的最简曲线”。

如果在最简曲线的基础上多了一个cp,曲线结构会出现什么变化了?

如果最简曲线上多了一个cp的话,曲线上也会跟着多出来一个Knot。 那么一条最简曲线上有几个Knot呢?

只有2个,就是曲线的两头(End)。最简曲线上曲线内部是没有Knot的。所以,我们说最简曲线有一个重要特性:最简曲线一定是均匀的(uniform)。

阶数与节点的关系

下面先看几张图,注意看它们的Knot点位置。

图32

图32是一条2阶曲线,Knot点处只有G1连续(切线方向相同,且曲率不连续)。也就是说,曲线内部Knot点所在的位置,光顺性并不好。

图33

图33是一条3阶曲线,Knot点处达到了G2连续(曲率连续,但是曲率的变化率不连续,也就是未到G3连续)。

图34

图34是一条4阶曲线, Knot点处能够达到G3连续。

通过上面几张图,可以对Knot点有两点新的理解:

  1. Knot点会降低曲线该处的连续性;
  2. 高阶的曲线可以提高Knot点处曲线的连续性。

所以为什么高品质的模型喜欢用高degree的曲线或者曲面,这是一个方面的原因。那么为什么rhino默认使用degree=3的曲线,知道原因了吗?

因为3阶曲线是能够使内部达到g2连续的最低阶数的曲线,另外虽然阶数很低,但是最简曲线内部连续性也是很高的,这就是最简曲线的优势。

所以为什么2阶曲线描述的那些标准几何体都很光滑? 因为都是一段段的最简2阶曲线组合而成的。

所以,要注意:拥有Knot的曲线是Nurbs的特性之一,不要把它看作是一个缺陷,其实它是一个优势。早期的曲线,如果需要10个cp来描述造型,就一定要9阶的曲线,那么如果是需要30个cp怎么办呢?那就需要29阶的曲线,29阶的曲线会很难计算。而Nurbs就可以用低阶数扩展出无穷多个cp点造型。解决的办法就是用Knot来把很多更低阶的曲线自动对接起来并且保持一定的光滑度。所以,这是一种技术的进步。只是对接处(Knot)连续性会低一点,这是可以通过控制来解决的,比如首先要把degree设置为11,然后再绘制曲线,接着拖动cp,有时候就可以拉到看不到Knot的影响。


深入Nurbs(SRF/PLOYSRF/SOLID)

Nurbs曲面的几个特征

1. 一个标准的Nurbs曲面应为4条边面

在Rhino中,所有其它造型的曲面都是由4边曲面的结构变化而来的。比如,圆柱:是把4边曲面卷了起来;圆锥:是圆柱的变形。在圆柱的基础上,把两头的其中一边的长度缩减为0得到的;球体:就是把圆柱的两头边都缩小为0得到的;还有圆环:是圆柱的变形。把圆柱两头对接起来就是圆环。

三边面的情形和圆柱变为圆锥的情形类似,就是把其中一边缩短为0;两边面也是一样的道理。如果把三边面的cv打开,会看到一边的cv点汇集在一起,即极点,这个三边面就叫做退化面。一般来说,三边曲面容不易做光滑,就是因为存在极点的原因。所以我们要学会思考如何去分面。

前面说的这些曲面,都是单张完整的四边曲面变形的结果。

一般,对于三边面极点处不光滑,可以这样处理来解决问题。如图35:

图35

当然,作为对曲面基础熟知的人,并不是将一块多边,或三角面补顺。而是极力去避免这样情况发生。

2. Nurbs的一个独有的特性,它可以被剪切\分割以及还原

Nurbs能被剪切和分割的特性,是Nurbs能够被广泛使用一个非常重要的原因。使用剪切功能,我们可以制作更多随意自由的造型。当然,三边面也可以用剪切的方法来完成。

注意

  1. 曲面被剪切之后,曲面本身是不会变形。即使变形,也是因为显示精度不够的原因。
  2. 所有被剪切过的曲面,都可以被还原成原来的样子,这是Nurbs的特性。“Untrim”功能。因为trim仅仅是把不需要的部分隐藏了起来,曲面本身的数据资料并没有发生任何变化。

Nurbs曲面的uv坐标与法线方向

前面说了Nurbs曲面都是4边面,那么曲面上就会有两个方向:u方向和v方向。 uv是一种坐标系统,类似xy坐标,不过u和v都是曲线形式的,其实就是曲面坐标系。曲面上纵横的等参数线就是uv走向的。

做模型的时候会特意将两个相邻曲面的iso线调节成相接的,基本上只是为了好看。但是Nurbs高级技法里面,作出来的面很多iso都是对应的,面的品质会很好,但不是特意去吧iso对应在一起

另外还有一个n,它是曲面的法线方向。曲面上任意一点的法线方向都和该点所在曲面上的uv方向垂直。 简单说就是,法线和曲面的uv线在该点垂直。Nurbs曲面的法线方向是和uv方向有一定的关系的。

理论上,uv方向定了,法线方向也就定了。但是,rhino不一样。rhino中,通过对外围程序的设计,uv方向和法线方向可以独立开来。这对建模来说,是有一定好处的。

Polysurface

Polysrf的概念

Polysrf是rhino专有的名词,不是所有的Nurbs软件都有的。不过仅仅是一个名词而已,意思是组合在一起的曲面。只要有两块或者两块以上的曲面join在一起,就形成了polysurface。中文名称叫做复合曲面。

所以join也是rhino特有的。join就是程序把两曲面的边界合并为一条共用边界,距离小于公差的曲面都可以join在一起。理论上说,两块曲面之间的边界能够达到g0连续(也就是边界重合)就可以join。但是,要做到完全重合,有时候是很困难的事情。所以,rhino会允许它们之间在一定的误差距离之下,可以join在一起,这个距离就是在公差里面设定的数值。如图36所示。

图36

这个值叫做绝对公差,也就是允许的误差值。指令的计算,都需要依靠公差的设置来做判断,不仅仅是join命令。公差是Nurbs建模领域中不可缺少的参数,可以说是它的一个数据精确度的“环境”。caid软件cam软件的很多标准都是基于公差设置建立的,所以要很注意它。建模之前,要首先设置好公差数值,后面再修改是没有意义的,而且如果事先没设置正确,后面补救起来很困难,基本上和重建差不多了。

Rhino3.0的绝对公差设置默认0.01单位,而到了Rhino4.0默认的绝对公差设置则修改成了0.001个单位。如果从3.0的用户升级到4.0要注意这一点的改变。

Polysrf的作用

  1. 一方面,是针对用户的。如果一个模型有很多曲面,而且都是“散开的”,这样就很不好管理,也容易错误操作。那么组合为polysurface之后,就可以整体一起做编辑,比较容易管理。
  2. 另一方面,是程序功能方面的需求。曲面组合在一起之后,它们之间就会产生一种“联系”,很多指令需要利用这种联系来做计算。

曲线的join:曲线的join并不是把曲线的顶点共用,曲线join在一起之后,就变成了一根曲线。但是对接的这一点会变成一个kink点,而不是一般的cv点。 所以,我们一般主要的轮廓线都会很注意在哪里对接,如果不注意,对曲面或者曲线的品质会有比较大的影响。当然了删除kink点也是可以的方法。

要注意,这里介绍它的原因在于如果可以做到曲面的join,我们就不要在曲线的时候就把它们join在一起了。复杂度会不一样,如果先把曲线join起来,最后作出来的曲面会多很多cv。因为曲线join之后本身会变得复杂,所以曲面也会跟着变得复杂。没有join之前,每条曲线的degree都是一样的,所以不会变复杂,如果不一样,就会变复杂了!对比一下:如图37

图37

比较好的做法:应该是先生成面以后,再进行join。因为,那本来就是两个面的边界,本来就不是一条边,是分开join在一起的,边界也还是各自独立的。 另外,polysrf是不能够打开cp的,因为组合后的曲面是不能够再对单一曲面做变形的,必须把它提取出来后才能编辑。不过最好是先编辑好单独曲面后,再join才是正确的方法。虽然Rhino4.0有了一部分可以对polysrf做造型编辑的功能,但是初学时还是建议要按照正确的流程来做模型。

Solid

Soild说白了很简单。其实就是封闭的polysrf 。球体是一个特例,它属于单独封闭曲面的solid。

cam软件核心就是solid的,意思就是软件编辑的几何体都是按照solid方式来做编辑的。

solid的一个重要的点就是:一定要封闭,也就是要有“厚度”。如果这个封闭的模型是由多块曲面组合成,那么它们之间都必须是join在一起的,这样才算是solid。简单的说就是:封闭的组合在一起的Polysrf就是solid。solid是不可能有naked dege的。

另外要注意的一点是,没有闭合的曲面,其法线方向是两边可以互换;但是封闭的模型,比如solid,它的法线方向就一定是由内向外的。这是Nurbs规定的,统一起来,为了方便一些工具作计算,比如布尔运算。这不是软件层面定义的,是由Nurbs的数学定义的。


犀牛小笔记

通用部分

1. 影响模型的品质的因素

  1. 等参线(ISOparm)的显示密度;
  2. 渲染网格(Render mesh)精度;
  3. 系统公差值(Tolerance)。

2. 等参线的作用

  • 能更好的认识Nurbs曲面的结构;
  • 能直观的了解曲面的U方向和V方向的走向情况;
  • 可以通过察看等参线的分布了解控制点的分布。
    🔺 在曲面上显示过多的等参线会增加系统负担。一般使用默认值1即可。

3. Render mesh

  • 对于精度要求高的模型,建议设置为Custom。Render mesh影响模型在视图中显示的精度以及渲染的精度。
  • Render mesh的概念:
    受硬件的限制,只有少数的几种渲染器可以直接渲染Nurbs曲面。在Rhino中,不管是显示模式还是渲染显示前,都要事先把Nurbs曲面转化成mesh物体。
  • Rhino中Render mesh的生成:
    第一次从线框显示模式切换到阴影显示模式时,速度会比较慢。之后再次切换时速度就会快很多了。
  • Rhino中Render mesh的重生:
    对曲面的任何一次修改或者重设Render mesh的转化精度,系统都需要重新计算Render mesh。
  • Render mesh的精度设置(在第二章内有详细的介绍)
    ① Jagged&faster:
    Render mesh精度较低、面数较少、计算和显示速度最快。
    ② Smooth&slower:
    Render mesh精度较高、面数较多、计算和显示速度中等。
    ③ Custom
    其中有一个重要的选项Max angle:一般设置为10~5就可以得到很好的mesh效果了。小于5之后会很慢,不建议设置。

4.影响模型精确度的公差值(误差值)

在建模之前应该设置好合适的绝对公差,不应该在建模过程中随便改变绝对公差值,否则会引起很多问题。

  • Absolute tolerance(绝对公差):
    Rhino大部分指令都是在这个值下计算精度(误差范围)的,默认值为0.01。
  • Relative tolerance(相对公差):
    根据模型尺寸的百分比确定公差范围,并不是一个确定的数值。默认值是1%。

  • 为什么两块曲面无法Join?
    答:可能是因为曲面之间的距离超过了绝对公差所设定的值(误差值)。
    解决问题的方法(两种方法):

    1. 修改模型,使两块曲面之间的距离达到公差值的范围之内。
    2. 重设公差值,使之大于模型之间的距离值。不过不建议使用该方法。这样会降低模型的精度。
  • 为什么Trim后曲面边缘异常或者成为几段?
    答:是因为绝对公差值过大造成的。
    解决问题的方法:
    把绝对公差值减小,重新修剪就可以得到正确的结果。 修剪后可以使用Show Naked Edges 查看裸露边缘的情况。

曲线部分

1.Degree值 (在上一节“解密Nurbs>Degree”中已有详细介绍)

  1. 曲线的Degree数值越大,受控制点的影响越小,曲率越趋于平缓,曲线越顺滑。当Degree的数值为1时,曲线便是折线(Polyline)。
  2. Degree值越大,需要的控制点数也就越多,计算机需要计算和存储的量也更多。默认的Degree值为3。
  3. 改变已绘制好的曲线的Degree值:ChangeDegree 命令工具。

2.生成Nurbs曲线,大致可以分为3种

  1. 基本的曲线绘制工具。如:Control point curve 和 Edit point curve。
  2. 通过已有的曲线或曲面来生成曲线。如:
    • Curve From 2 Views:通常用来生成模型的轮廓线,或者是绘制投影线。
    • Project Curve to Surface :投影曲线。
    • Extract ISOparm :提取等参线。
  3. 直接定义几个特殊点来生成特殊的几何曲线。

3.调节曲线造型的利器 :Adjust end bulge

可以在保持曲线两端的切线方向或者曲率不变的情况下调节曲线造型。
该命令的本质:限制了控制点的运动轨迹保证曲线两端的曲率或切线方向不变。

4.曲线的连线性

  1. 连续性的概念和分类:
    ① G0:两条曲线在端点处重合,但是切线方向不相同。
    ② G1:两条曲线不但在端点处重合,而且切线方向一致。
    ③ G2:在两条曲线端点重合处不但切线方向相同,而且曲率相同。
  2. 连续性的作用:
    续性在建模过程中体现在光滑性上。连续性越高,曲线与曲线或者曲面与曲面之间的光滑过度就越好。
  3. 连续性与控制点的关系:(以曲线为例,曲面类似)
    ① 两条曲线的第一个控制点重合,便达到G0连续;
    ② 两条曲线的第一个控制点重合的基础上,第二个控制点在一条直线上,便是G1。
    ③ 在满足G1的基础上,移动第三个控制点到合适的位置,保持两条曲线在端点处的曲率相同,这样就满足了G2。
    控制点的位置直接决定了曲线或者曲面之间的连续性,是连续性的本质。所有调节连续性的工具都是间接调节控制点的位置来达到调节连续性的目的。
  4. 如何判断曲线的连续性:
    ① 判断几条曲线之间的连续性:Gcon (Geometric Continuity of 2 Curve) 。
    ② 判断一条复合曲线的连续性:Curvaturegraph。

    A. 曲率分析图上一条直线的长度等于曲率,可以用Dist.测量。
    B. 曲率=1/R(R:曲线上任意点的近似圆的半径长)
    C. 白色曲线的光滑程度反映了被检测曲线曲率的变化情况。白色曲线越平滑表示被检测曲线的光滑性就越好。

  5. 连续性与Degree: Degree=3是达到G2连续的最简曲线阶数。Degree=2只能保持G1连续。

5.常用的曲线编辑工具

  1. Fillet :倒圆角,Degree=2,G1,3Points;
  2. Blend :混接,Degree≥3,G2;
  3. Match :匹配,G0、G1或G2
    Preserve other end :另一端曲率是否改变。

曲面部分

1.Nurbs曲面的标准结构

一个标准的Nurbs曲面为4条边。(4边原则)

2.Nurbs曲面的特殊方式

  1. 三边曲面:事实上是一条边上的控制点都重合在一起(边长为0)的4边曲面。
  2. 周期曲面:通常使用封闭曲线生成。是4边面的两条边对接重合的结果。
  3. 圆锥曲面:可以看作是两边重合的三边曲面;也可以看作是一条边长为0的周期曲面。
  4. 球曲面:两条边长都为0的封闭周期曲面。

3.曲面属性

  1. UV方向性:坐标上红色表示U方向,绿色变数V方向。(Match命令时比较有用)
  2. 法线方向:不同的法线方向可以得到不同的布尔结果。
    Dir命令可以查看、修改曲面的法线和UV方向。按F3可以查看曲面属性。

4.Trimmed surface的3种类型

  1. 同时剪切曲面的面和边。
    属性显示:Trimmed surface。
    被剪切边受到命令的限制,如:Matchsrf、Mergesrf。
  2. 只剪切了曲面的面。
    属性显示:Surface with 1 hole。
  3. 只剪切了边的曲面。
    属性显示:surface。
    被剪切边受到命令的限制,如:Matchsrf、Mergesrf。
    🔺 剪切边:剪切后生成的边,也有可能是Join或Split edge造成的。
    以上三种剪切曲面都可以使用Untrimmedsrf 还原曲面。

5.Polysrf

对于Polysrf不能使用F10打开控制点编辑曲面,需要Explode炸开后再进行编辑曲面。

6.曲面的曲率分析工具

  • Zebra 斑马线
  • Curvature Analysis 曲率分析
  • Environment Map 环境贴图

7.混合曲面

除了用Blendsrf制作之外,还要灵活运用Loft、SW1、SW2、Match等命令。可以很好的避免使用Blendsrf命令做混合曲面时出现的扭曲现象。

8.模拟倒角

  1. 最简单的模拟:留出空隙,使用Blendsrf命令。
  2. Match模拟:在相应的倒角部位使用Insert Knot命令添两条ISO,使用Match即可。

9.Sweep1对话框中Style下的Align with surface

可以让截面线根据曲面边的切线方向自动调整旋转角度,可以使生成的曲面与原曲面保持相同的夹角。

10.两曲面之间做混合曲面之前如何才能绘制好截面线?

  1. 在两曲面的相应部位做投影线,使用Blend命令生成混合曲线,作为截面线。
  2. 先Blendsrf生成曲面,再提取ISO线,用做相应的处理,如:Adjust End Bulge命令。
  3. Blend Perpendicular命令,直接生成。

11.Matchsrf的条件

  1. 匹配曲面作为匹配的边,一定要是完整的原生边。
  2. 目标曲面可以是任何形式的边。
    如果选择了Average Surface选项之后,两块曲面都成为了匹配曲面。所以只有在两匹配曲面都是用原生边匹配才可选用。

Isocurve direction Adjustment:

  1. Preserve isocurve direction:匹配曲面的ISO方向不发生改变。
  2. Match target isocurve direction:同时匹配ISO的连续性。
  3. Make Perpendicular to target edge:匹配曲面和目标曲面的ISO垂直。
  4. Automatic:(有两种情况)
    1. 目标曲面匹配的是完整的原生边,效果和2相同。
    2. 目标曲面匹配的是剪切边,效果和3相同。

12.单曲面和双曲面

曲面是由U和V两个方向决定的。如果只有一个方向是曲线,另一个方向是直线,这样就是单曲面。如果两个方向都是曲线的话,那么就是双曲面。

13.Nurbs建模的特点

理性化、条理化。
Nurbs建模中高级建模是由什么决定的?
答:是建造这个模型的难易程度,而不是繁杂程度。

14.模型品质的决定因素

  1. 分片结构的合理程度。(一般尽量按四边原则,主要是看个人的思维模式)
  2. 曲面的简单程度。要学会手工优化曲面。(a. 分片的合理;b. 软件工具的使用程度)
  3. 模型精度程度。(建模过程中的严谨程度)

总结:模型制作规划已有工具的灵活运用。

15.模型品质的标准

分片简单,精度高,造型准确并且曲面品质好。

16.模型分片的几个原则

  1. 尽量按符合标准的Nurbs曲面四条边的特征(四边原则)分面。
  2. 曲面划分不宜过碎。
  3. 划分曲面时要适当忽略一些细节,简化曲面造型。
  4. 分片同时要考虑制作方法,选择最容易制作或者效果最好的那种分片方法。

17.优化曲线和曲面原则

  • 平整的地方控制点要减少;
  • 转折急剧,曲率变化大的地方则应该需要较多的控制点。
  • 还要学会辅助曲面的运用,如:Blendsrf的反混接,来制造一条完整的边界。