虽然曲线为三维几何体创造了基础,但是那仅仅是线框而不能渲染。为了创造出能被渲染的物体,必须产生曲线网或从这些曲线上产生曲面,通过曲面的结合来创建复杂的三维物体。前面关于样条线的描述同样适应于曲面。线和面的最明显的不同时增加的维数。一条三维曲线在三维空间中延伸,但那不是面积,而是长度在延伸。因此,线在参数空间仅仅有一个单独的维数 U。
曲面的 U、V 方向
对于曲面,在参数空间增加了一个维数。曲线仅仅有一个参数 u,曲面有一个附加的参数 v。就像 u 的值随着曲线长度参数变化而改变,u 和 v 变量都随着参数变化而改变。曲面上的所有点都有一个 u、v 值。这个 UV 坐标在空间的定位通常与 XYZ 坐标系统类似,只有将点直接加到曲面上这一点不同。在某些方面,u 和 v 方向类似于纬度和经度。在某些球形面上,则更加类似。在画曲面上曲线或在一个曲面上贴材质时,了解 UV 参数空间是很重要的。曲面上的 u 和 v 方向决定了曲面上法线的方向,我们可以使用右手规则来确定曲面法线方向,即以右手大拇指指向 u 方向增加的方向,再以右手的食指指向 v 的方向和以中指垂直于那两个手指。
在某些情形下,需要改变曲面的法线方向。通过设计反转工具来实现这一形体改变。改变了u或v的方向,就改变了曲面的法线方向。同时改变u和v的方向,并没有改变曲面的法线方向。变换u和v的方向,就改变了曲面的法线方向。在一些情况下需要u和v给与一些特殊的方向:例如,应用一些质感贴图时,一个曲面图像的影像依靠UV方向。如果一个质感贴图在曲面上反向出现,其中一个纠正的方法就是改变曲面上的UV方向。
一个带参数的曲面是由被称为等参曲线或等参线的网格线相交而成的。等参线是曲面上曲线常数u 或v 参数值的显示。曲面上的网格线是用符合曲面边界曲线的编辑点位置的参数值画的。在等参线之间的部分被叫做面片。曲面上面片的数目等于u方向的跨距数与v方向的跨距数之积。在曲面上有越多的等参线,就有越多的CV被用来描述。
CV 并不是越多越好,应该尝试保持较小的等参数线数目但可以足够控制曲面,必须找到控制性和有效性的最佳平衡。因为等参曲线被很多刀路编程软件识别为硬边,这完全是应为数控还一直孜孜以求的在尝试着另外的算法所带来的平滑道路编程。
创建曲面
一般而言,有5种基本类型的基本曲面工具。每个都用不同的方法使曲线形成曲面。在几乎所有的情况中曲面都是用U和V参数等参线和面片组成的。
1.Set Planar surface 能够很快地将一个平面的曲线形成一个平面,这个做面的功能像金属片压印出的外形。只要有闭合曲线,就能创建一个面或一个剪切面。如果第一个闭合曲线的里面有另一个闭合曲线存在,那么第二个就会变成第一个面内的洞,如图所示。
2.Revolve功能通过旋转绕轴的曲线而构造曲面。由旋转功能创建的曲面就像在车床上的旋转体,如图所示。
3.Skin功能通过两条或更多的构造曲线创建规则曲面。可通过面功能控制出现在前一次操作的面上的等参线数目,不管构造曲线的编辑点有多少。用Skin 做的曲面类似于一艘船的外壳适和它的木结构,如图所示。
4.Extrude功能通过沿着一条特定路径延伸一条外形创建一个曲面,如图所示。
5.Boundary功能通过联合3条或4条交叉自由曲线构造曲面,如图所示。
曲面编辑
平面
当创建平面时,其中一个选项是建一个平面的face面。face渲染时像surface面一样,但实际上没有surface面的CV和维数V,只能以一个平面的方式编辑Faces。Faces是有效的几何体并且比NURBS面片渲染得快。
构造历史
如果设计师创建面时使用构造历史,原始曲线和新建面保持联系。这就意味着编辑原始的构造曲线就编辑了面。用户可以将面和多重历史标准联系起来,这样编辑一条构造曲线就会影响几个面。在这个曲面改变后构造历史就消失了。这时,历史就被破坏,而曲线就不能用来编辑曲面。一旦历史被破坏,必须编辑曲面上的CV来修改曲面。
面上线
用户想直接在面上画曲线时,可使用面上线(Curves on surface)。在选择的面上的UV参数空间创建这些特殊的曲线,并且变成了曲面的一部分。通常来说,画一条面上线都是准备剪切或者为以后面的构造上使用创建曲线。
面上线能够直接被画在选定的面上或者使用投影(Projections)或相交(Intersections)功能创建;Projection方式是通过构造曲线向一个目标面投射而获得的,如图所示。Intersect功能考虑了两个面的交线,并且将面上线放在一个或两个参与的曲面上。这两个方法都是创建面上线的非常精确的方法。
曲面剪切
Trimming 用一条面上线作为引导来显示和隐藏部分曲面,用户可以使用Trimming 切割或断开曲面。当用户使用这个命令来切割曲面时,要求选择面上哪一部分保留或删除。但是事实上,剪切过的面并没有真正切掉,而是以一种隐藏的方式使它不渲染。这样,剪切掉的面能很容易地被还原,如图所示。
Trimming是一个创建外形非常有用的方法,在不同的情况下会非常困难。剪切的面是非常复杂的并且要花很长时间来渲染。如果可能,尽量选择不用剪切命令建模的方法。
圆角和倒角
当创建面的连接时,造型的边缘经常出现尖角。如果这不是想要的效果,可对这个边缘倒角或圆角。倒角是在两个面间加上一个给定的圆形倒角,如图所示。
除了两个面必须共有一个公共的边缘以外,一个圆角要求使用多重可变的半径创建更复杂的边缘。圆角对于处理几条边界相交的角落条件同样有效。这些建模功能在创建曲面和物体方面可以提高建模基本能力。
构造质量曲线
创建高质量的面是三维建模的目标。为了创建高质量的面,重要的是创建合适的基本曲线。为了保证构造高质量的曲线,必须遵循以下的原则:
(1)在创建曲线时尽量减少CV,这样能保证所创建的面有较少的等参线。事实上,创建曲线的一个有效的方法就是画一个单独跨距直线编辑点曲线,然后改变CV得到理想曲线。如果没有足够的CV来创建理想的曲线,可以插入编辑点(相应增加了CV)来增加曲线的复杂性。这种方法能够保证曲线上的CV尽可能少,如图所示。
(2)如果以后可能要对曲线使用Insert和Detach工具,那么用Uniform参数来创建曲线更好些。因为这种参数对Uniform 曲线来说很容易在UV 空间找到点的位置。在ChordLength曲线上输入点是可以的,但是参数值很难定义。
(3)如果想让两条曲线相交,使用曲线编辑器进行曲线跟踪。这样保证曲线真正相交。在建面的时候尝试在每个对应的曲线中使用相同数目的控制点。这样就可以保证两条曲线的编辑点匹配,并且可以避免产生额外的等参线。额外的等参线被认为时交叉节点插入,并且很难编辑面。再由其中一个边界来创建的面将会更复杂,如图所示。
(4)画曲线的时候尽量都使用Uniform 类型或者都使用Chord Length 类型。如果做面的曲线类型不匹配,会导致交叉节点的插入。
曲线曲面精确描述
曲线的精确描述
多项式,方程ax+by=c描述了一条直线归纳的表达式。方程表示了一连串的数学项(单项式)能够加起来而等于一个常数c,所有的解都能够使得表达式真实地描述一条线上的点。
一条直线可以用下式表示:3x+2y=12表达式的左边3x+2y,是一个多项式,在x和y前的数字被称作系数。一个三维空间的直线可以用下式表示:2x+3y-4z=20。
阶数
一个多项式方程的阶数和最大的指数是相同的(指数就是“to be power of”,例如,X2的指数是2)。所以X2 的方程是2 次方程,X3 是3 次。上面用来描述直线的方程式1 阶方程。这些用项的1 阶、2 阶、3 阶来定义的曲线类型,是按数学方程来划分的。曲面软件需基本提供1次和3次方程的曲线。在复杂曲率模型创建时还需要包括曲线的5次和7次。
参数曲线
迄今为止,方程仅仅在通常的形式下表示。它们还可以用参数方程表示。一个简单的例子,一条45度的直线可以表示成:y=x+1参数方程是一个公式或函数,输入一个值(x值),处理后(在例子中加1),然后输出一个结果(相应的y值)。不管过程有多复杂,其原理都是一样的。Y=f(X)=x+1 这种方程的表示仅仅说明了y 被叫成f(x),通过给定x 值,可以得出相应的y值。类似在曲面软件中曲线和曲面用的也是参数,使用参数曲线是因为简单的几何原理不能提供在交互式系统中需要的必要适应性或控制性。一些参数定义了建立一条曲线的重要点,在曲面中这样的参数被称为U。参数曲线函数所定义的则是所有这样点的集合。根据U参数的函数定义,空间CV帮助定义曲线的外形。当移动CV时,就改变了控制曲线外形的数据。由控制点位置定义的复杂曲线叫做样条。CV 位置转化为曲线形状所遵循的规则不同于曲线的几何分类。
曲线曲面的非均匀有理B样条(NURBS)
曲面软件使用NURBS(非均匀有理B 样条)作为它的几何学类型。NURBS 是一种能表现任何理想的外形的几何形式。在数学里,直线是一阶几何形式,而圆、抛物线、椭圆和所有的二阶曲线都是二阶形式。
CV 的数目常常控制一个给定的样条或部分样条,它被叫做该样条的order。样条的order等于它的阶数加上1。Polylines 是两个order的曲线(就是说,方程中的项至多是1 阶),3 个order 的样条最多能够表现二阶曲线(例如,二次曲线部分;圆,抛物线等)。
在曲面软件中使用的NURBS 有1,2,3,5,7 阶。曲线的阶数至少为3,才能在三维空间随意曲折。而且,这样的曲线才有连续的曲率,这是曲面设计软件的要素。高阶曲线(5阶和7阶)有一定的优势,有光滑的曲率变量并且更有张力,这使得它在自由设计中显得非常理想。同样的,因为它们被更多CV控制,它们同样在外形上能表现出更大的灵活性。
阶数越高这些特征就表现的更加显著。但是对于高于7阶的,曲线收到外形上过多摆动的限制,而不易进行交互式的操作。很多复杂的曲线都是通过联系一个多项式和另一个多项式的结尾创造出来。
在B 样条中多重多项式的连接能通过直接位于样条上的编辑点看出来(或有时称为节)。每个曲线两个编辑点之间的部分称为跨距。B 样条的数学运算法则考虑了这样的变量,像在两个相邻的多项式末端点的连续性,可以让设计师用不着意识到有几个多项式就能做出非常复杂的曲线。跨距是两个编辑点的曲线之间的多项式部分,编辑点(或节点)直接在曲线上,并且用很小的星号表示。
CV(Control vertices)通常不在样条上,但却影响着曲线的外形。CV 是与外壳或控制多边形网格相联系的。任何曲线的第一个CV 是以一个小的正方形的外形图标表示的,以确定这是任何曲线的开始点。曲线的第二个CV 是以字母u 表示的,指出曲线的方向是互动的。其它的CV 表示控制特征,像小写字母x。编辑点和CV能够交互式地使用,用来修改曲线的外形。
总结
以上罗列了曲面辅助设计软件的一些基本要素和原理,当然具备了这些要素并不能做到构建复杂曲面。但确是通往终点的必经之路,下面的路还有很长很长…….