maya建模教程:NURBS曲線
Maya 主要是制作復(fù)雜的數(shù)學(xué)模型和動畫,而這些都是以曲線為基礎(chǔ)創(chuàng)建的。下面介紹 NURBS 曲線的基本概念。
NURBS 曲線的特點(diǎn)
直線沒有任何的彎曲,僅由兩個端點(diǎn)定義,可以有一個斜率但角度不變。曲線的曲率是變化的,而直線的斜率是不變的。
曲線通常是由幾個點(diǎn)定義的,而且從一條沒有任何在角度上突變的直線路徑推導(dǎo)而來。曲線有時候也成為曲線段,而且能夠用于定義曲面或曲面網(wǎng)。
曲線也常被稱為樣條,因?yàn)樗鼈兛雌饋砭拖裎锢順訔l,即一個長長的木頭或者金屬條。所有的樣條都有一個共同的特征,即它們都是從定義一個多邊形產(chǎn)生的。由于這個共同的特征,所以將樣條稱為受控曲線。包含在不同類型樣條中的控制包括:控制線、控制多邊形或者外殼、控制點(diǎn)或者控制定點(diǎn)、控制切線和節(jié)點(diǎn)或者權(quán)重。
NURBS 通過權(quán)重或者結(jié)點(diǎn)提供高級的局部曲線控制。這些控制允許樣條的一部分被修改時不會影響到另外一部分。權(quán)重與每一個控制點(diǎn)相結(jié)合,它們指定控制點(diǎn)與曲線的定點(diǎn)之間的距離。默認(rèn)設(shè)置下,樣條上所有控制點(diǎn)具有相同的權(quán)重因子,稱為非實(shí)數(shù)曲線。當(dāng)修改曲線的權(quán)重時,曲線稱為實(shí)數(shù)曲線。處理 NURBS 曲線的權(quán)重可能改善一條曲線的細(xì)微形狀,但通常也減慢了最后模型的渲染速度。使用不同權(quán)重的另一個壞處是,當(dāng)交換模型文件時,許多系統(tǒng)會忽略該數(shù)據(jù)。
NURBS 上的結(jié)點(diǎn)決定一條曲線上點(diǎn)的分布的局部密度。形成一個曲線段的最小結(jié)點(diǎn)數(shù)等于一條曲線的階加 1 ,再加控制點(diǎn)的數(shù)目,曲線的階涉及產(chǎn)生曲線的數(shù)學(xué)公式中高次冪指數(shù)。曲線的階越高,則產(chǎn)生該曲線所需要的計算越多。一階曲線相應(yīng)于直線段;二階曲線相應(yīng)于二次曲線;三階曲線相應(yīng)于三次曲線。曲線的階越多,曲線段所需要的控制點(diǎn)或者結(jié)點(diǎn)就越多。
一般而言創(chuàng)建曲線的方法各式各樣,但在創(chuàng)建之前,一定要把曲線的度數(shù)和跨度等要素掌握清楚,它們是產(chǎn)生一條“完美”曲線的決定性因素。
在計算機(jī)中畫的曲線實(shí)際上是一個曲線段或是一個連續(xù)的線段,一個線段被稱為一個 Span 。在數(shù)學(xué)領(lǐng)域,稱一個曲線跨度為參數(shù)方程的一個數(shù)字表達(dá)式。因?yàn)?,方程描述的是一個三維空間的位置,一般包含 3 個變量 (X 、 Y 、 Z) ;并且在方程中的變量的最高次方?jīng)Q定了曲線的類型。因此一階曲線是一個線性方程為直線;二階曲線是一個二次方程為圓?。蝗A曲線是一個三次方程,實(shí)際上它在三維空間可以扭曲。還有兩個更高階的曲線 —— 五階和七階的曲線,它們實(shí)際上是在一個跨度中扭曲兩次。 Maya 在曲線創(chuàng)建工具中擁有所有這些階曲線的選項(xiàng),但是對于大多數(shù)練習(xí),立體曲線是最常用到的,在 Maya 中默認(rèn)的曲線是三階的
一個控制頂點(diǎn) (CV) 就是在三維空間決定其所在的曲線形狀的一個點(diǎn),它定義且影響著方程式,控制頂點(diǎn)和其所控制的曲線段統(tǒng)稱為樣條 (splines) 。
CV 的位置決定曲線形狀有不同的計算方法,這些不同的方法 ( 方程或公式的類型 ) 把樣條區(qū)分為 Bezier 曲線或 B-Splines 曲線或 NUBRS 曲線。本章的重點(diǎn)為 NUBRS 曲線,即 Non-Uniform Rational B-Splines 。
NUBRS 曲線相對于其他類型的樣條曲線來說,其優(yōu)點(diǎn)是可以分割或合并。常規(guī)的曲線不能在曲線上任一點(diǎn)分割和合并,僅僅在控制點(diǎn)上才可以。但是 NURBS 曲線卻可以在任一點(diǎn)上分割和合并,這是因?yàn)槠渖系娜我稽c(diǎn)都是可以計算和定位的,這個優(yōu)點(diǎn)對于面也一樣,因此 NURBS 面可以和其他的 NURBS 面用不同數(shù)量的段或等參線相連接。
編輯點(diǎn) (EP) 是一些可以將曲線段連接起來以形成一個連續(xù)曲線的點(diǎn),這些編輯點(diǎn)也被稱為節(jié)點(diǎn)。 CV Curve 工具和 EP Curve 工具可以用來生成曲線,如果沒有錯誤,這兩個工具可以生成一些不完全相同的曲線,但最終都會生成相同的 NURBS 曲線,如圖 4-2 所示的為一條 CV 曲線和一條 EP 曲線。
CV 是 Control Vertex 的縮寫,用于控制曲線或者曲面的形狀,以一個小小的“方框”來表示它的存在。通常情況下,有兩種選擇模式可以選取可控點(diǎn):一是利用狀態(tài)欄;二是利用標(biāo)記菜單。
當(dāng)鼠標(biāo)處于激活狀態(tài)時,單擊狀態(tài)欄中的 Select By Component Type 圖標(biāo),然后單擊 Points 按鈕,或者右擊遮蔽元素按鈕,在隨后出現(xiàn)的菜單中選中 NURBS CVs 命令,如圖 4-3 所示。
圖 4-2 兩種不同的曲線 圖 4-3 遮蔽元素菜單
另一種方法是使用物體的標(biāo)記菜單來激活 CV 。選中所需曲線,并且在該曲線上單擊鼠標(biāo)右鍵,出現(xiàn)標(biāo)記菜單后,從菜單中選中 Control Vertex 命令即可,如圖 4-4 所示。
EP 是 Edit Point 的縮寫,習(xí)慣上稱之為編輯點(diǎn),以一個小寫字母 X 表示它的存在。多邊形的結(jié)合區(qū)域也稱為編輯點(diǎn),有時也叫做“節(jié)”。它直接展現(xiàn)于樣條曲線上,可以對一個現(xiàn)存的曲線隨意地添加編輯點(diǎn),而不會影響曲線的最終狀態(tài)。
對現(xiàn)有的曲線添加編輯點(diǎn),同時創(chuàng)建了一些大一點(diǎn)兒的跨度。隨著跨度數(shù)量的增加,可以更容易地局部化控制曲線。
與可控點(diǎn)的選項(xiàng)基本相似, EP 點(diǎn)的選擇也存在兩種選擇模式:一是通過狀態(tài)欄選取,二是通過標(biāo)記菜單選取,如圖 4-5 所示為狀態(tài)欄中的選取狀態(tài)。
圖 4-4 從標(biāo)記菜單中選擇 CV
圖 4-5 EP 點(diǎn)的選取狀態(tài)