新聞中心

        NURBS曲線(xiàn)知識(shí)

        作者: 時(shí)間:2011-06-11 來(lái)源:網(wǎng)絡(luò) 收藏
        Nurbs 概述

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

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

          Nurbs的起源

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

        NURBS曲線(xiàn)知識(shí)

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

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

          這種方案在數(shù)據(jù)交換的時(shí)候遇到了麻煩,因?yàn)橐诓煌钠脚_(tái)進(jìn)行數(shù)據(jù)交換,人們必須用一種數(shù)學(xué)的方法來(lái)描述曲線(xiàn)的形狀,為此誕生了三次方程樣條。后來(lái)從多項(xiàng)式樣條引伸出B樣條(基礎(chǔ)樣條),B樣條是低級(jí)別的多項(xiàng)式樣條的集合,為了適應(yīng)更復(fù)雜的樣條數(shù)據(jù)交換,最后從B樣條又引申出了Nurbs樣條。

          1 NURBS的定義

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

          .Non-Uniform(非統(tǒng)一):是指一個(gè)控制頂點(diǎn)的影響力的范圍能夠改變。當(dāng)創(chuàng)建一個(gè)不規(guī)則曲面的時(shí)候這一點(diǎn)非常有用。同樣,統(tǒng)一的曲線(xiàn)和曲面在透視投影下也不是無(wú)變化的,對(duì)于交互的3D建模來(lái)說(shuō)這是一個(gè)嚴(yán)重的缺陷。

          .Rational(有理):是指每個(gè)NURBS物體都可以用數(shù)學(xué)表達(dá)式來(lái)定義。

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

          簡(jiǎn)單地說(shuō),NURBS就是專(zhuān)門(mén)做曲面物體的一種造型方法。NURBS造型總是由曲線(xiàn)和曲面來(lái)定義的,所以要在NURBS表面里生成一條有棱角的邊是很困難的。就是因?yàn)檫@一特點(diǎn),我們可以用它做出各種復(fù)雜的曲面造型和表現(xiàn)特殊的效果,如人的皮膚,面貌或流線(xiàn)型的跑車(chē)等。

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

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

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

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

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

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

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

          3 Refine(精煉)曲線(xiàn)和曲面

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

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

          4 點(diǎn)曲線(xiàn)和點(diǎn)曲面的概念

          在3DMAX里可以用點(diǎn)曲線(xiàn)和點(diǎn)曲面來(lái)建立模型。控制這些物體的點(diǎn)是被強(qiáng)制依附于曲線(xiàn)或曲面上的。它沒(méi)有黃色的虛線(xiàn)控制格和重量控制。這是一個(gè)比較簡(jiǎn)單的界面,初學(xué)者可能更喜歡用。這并不是說(shuō)高級(jí)用戶(hù)就用不上了,如果是那樣的話(huà)開(kāi)發(fā)商就不會(huì)把它加到3DMAX中去了。可以用基礎(chǔ)點(diǎn)來(lái)構(gòu)建一條曲線(xiàn),然后構(gòu)建從屬曲面。

          可以使用按鈕來(lái)把點(diǎn)曲線(xiàn)或點(diǎn)曲面轉(zhuǎn)換成獨(dú)立的可控曲線(xiàn)或可控曲面。另一方面,盡量不要把可控曲線(xiàn)或曲面轉(zhuǎn)換成點(diǎn)曲線(xiàn)或曲面,因?yàn)檫@樣會(huì)有多種點(diǎn)的解決方案,會(huì)有難以遇料的結(jié)果。

          5 Tolerance(容差)

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

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

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

        矢量控制相關(guān)文章:矢量控制原理


        評(píng)論


        相關(guān)推薦

        技術(shù)專(zhuān)區(qū)

        關(guān)閉
        主站蜘蛛池模板: 中山市| 寻乌县| 合山市| 平顶山市| 富顺县| 辽宁省| 淮南市| 梓潼县| 梅河口市| 宣城市| 闻喜县| 如皋市| 盐源县| 托克逊县| 屏东县| 调兵山市| 武冈市| 涟水县| 太保市| 南和县| 剑川县| 瑞金市| 镶黄旗| 乐都县| 万州区| 万源市| 东海县| 商南县| 海阳市| 常山县| 大竹县| 榆树市| 双桥区| 太白县| 安泽县| 福鼎市| 眉山市| 昭觉县| 嘉黎县| 临沧市| 永胜县|