康鳳娥,孔令德
(太原工業(yè)學院電子工程系,山西太原030008)
真實感圖形繪制是計算機圖形學的一個重要組成部分。綜合利用幾何學、物理學、計算機科學等知識在顯示器上生成像彩色照片一樣的真實感圖形。其中,球體的幾何描述直接影響了圖形的準確性和繪制的時間消耗,在繪制對稱球體時,選擇合理有效的數(shù)學模型尤為重要[1]。繪制球體時,首先對球體表面進行網(wǎng)格劃分,可以使用三角形小面片或四邊形小面片逼近。球體有兩種建模的方法:地理劃分法和遞歸劃分法。地理劃分法使用經(jīng)緯線將球體表面劃分為經(jīng)緯網(wǎng)格。北極和南極采用三角形小面逼近,其它部分采用四邊形小面逼近。使用地理劃分法繪制的球體線框模型,兩極小面較小,離赤道越近小面越大。旋轉球體后露出了南北極點,破壞了球體的對稱性。地理劃分法除了用于繪制地球外,不能用于繪制足球等對稱球體。游戲中繪制足球的一般方法是先在3DS中建模,然后導入場景中驅動,這種方法沒有涉及對足球的建模算法。本文基于Bucky球體模型,使用遞歸劃分法建立了足球模型。
足球模型是一個對稱的球體,由12個正五邊形和20個正六邊形組成,共有60個頂點。假設把正二十面體的每條邊三等分,每條邊上生成兩個新的頂點。因為正二十面體有12個頂點 (每一頂點有5條邊),平截它之后產(chǎn)生12個正五邊形。原有邊長的1/3得以保留下來,有20個正六邊形出現(xiàn)在新產(chǎn)生的正五邊形之間,如圖1所示。平截后的正二十面體完全對稱,稱為Bucky球[2],其形狀與足球非常類似。Bucky球模型的展開圖如圖2所示。圖中三角形內的數(shù)字的代表面編號,三角形外數(shù)字的代表頂點編號。注意到原有的正二十面體頂點在生成五邊形面的過程中被裁平截掉了,使用三角形外的數(shù)字代表了Bucky球的五邊形面編號。以三角形外的10號數(shù)字為例,代表了第10個五邊形面編號(五邊形面共12個,從0開始編號)。
圖1 頂點平截后的正二十面體
圖2 Bucky球展開圖
設t為三維線段的等分比,可以計算正五邊形頂點(x,y,z)頂點坐標,如圖3所示。
圖3 計算三維線段等分點
圖2中第10號五邊形面各頂點依次是10-11、10-7、10-0、10-1、10-9各線段中靠近10的線段端點。簡寫成F10:11,7,0,1,9(50~54)括號中的數(shù)字代表給F10各頂點的編號(從F0~F12共5*12=60個頂點編號從0~59)。以F代表五邊形的面,S代表六邊形面,則Bucky球點表及五邊形面表 (逆時針排列)見表1。
圖2中六邊形與五邊形共享Bucky球頂點。三角形內的數(shù)字代表六邊形的面編號。以S8號六邊形面為例,由三角形外數(shù)字10-0、0-1、1-10圍成的三角形中,每個邊三等分的中間部分構成。在10-0線段上,F(xiàn)10中與0號點相交的頂點編號為52。同樣F0中與10號點相交的頂點編號為4。依次類推構成S8號六邊形面的各頂點編號是52,4,3,6,5,53。 簡寫成 S8:52,4,3,6,5,53。六邊形面表見表2。
表1 點表及五邊形面表
表2 六邊形的面表
對圖1所示Bucky球施加光照后,繪制為光照對稱球體。此時Bucky球的每個正五邊形和正六邊形表面全部由平面構成,而足球是由曲面構成,即需要對Bucky球的多邊形表面進行“球化”處理。根據(jù)Loop細分方法[3],將正五邊形平面和正六邊形平面首先進行三角形“精化”處理,在此基礎上進行“平滑”處理,即將中點拉到球面上形成足球線框模型,如圖4所示。再對光照足球使用Phong明暗處理,并調整足球的材質后,繪制的真實感足球如圖5 所示[4-5]。
圖4 正五邊和正六邊形細分
圖5 調整材質后的真實感足球
對球體建模技術進行了研究。球體建模技術分為兩種:地理劃分法和遞歸劃分法。使用地理劃分法固定了二點分別做為南北極,使得靠近南北極的地方三角形越細,有聚集的趨勢,而靠近“赤道”的地方三角形面積越大,有擴散的趨勢。地理劃分法繪制的球體更像一個地球,不適宜于繪制對稱球體。使用遞歸劃分法可以完成如足球等對稱球體的繪制任務。本文通過對正二十面體進行頂點平截形成Bucky球,然后擴展平截面的中心點模長為球體半徑,形成足球線框模型。調整材質和光源繪制了真實案足球。本研究成果所繪制的光照足球可以直接應用于球類游戲的開發(fā)過程中。
[1]孫洪軍,杜道生,李爭航.關于地球形狀的三維可視化研究[J].武漢測繪科技大學學報,2000,25(2):158-162.
[2]Francis S hill Jr,Stephen M Kelley.計算機圖形學(OpenGL版)[M].3版.胡事民,劉利剛,譯.北京:清華大學出版社,2009:2,253-259.
[3]Tomas Akenine-Moller,Eric Haines.實時計算機圖形學 [M].2版.普建濤,譯.北京:北京大學出版社,2004:297-299.
[4]孔令德.計算機圖形學基礎教程(Visual C++版)[M].北京:清華大學出版社,2008:192-194.
[5]孔令德.計算機圖形學實踐教程(Visual C++版)習題解答與編程實踐[M].北京:清華大學出版社,2010:275.