李國柱,馬 波
(昆明市測繪研究院,云南昆明650051)
Skyline平臺下真實感模型生成方法研究
李國柱,馬 波
(昆明市測繪研究院,云南昆明650051)
以廣泛投入實際應(yīng)用的3D GIS平臺Skyline為基礎(chǔ)平臺,從著色的角度研究真實感模型的程序自動生成方法。程序生成的方式除了可以增強對象的立體感之外,還可以對構(gòu)成模型的面片數(shù)量加以控制,以免對系統(tǒng)造成運行負擔(dān)。最后將程序成功地運用到管線的自動建模及數(shù)據(jù)管理中。
Skyline;三維建模;光照處理;著色模式;真實感渲染
三維GIS[1-2]是目前地理信息技術(shù)發(fā)展的主流方向之一。現(xiàn)已投入到實際應(yīng)用中的平臺包括Arc-Scene[3]、Skyline[4-5]和 MapGIS K9[6]等。此類平臺提供了針對行業(yè)常規(guī)數(shù)據(jù)的支持,能夠無縫地將既有的2D GIS數(shù)據(jù)集成進來,進而進行空間分析等。其中最為顯著的地方是提供了對3D GIS的支持,總體來看都提供了針對三維場景的加載、顯示、漫游和行業(yè)相關(guān)的分析和操作等。實際上,對局部區(qū)域進行三維場景構(gòu)建時,針對目標對象的三維建模[7]是其中的重點,具體工作中常通過借助3D Studio MAX或是Maya等造型軟件進行。在工作中,主要依托Skyline作為底層的三維平臺,其中通過造型軟件所制作出的模型在三維視覺效果上并不盡如人意。具體的問題包括:采用造型軟件加工出的白模,在導(dǎo)入系統(tǒng)時由于不能控制子面片對光照的反應(yīng),會導(dǎo)致立體感的缺失;使用Skyline系統(tǒng)中內(nèi)嵌的基本幾何組件來構(gòu)建復(fù)雜對象時也很難體現(xiàn)出立體感。技術(shù)上,為了能夠獲取到模型更優(yōu)的顯示效果,可通過增加模型面片的方式進行。但是隨著構(gòu)成模型面片數(shù)量的增長,會導(dǎo)致系統(tǒng)的加載延遲。為了能夠進一步提升模型加載的效率及其較優(yōu)的顯示效果,本文研究Skyline平臺下強立體感模型的構(gòu)建方法。
在基于面片的計算機圖形學(xué)中,模型通常由頂點集合和面片集合所構(gòu)成。技術(shù)上常采用頂點索引列表的方式,即將構(gòu)成模型的全部頂點存放在一個公有數(shù)組中,而對于構(gòu)成模型的子面片的頂點序列則利用對應(yīng)頂點在數(shù)組中索引予以記錄。如圖1所示的立方體,基本面片為三角形。該立方體對象由8個頂點和12個子三角面片構(gòu)成。在內(nèi)存中存放時,8個頂點的坐標單獨存放于一個公有數(shù)組中,面片中涉及的頂點采用在數(shù)組中對應(yīng)的索引予以記錄。通過頂點索引的方式不僅能夠有效地減少頂點重復(fù)存放導(dǎo)致的內(nèi)存浪費,還可以規(guī)避因為浮點數(shù)計算的精度問題所帶來的模型開裂問題。

圖1 模型的存儲結(jié)構(gòu)
頂點索引順序依據(jù)外法線原則進行。對于模型的真實感效果而言,并不取決于模型是否采用頂點索引的存儲方式,而是取決于三維平臺底層渲染引擎對待面片法線和頂點法線的方式。
面片的外法線是平臺底層三維引擎進行光照計算的依據(jù)。通過計算給定面片法線與光線的夾角,能夠計算出光照強度,從而獲取面片本身的明暗程度。影響面片光照效果的量除了法線外還有材質(zhì),材質(zhì)影響著對象表面對光線的反射和散射等的程度。明顯的,構(gòu)成模型的每個面片的法線能夠使模型呈現(xiàn)出真實感。渲染引擎中考慮的光照模型包括環(huán)境光、散射光和鏡面反射光等。在進行具體的真實感處理時,都歸類為對頂點的處理。
在計算出面片的光照強度之后,與立體感存在直接相關(guān)的便是著色模式的選擇,一般可以分為固定著色、恒定著色和光滑著色。固定著色是在不考慮光照的影響下,采用一種單一的顏色將構(gòu)成對象的多邊形填充為實心多邊形的一種著色模式。恒定著色則是在顧及光照的條件下,根據(jù)構(gòu)成物體的每個面片的法線進行著色的一種方式,這種著色模式是針對面片而言的。恒定著色運用在由平面構(gòu)成的物體上具有較強的優(yōu)勢,而對于類似球體這樣由曲面構(gòu)成的物體,在面片交界處能看到明顯的分界。光滑著色是為了能夠解決該問題而被提出的一種著色方法,其基本原理是針對每個面片分別計算法線,然后對于多個面片公共的交點采用各面片法線的均值,實際上是一種插值計算方法。
圖2和圖3分別為立方體和空間球體在不同著色模式下的效果。圖2(a)和圖3(a)為線框繪制效果;圖2(b)和圖3(b)為固定著色模式下的效果;圖2 (c)和圖3(c)為恒定模式下的著色效果;圖2(d)和圖3(d)為光滑著色模式下的繪制效果。通過觀察可以發(fā)現(xiàn),固定著色模式下的繪制效果是沒有立體感而言的。對于立方體這樣由平面構(gòu)成的對象恒定著色的效果要優(yōu)于光滑著色,光滑著色在頂點處出現(xiàn)的過渡,反而導(dǎo)致效果變差。對于球體而言則剛好相反,光滑著色的效果在描述曲面對象時優(yōu)于恒定著色。

圖2 立方體在不同著色模式下的效果
技術(shù)上來講,對于模型所采用的著色模式取決于底層渲染引擎中,即三維渲染引擎中應(yīng)該提供相應(yīng)的選擇機制以輔助決定對模型進行渲染時是采用恒定著色模式、光滑著色模式或是其某種組合方式。

圖3 空間球體在不同著色模式下的效果
關(guān)于Skyline平臺中的建模,一般包括兩種方式:通過內(nèi)置基本幾何組件構(gòu)建或是借助于3D Studio MAX等造型軟件進行建模,然后利用第三方插件轉(zhuǎn)換為系統(tǒng)支持的模型格式。
就系統(tǒng)對模型的真實感處理而言,未有明確的文檔對光照計算方式和著色模式作出說明。模型的立體感是通過對材質(zhì)和光照的反應(yīng),繼而通過著色模式所體現(xiàn)出來的。對格網(wǎng)模型中的面片進行著色處理后,獲取的是白模,為了彌補模型的細節(jié)和提升視覺效果,需要再進行紋理貼圖處理。技術(shù)上,紋理貼圖不是立體感的核心。
以白模為對象,經(jīng)過對內(nèi)置幾何體組件和程序自動生成的模型對比后發(fā)現(xiàn),內(nèi)置的幾何組件采用固定著色的模式;對于導(dǎo)入的模型,在默認情況下系統(tǒng)底層引擎以頂點為單位。Skyline平臺中對模型的存放同樣遵循頂點坐標和索引的方式,對于給定的頂點,該點的法線取該點共享面片法線的均值。也就是說,一般情況下,會采用光滑著色,所以對于構(gòu)建出的模型在頂點處有光滑的感覺。而為了能夠在此平臺中體現(xiàn)出明顯的立體感,需要對頂點的坐標進行分裂處理,通過這樣的處理,才能讓系統(tǒng)將共點面片分別視為不同的面片,進而采用內(nèi)嵌的基于面片的著色模式。
就實際情況而言,Skyline平臺對面片格網(wǎng)是提供了恒定著色模式和光滑著色模式的,在操作接口上沒有提供控制著色的選項。直觀來說,模型是以圖1的方式進行存儲,著色效果如同圖2(d)和圖3 (d)。對于曲面對象而言是可以的,但是常規(guī)情況下,對于面片模型則不能滿足要求。為了能解決更一般的建模問題,需要對圖1中的模型進行頂點的分裂處理。對于多個面片共用的頂點,為了實現(xiàn)恒定著色,需要將該點分裂到其所在的各個面片中。即以面片為單位,對模型進行存儲,其雖然擁有相同的坐標值,卻擁有單獨的索引。
圖4為關(guān)于頂點分裂的說明,圖中四面體ABCD由4個頂點組成,如果采用圖1中的存儲結(jié)構(gòu),最終建立的模型在頂點處將會被光滑化。該四面體由4個頂點組成,每個頂點被3個面片所分享,在頂點分裂處理時,每個頂點被分裂為3個新的頂點。以點A為例,可分裂為A1、A2和A3,對于公有該頂點的面片,將分別使用分裂出的3個新頂點的其中之一。數(shù)學(xué)坐標上,3個新頂點的數(shù)值是相同的。通過這樣的處理后,系統(tǒng)的底層引擎將會將分裂出的坐標視為單獨點進行法線計算,從而避免了頂點處法線的平均計算。

圖4 頂點分裂
在得到系統(tǒng)對構(gòu)成模型的面片的著色處理模式后,需要采用系統(tǒng)支持的模型格式,按照前述準則進行存儲,才能導(dǎo)入系統(tǒng)中,最終達到預(yù)期的顯示效果。
在Skyline系統(tǒng)中,內(nèi)在支持的模型格式的文檔資料未公布。技術(shù)層次上有3種方式可供選擇:①使用內(nèi)在基本組件的方式進行;② 計算模型的三角面片構(gòu)成,然后生成模型的三角面片組;③ 生成中間格式,即微軟的*.x[8]文件,然后導(dǎo)入。方法1的著色效果不能滿足立體感的要求;方法2會導(dǎo)致系統(tǒng)中存在大量的面片模型,對系統(tǒng)造成負擔(dān);方法3將會提供同系統(tǒng)內(nèi)置模型一樣的效率。*.x格式存在兩種版本:一種是二進制版本,另一種是文本格式。
在*.x文件中包含了一系列相關(guān)的信息,包括文件頭、模型的頂點列表、面片索引、材質(zhì)和紋理等,材質(zhì)和紋理等信息為可選信息。默認情況下,對于頂點的存放采用圖1中的結(jié)構(gòu)進行,根據(jù)算法的選項對構(gòu)成模型的頂點進行分裂處理,即視為不同的頂點存放。
最后實現(xiàn)的算法提供了對模型格網(wǎng)數(shù)的控制,著色模式的渲染等。在各項參數(shù)的控制下能實現(xiàn)相應(yīng)的立體感模型。
結(jié)合地下管線,使用C語言實現(xiàn)了建模算法。
圖5和圖6為本文算法應(yīng)用于實際管線建模和管理系統(tǒng)中的效果。圓柱體類的管線采用了光滑著色模式,立方體類型的管線則采用了恒定著色模式,同時程序在對管線建模的過程中,對構(gòu)成模型的面片數(shù)量作了相應(yīng)的控制,最終所生成的模型僅以KB為單位,也規(guī)避了構(gòu)成模型面片數(shù)量對系統(tǒng)運行負擔(dān)的沖擊問題。雖然根據(jù)規(guī)范[9]只采用了單一的顏色進行著色,但是立體感的效果是很明顯的。

圖5 針對管線的建模效果1
本文以實際工作中大量使用的三維GIS平臺Skyline為例,研究了帶有真實感模型的自動構(gòu)建方法,其中涉及了對構(gòu)成模型面片的著色研究及通過算法根據(jù)選項進行著色模式的控制,并且最后應(yīng)用到了針對管線的建模及管理中。對于管線而言,依據(jù)國家相應(yīng)的規(guī)范,使用不同顏色對光照的著色模型進行渲染,最終所建出的白模已經(jīng)能夠滿足應(yīng)用的要求。實際工作中,還有很多更為復(fù)雜的對象需要考慮物體的材質(zhì)和紋理等。為了能夠進一步提升應(yīng)用的范圍,下一步將對材質(zhì)和紋理進行參數(shù)化處理,將會獲取更加實用的方法。

圖6 針對管線的建模效果2
[1] 施加松,劉建忠.3D GIS技術(shù)研究發(fā)展綜述[J].測繪科學(xué),2005,30(5):117-119.
[2] 李青元,林宗堅.真三維GIS技術(shù)研究的現(xiàn)狀與發(fā)展[J].測繪科學(xué),2000,25(2):47-51.
[3] 湯國安,楊昕.ArcGIS地理信息系統(tǒng)空間分析實驗教程[M].北京:科學(xué)出版社,2006.
[4] 戴洪寶.基于Skyline的數(shù)字城市三維可視化系統(tǒng)的研究[D].西安:西安科技大學(xué),2010.
[5] 侯妙樂,劉忠貞,孫維先.基于Skyline的三維數(shù)字校園[J].北京建筑工程學(xué)院學(xué)報,2008(4):18-21.
[6] 吳信才.數(shù)據(jù)中心集成開發(fā)平臺-新一代GIS應(yīng)用開發(fā)模式[M].北京:電子工業(yè)出版社,2010.
[7] 符海芳,朱建軍,崔偉宏.3D GIS數(shù)據(jù)模型的研究[J].地球信息科學(xué),2002(2):45-49.
[8] Frank D.Luna.Introduction to 3D Game Programming with directX 9.0(WordwareGameandGraphics,Library)[M].VSA:Jones&Bartlett Publishers,2003.
[9] CJJ61—2003城市地下管線探測技術(shù)規(guī)程[S].北京:中國建筑工業(yè)出版社,2003.
A Realistic Model Generation Method Using Skyline Platform
LI Guozhu,MA Bo
0494-0911(2012)08-0039-04
P208
B
2012-05-14
李國柱(1973—),男,云南昆明人,碩士,高級工程師,主要研究方向為三維GIS及變形監(jiān)測。