准确、全面、易读、丰富的网络百科全书
你好!请登录

有谱百科
助您轻松探秘世界,学习知识。

登录
NURBS

NURBS

高级三维建模

NURBS是一种非常优秀的建模方式,在高级三维软件当中都支持这种建模方式。NURBS能够比传统的网格建模方式更好地控制物体表面的曲线度,从而能够创建出更逼真、生动的造型。NURBS是非均匀有理B样条曲线(Non-Uniform Rational B-Splines)的缩写,NURBS由Versprille在其博士学位论文中提出,1991年,国际标准化组织(ISO)颁布的工业产品数据交换标准STEP中,把NURBS作为定义工业产品几何形状的唯一数学方法。NURBS曲线和NURBS曲面在传统的制图领域是不存在的,是为使用计算机进行3D建模而专门建立的。

中文名

非均匀有理B样条曲线

外文名

Non-Uniform Rational B-Splines

属性

是一种非常优秀的建模方式

缩写

NURBS

基本概述

1992年,国际标准化组织又将NURBS纳入到规定独立于设备的交互图形编程接口的国际标准PHIGS(程序员层次交互图形系统)中,作为PHIGS Plus的扩充部分。Bezier、有理Bezier、均匀B样条和非均匀B样条都被统一到NURBS中。

在3D建模的内部空间用曲线和曲面来表现轮廓和外形。它们是用数学表达式构建的,NURBS数学表达式是一种复合体。在这里,只是简要地介绍一下NURBS的概念,来帮助了解怎样建立NURBS和NURBS物体为什么会有这样的表现。

非均匀有理B样条(Non-Uniform Rational B-Spline)英文缩写,NURBS。它是贝塞尔曲线的一个推广,而贝塞尔曲线可以视为均匀有理B样条。NURBS是计算机辅助设计(CAD)、制造(CAM)和工程(CAE)中重要的组成部分,同时也是很多业界广泛采用的标准的一部分,例如IGES,STEP和PHIGS。

连续性

所有的曲线都有Degree(度数),又称阶数或次数。一条曲线的度数在表现所使用的等式里面是最主要的指数。一个直线的等式度数是1,一个二次的等式度数是2.NURBS曲线表现是立方等式,度数是3.可以把度数设得很高,但通常不必要这样做。虽然度数越高曲线越圆滑,但计算时间也越长。一般只要记住Degree(度数)值越高曲线越圆滑就可以了。

曲线也都有Continuity(连续性)。一条连续的曲线是不间断的。连续性有不同的级别,一条曲线有一个角度或尖端,它的连续性是C0。一条曲线如果没有尖端但曲率有改变,连续性是C1。如果一条曲线是连续的,曲率不改变,连续性是C2。

另外一种连续性的表示是几何连续性,G0、G1、G2、G3可以通过恰当的参数变换得到相应的C0、C1、C2、C3。

一条曲线可以有较高的连续性,但对于计算机建模来说这三个级别已经够了。通常眼睛不能区别C2连续性和更高的连续性之间的差别。

连续性和度数是有关系的。一个度数为3的等式能产生C2连续性曲线。NURBS造型通常不需要这么高度数的曲线。

一条不同片断的NURBS曲线可以用不同级别的连续性。具体来说,在同样的位置或非常靠近的地方放置一些可控点,会降低连续性的级别。两个重叠的可控点会使曲率变尖锐。三个重叠的可控点会在曲线里建立一个有角度的尖角。附加一个或两个可控点会在曲线的附近联合它们的影响力。

从可控点中删除一个离开它们,就增加了曲线的连续性的级别。在3DMAX里,Fuse(熔化)可控点会在曲线里建立一个假象的曲率或尖角。如果要恢复原状,Unfuse(反熔化)那个点就可以了。

概念

在3DMAX里可以用点曲线和点曲面来建立模型。控制这些物体的点是被强制依附于曲线或曲面上的。它没有黄色的虚线控制格和重量控制。这是一个比较简单的界面,初学者可能更喜欢用。这并不是说高级用户就用不上了,如果是那样的话开发商就不会把它加到3DMAX中去了。可以用基础点来构建一条曲线,然后构建从属曲面。

可以使用按钮来把点曲线或点曲面转换成独立的可控曲线或可控曲面。另一方面,尽量不要把可控曲线或曲面转换成点曲线或曲面,因为这样会有多种点的解决方案,会有难以遇料的结果。

容差

这里先介绍一个容差的概念,以后将要用到。容差是指在3DMAX所使用的度量单位里的一个距离。如果连接的曲线间的间距大于这个值,3DMAX实际上是先建立一条融合曲线,然后再把三个部分连接在一起形成一条完整的曲线。如果间距小于这个值,则3DMAX不建立融合曲线。

先在两条曲线间建立一条Blend(融合)曲线,然后把三条曲线连接在一起形成一条单个的曲线,这是一种比较好的方法,得到的结果与父曲线匹配得很好。

当有一个距离,但是它太小的时候会出现问题。在这种情况下,3DMAX要产生融合,但是因为那里没有足够的空间给它,结果曲线会有一个环形在那里。要避免这个环形,把Tolerance(容差)设置得比间距大就可以了。如果设置容差为0,3DMAX会为它选择一个值。

起源

样条曲线是一类特殊的曲线,最初在计算机建模出现之前由船舶工业发展需求而创造并发展起来的。当时

海军的设计师需要通过几个点来画一条光滑曲线。为此他们想出了一个简单而有效的方法,就是将金属重物(Weights)(这在后来的数学解释上称之为结点Knots)放置在控制点(Control Points)上,并使用薄金属片绕过这些控制点自然弯曲得到光滑变化的形状,他们把这个形状称之为样条。

在物理上,样条的形状在结点处的影响最大并且沿着样条远离结点会逐渐减小,想要获得对样条某一区域更多的控制,只能在相应的区域增加更多的结点才行。

这种方案在数据交换的时候遇到了麻烦,因为要在不同的平台进行数据交换,人们必须用一种数学的方法来描述曲线的形状,为此诞生了三次方程样条。后来从多项式样条引申出B样条(基础样条),B样条是低级别的多项式样条的集合,为了适应更复杂的样条数据交换,最后从B样条又引申出了Nurbs样条。

参考资料

计算机图形学(Conputer Graphics):非均匀有理B样条·bbxmax