新聞中心

EEPW首頁 > 模擬技術(shù) > 設計應用 > NURBS曲線知識

NURBS曲線知識

作者: 時間:2011-06-11 來源:網(wǎng)絡 收藏
Nurbs 概述

  Nurbs是非統(tǒng)一有理樣條曲線(Non-Uniform Rational B-Splines)的縮寫,NURBS由Versprille在其博士學位論文中提出,1991年,國際標準化組織(ISO)頒布的工業(yè)產(chǎn)品數(shù)據(jù)交換標準STEP中,把NURBS作為定義工業(yè)產(chǎn)品幾何形狀的唯一數(shù)學方法。1992年,國際標準化組織又將NURBS納入到規(guī)定獨立于設備的交互圖形編程接口的國際標準PHIGS(程序員層次交互圖形系統(tǒng))中,作為PHIGS Plus的擴充部分。目前,Bezier、有理Bezier、均勻B樣條和非均勻B樣條都被統(tǒng)一到NURBS中。

  NURBS曲線和NURBS曲面在傳統(tǒng)的制圖領域是不存在的,是為使用計算機進行3D建模而專門建立的。在3D建模的內(nèi)部空間用曲線和曲面來表現(xiàn)輪廓和外形。它們是用數(shù)學表達式構(gòu)建的,NURBS數(shù)學表達式是一種復合體。在這里,只是簡要地介紹一下NURBS的概念,來幫助了解怎樣建立NURBS和NURBS物體為什么會有這樣的表現(xiàn)。

  Nurbs的起源

  樣條曲線是一類特殊的曲線,最初在計算機建模出現(xiàn)之前由船舶工業(yè)發(fā)展需求而創(chuàng)造并發(fā)展起來的。當時

NURBS曲線知識

  樣條的最初定義海軍的設計師需要通過幾個點來畫一條光滑曲線。為此他們想出了一個簡單而有效的方法,就是將金屬重物(Weights)(這在后來的數(shù)學解釋上稱之為結(jié)點Knots)放置在控制點(Control Points)上,并使用薄金屬片繞過這些控制點自然彎曲得到光滑變化的形狀,他們把這個形狀稱之為樣條。

  在物理上,樣條的形狀在結(jié)點處的影響最大并且沿著樣條遠離結(jié)點會逐漸減小,想要獲得對樣條某一區(qū)域更多的控制,只能在相應的區(qū)域增加更多的結(jié)點才行。

  這種方案在數(shù)據(jù)交換的時候遇到了麻煩,因為要在不同的平臺進行數(shù)據(jù)交換,人們必須用一種數(shù)學的方法來描述曲線的形狀,為此誕生了三次方程樣條。后來從多項式樣條引伸出B樣條(基礎樣條),B樣條是低級別的多項式樣條的集合,為了適應更復雜的樣條數(shù)據(jù)交換,最后從B樣條又引申出了Nurbs樣條。

  1 NURBS的定義

  NURBS是Non-Uniform Rational B-Splines的縮寫,是非統(tǒng)一有理B樣條的意思。具體解釋是:

  .Non-Uniform(非統(tǒng)一):是指一個控制頂點的影響力的范圍能夠改變。當創(chuàng)建一個不規(guī)則曲面的時候這一點非常有用。同樣,統(tǒng)一的曲線和曲面在透視投影下也不是無變化的,對于交互的3D建模來說這是一個嚴重的缺陷。

  .Rational(有理):是指每個NURBS物體都可以用數(shù)學表達式來定義。

  .B-Spline(B樣條):是指用路線來構(gòu)建一條曲線,在一個或更多的點之間以內(nèi)插值替換的。

  簡單地說,NURBS就是專門做曲面物體的一種造型方法。NURBS造型總是由曲線和曲面來定義的,所以要在NURBS表面里生成一條有棱角的邊是很困難的。就是因為這一特點,我們可以用它做出各種復雜的曲面造型和表現(xiàn)特殊的效果,如人的皮膚,面貌或流線型的跑車等。

  2 度數(shù)和連續(xù)性

  所有的曲線都有Degree(度數(shù))。一條曲線的度數(shù)在表現(xiàn)所使用的等式里面是最主要的指數(shù)。一個直線的等式度數(shù)是1,一個二次的等式度數(shù)是2.NURBS曲線表現(xiàn)是立方等式,度數(shù)是3.可以把度數(shù)設得很高,但通常不必要這樣做。雖然度數(shù)越高曲線越圓滑,但計算時間也越長。一般只要記住Degree(度數(shù))值越高曲線越圓滑就可以了。

  曲線也都有Continuity(連續(xù)性)。一條連續(xù)的曲線是不間斷的。連續(xù)性有不同的級別,一條曲線有一個角度或尖端,它的連續(xù)是是C0。一條曲線如果沒有尖端但曲率有改變,連續(xù)性是C1。如果一條曲線是連續(xù)的,曲率不改變,連續(xù)性是C2,如圖所示。

  一條曲線可以有較高的連續(xù)性,但對于計算機建模來說這三個級別已經(jīng)夠了。通常眼睛不能區(qū)別C2連續(xù)性和更高的連續(xù)性之間的差別。

  連續(xù)性和度數(shù)是有關系的。一個度數(shù)為3的等式能產(chǎn)生C2連續(xù)性曲線。NURBS造型通常不需要這么高度數(shù)的曲線。

  一條不同片斷的NURBS曲線可以用不同級別的連續(xù)性。具體來說,在同樣的位置或非常靠近的地方放置一些可控點,會降低連續(xù)性的級別。兩個重疊的可控點會使曲率變尖銳。三個重疊的可控點會在曲線里建立一個有角度的尖角。附加一個或兩個可控點會在曲線的附近聯(lián)合它們的影響力。

  從可控點中刪除一個離開它們,就增加了曲線的連續(xù)性的級別。在3DMAX里,F(xiàn)use(熔化)可控點會在曲線里建立一個假象的曲率或尖角。如果要恢復原狀,Unfuse(反熔化)那個點就可以了。

  3 Refine(精煉)曲線和曲面

  精煉一條NURBS曲線的方法是在上面加更多的可控點。精煉能更精細地控制曲線。當在3DMAX里精煉一條曲線的時候,軟件會保持原始的曲率(從技術(shù)上說,它保持著統(tǒng)一的節(jié)點矢量)。換句話說,曲線的形狀不會改變,但是相鄰的可控點會從新加的可控點那里移開。

  NURBS曲面與NURBS曲線本質(zhì)上有一親的屬性。

  4 點曲線和點曲面的概念

  在3DMAX里可以用點曲線和點曲面來建立模型??刂七@些物體的點是被強制依附于曲線或曲面上的。它沒有黃色的虛線控制格和重量控制。這是一個比較簡單的界面,初學者可能更喜歡用。這并不是說高級用戶就用不上了,如果是那樣的話開發(fā)商就不會把它加到3DMAX中去了。可以用基礎點來構(gòu)建一條曲線,然后構(gòu)建從屬曲面。

  可以使用按鈕來把點曲線或點曲面轉(zhuǎn)換成獨立的可控曲線或可控曲面。另一方面,盡量不要把可控曲線或曲面轉(zhuǎn)換成點曲線或曲面,因為這樣會有多種點的解決方案,會有難以遇料的結(jié)果。

  5 Tolerance(容差)

  這里先介紹一個容差的概念,以后將要用到。容差是指在3DMAX所使用的度量單位里的一個距離。如果連接的曲線間的間距大于這個值,3DMAX實際上是先建立一條融合曲線,然后再把三個部分連接在一起形成一條完整的曲線。如果間距小于這個值,則3DMAX不建立融合曲線。

  先在兩條曲線間建立一條Blend(融合)曲線,然后把三條曲線連接在一起形成一條單個的曲線,這是一種比較好的方法,得到的結(jié)果與父曲線匹配得很好。

  當有一個距離,但是它太小的時候會出現(xiàn)問題。在這種情況下,3DMAX要產(chǎn)生融合,但是因為那里沒有足夠的空間給它,結(jié)果曲線會有一個環(huán)形在那里。要避免這個環(huán)形,把Tolerance(容差)設置得比間距大就可以了。如果設置容差為0,3DMAX會為它選擇一個值。

矢量控制相關文章:矢量控制原理


評論


相關推薦

技術(shù)專區(qū)

關閉