李國(guó)柱,馬 波
(昆明市測(cè)繪研究院,云南昆明650051)
Skyline平臺(tái)下真實(shí)感模型生成方法研究
李國(guó)柱,馬 波
(昆明市測(cè)繪研究院,云南昆明650051)
以廣泛投入實(shí)際應(yīng)用的3D GIS平臺(tái)Skyline為基礎(chǔ)平臺(tái),從著色的角度研究真實(shí)感模型的程序自動(dòng)生成方法。程序生成的方式除了可以增強(qiáng)對(duì)象的立體感之外,還可以對(duì)構(gòu)成模型的面片數(shù)量加以控制,以免對(duì)系統(tǒng)造成運(yùn)行負(fù)擔(dān)。最后將程序成功地運(yùn)用到管線的自動(dòng)建模及數(shù)據(jù)管理中。
Skyline;三維建模;光照處理;著色模式;真實(shí)感渲染
三維GIS[1-2]是目前地理信息技術(shù)發(fā)展的主流方向之一?,F(xiàn)已投入到實(shí)際應(yīng)用中的平臺(tái)包括Arc-Scene[3]、Skyline[4-5]和 MapGIS K9[6]等。此類(lèi)平臺(tái)提供了針對(duì)行業(yè)常規(guī)數(shù)據(jù)的支持,能夠無(wú)縫地將既有的2D GIS數(shù)據(jù)集成進(jìn)來(lái),進(jìn)而進(jìn)行空間分析等。其中最為顯著的地方是提供了對(duì)3D GIS的支持,總體來(lái)看都提供了針對(duì)三維場(chǎng)景的加載、顯示、漫游和行業(yè)相關(guān)的分析和操作等。實(shí)際上,對(duì)局部區(qū)域進(jìn)行三維場(chǎng)景構(gòu)建時(shí),針對(duì)目標(biāo)對(duì)象的三維建模[7]是其中的重點(diǎn),具體工作中常通過(guò)借助3D Studio MAX或是Maya等造型軟件進(jìn)行。在工作中,主要依托Skyline作為底層的三維平臺(tái),其中通過(guò)造型軟件所制作出的模型在三維視覺(jué)效果上并不盡如人意。具體的問(wèn)題包括:采用造型軟件加工出的白模,在導(dǎo)入系統(tǒng)時(shí)由于不能控制子面片對(duì)光照的反應(yīng),會(huì)導(dǎo)致立體感的缺失;使用Skyline系統(tǒng)中內(nèi)嵌的基本幾何組件來(lái)構(gòu)建復(fù)雜對(duì)象時(shí)也很難體現(xiàn)出立體感。技術(shù)上,為了能夠獲取到模型更優(yōu)的顯示效果,可通過(guò)增加模型面片的方式進(jìn)行。但是隨著構(gòu)成模型面片數(shù)量的增長(zhǎng),會(huì)導(dǎo)致系統(tǒng)的加載延遲。為了能夠進(jìn)一步提升模型加載的效率及其較優(yōu)的顯示效果,本文研究Skyline平臺(tái)下強(qiáng)立體感模型的構(gòu)建方法。
在基于面片的計(jì)算機(jī)圖形學(xué)中,模型通常由頂點(diǎn)集合和面片集合所構(gòu)成。技術(shù)上常采用頂點(diǎn)索引列表的方式,即將構(gòu)成模型的全部頂點(diǎn)存放在一個(gè)公有數(shù)組中,而對(duì)于構(gòu)成模型的子面片的頂點(diǎn)序列則利用對(duì)應(yīng)頂點(diǎn)在數(shù)組中索引予以記錄。如圖1所示的立方體,基本面片為三角形。該立方體對(duì)象由8個(gè)頂點(diǎn)和12個(gè)子三角面片構(gòu)成。在內(nèi)存中存放時(shí),8個(gè)頂點(diǎn)的坐標(biāo)單獨(dú)存放于一個(gè)公有數(shù)組中,面片中涉及的頂點(diǎn)采用在數(shù)組中對(duì)應(yīng)的索引予以記錄。通過(guò)頂點(diǎn)索引的方式不僅能夠有效地減少頂點(diǎn)重復(fù)存放導(dǎo)致的內(nèi)存浪費(fèi),還可以規(guī)避因?yàn)楦↑c(diǎn)數(shù)計(jì)算的精度問(wèn)題所帶來(lái)的模型開(kāi)裂問(wèn)題。
圖1 模型的存儲(chǔ)結(jié)構(gòu)
頂點(diǎn)索引順序依據(jù)外法線原則進(jìn)行。對(duì)于模型的真實(shí)感效果而言,并不取決于模型是否采用頂點(diǎn)索引的存儲(chǔ)方式,而是取決于三維平臺(tái)底層渲染引擎對(duì)待面片法線和頂點(diǎn)法線的方式。
面片的外法線是平臺(tái)底層三維引擎進(jìn)行光照計(jì)算的依據(jù)。通過(guò)計(jì)算給定面片法線與光線的夾角,能夠計(jì)算出光照強(qiáng)度,從而獲取面片本身的明暗程度。影響面片光照效果的量除了法線外還有材質(zhì),材質(zhì)影響著對(duì)象表面對(duì)光線的反射和散射等的程度。明顯的,構(gòu)成模型的每個(gè)面片的法線能夠使模型呈現(xiàn)出真實(shí)感。渲染引擎中考慮的光照模型包括環(huán)境光、散射光和鏡面反射光等。在進(jìn)行具體的真實(shí)感處理時(shí),都?xì)w類(lèi)為對(duì)頂點(diǎn)的處理。
在計(jì)算出面片的光照強(qiáng)度之后,與立體感存在直接相關(guān)的便是著色模式的選擇,一般可以分為固定著色、恒定著色和光滑著色。固定著色是在不考慮光照的影響下,采用一種單一的顏色將構(gòu)成對(duì)象的多邊形填充為實(shí)心多邊形的一種著色模式。恒定著色則是在顧及光照的條件下,根據(jù)構(gòu)成物體的每個(gè)面片的法線進(jìn)行著色的一種方式,這種著色模式是針對(duì)面片而言的。恒定著色運(yùn)用在由平面構(gòu)成的物體上具有較強(qiáng)的優(yōu)勢(shì),而對(duì)于類(lèi)似球體這樣由曲面構(gòu)成的物體,在面片交界處能看到明顯的分界。光滑著色是為了能夠解決該問(wèn)題而被提出的一種著色方法,其基本原理是針對(duì)每個(gè)面片分別計(jì)算法線,然后對(duì)于多個(gè)面片公共的交點(diǎn)采用各面片法線的均值,實(shí)際上是一種插值計(jì)算方法。
圖2和圖3分別為立方體和空間球體在不同著色模式下的效果。圖2(a)和圖3(a)為線框繪制效果;圖2(b)和圖3(b)為固定著色模式下的效果;圖2 (c)和圖3(c)為恒定模式下的著色效果;圖2(d)和圖3(d)為光滑著色模式下的繪制效果。通過(guò)觀察可以發(fā)現(xiàn),固定著色模式下的繪制效果是沒(méi)有立體感而言的。對(duì)于立方體這樣由平面構(gòu)成的對(duì)象恒定著色的效果要優(yōu)于光滑著色,光滑著色在頂點(diǎn)處出現(xiàn)的過(guò)渡,反而導(dǎo)致效果變差。對(duì)于球體而言則剛好相反,光滑著色的效果在描述曲面對(duì)象時(shí)優(yōu)于恒定著色。
圖2 立方體在不同著色模式下的效果
技術(shù)上來(lái)講,對(duì)于模型所采用的著色模式取決于底層渲染引擎中,即三維渲染引擎中應(yīng)該提供相應(yīng)的選擇機(jī)制以輔助決定對(duì)模型進(jìn)行渲染時(shí)是采用恒定著色模式、光滑著色模式或是其某種組合方式。
圖3 空間球體在不同著色模式下的效果
關(guān)于Skyline平臺(tái)中的建模,一般包括兩種方式:通過(guò)內(nèi)置基本幾何組件構(gòu)建或是借助于3D Studio MAX等造型軟件進(jìn)行建模,然后利用第三方插件轉(zhuǎn)換為系統(tǒng)支持的模型格式。
就系統(tǒng)對(duì)模型的真實(shí)感處理而言,未有明確的文檔對(duì)光照計(jì)算方式和著色模式作出說(shuō)明。模型的立體感是通過(guò)對(duì)材質(zhì)和光照的反應(yīng),繼而通過(guò)著色模式所體現(xiàn)出來(lái)的。對(duì)格網(wǎng)模型中的面片進(jìn)行著色處理后,獲取的是白模,為了彌補(bǔ)模型的細(xì)節(jié)和提升視覺(jué)效果,需要再進(jìn)行紋理貼圖處理。技術(shù)上,紋理貼圖不是立體感的核心。
以白模為對(duì)象,經(jīng)過(guò)對(duì)內(nèi)置幾何體組件和程序自動(dòng)生成的模型對(duì)比后發(fā)現(xiàn),內(nèi)置的幾何組件采用固定著色的模式;對(duì)于導(dǎo)入的模型,在默認(rèn)情況下系統(tǒng)底層引擎以頂點(diǎn)為單位。Skyline平臺(tái)中對(duì)模型的存放同樣遵循頂點(diǎn)坐標(biāo)和索引的方式,對(duì)于給定的頂點(diǎn),該點(diǎn)的法線取該點(diǎn)共享面片法線的均值。也就是說(shuō),一般情況下,會(huì)采用光滑著色,所以對(duì)于構(gòu)建出的模型在頂點(diǎn)處有光滑的感覺(jué)。而為了能夠在此平臺(tái)中體現(xiàn)出明顯的立體感,需要對(duì)頂點(diǎn)的坐標(biāo)進(jìn)行分裂處理,通過(guò)這樣的處理,才能讓系統(tǒng)將共點(diǎn)面片分別視為不同的面片,進(jìn)而采用內(nèi)嵌的基于面片的著色模式。
就實(shí)際情況而言,Skyline平臺(tái)對(duì)面片格網(wǎng)是提供了恒定著色模式和光滑著色模式的,在操作接口上沒(méi)有提供控制著色的選項(xiàng)。直觀來(lái)說(shuō),模型是以圖1的方式進(jìn)行存儲(chǔ),著色效果如同圖2(d)和圖3 (d)。對(duì)于曲面對(duì)象而言是可以的,但是常規(guī)情況下,對(duì)于面片模型則不能滿足要求。為了能解決更一般的建模問(wèn)題,需要對(duì)圖1中的模型進(jìn)行頂點(diǎn)的分裂處理。對(duì)于多個(gè)面片共用的頂點(diǎn),為了實(shí)現(xiàn)恒定著色,需要將該點(diǎn)分裂到其所在的各個(gè)面片中。即以面片為單位,對(duì)模型進(jìn)行存儲(chǔ),其雖然擁有相同的坐標(biāo)值,卻擁有單獨(dú)的索引。
圖4為關(guān)于頂點(diǎn)分裂的說(shuō)明,圖中四面體ABCD由4個(gè)頂點(diǎn)組成,如果采用圖1中的存儲(chǔ)結(jié)構(gòu),最終建立的模型在頂點(diǎn)處將會(huì)被光滑化。該四面體由4個(gè)頂點(diǎn)組成,每個(gè)頂點(diǎn)被3個(gè)面片所分享,在頂點(diǎn)分裂處理時(shí),每個(gè)頂點(diǎn)被分裂為3個(gè)新的頂點(diǎn)。以點(diǎn)A為例,可分裂為A1、A2和A3,對(duì)于公有該頂點(diǎn)的面片,將分別使用分裂出的3個(gè)新頂點(diǎn)的其中之一。數(shù)學(xué)坐標(biāo)上,3個(gè)新頂點(diǎn)的數(shù)值是相同的。通過(guò)這樣的處理后,系統(tǒng)的底層引擎將會(huì)將分裂出的坐標(biāo)視為單獨(dú)點(diǎn)進(jìn)行法線計(jì)算,從而避免了頂點(diǎn)處法線的平均計(jì)算。
圖4 頂點(diǎn)分裂
在得到系統(tǒng)對(duì)構(gòu)成模型的面片的著色處理模式后,需要采用系統(tǒng)支持的模型格式,按照前述準(zhǔn)則進(jìn)行存儲(chǔ),才能導(dǎo)入系統(tǒng)中,最終達(dá)到預(yù)期的顯示效果。
在Skyline系統(tǒng)中,內(nèi)在支持的模型格式的文檔資料未公布。技術(shù)層次上有3種方式可供選擇:①使用內(nèi)在基本組件的方式進(jìn)行;② 計(jì)算模型的三角面片構(gòu)成,然后生成模型的三角面片組;③ 生成中間格式,即微軟的*.x[8]文件,然后導(dǎo)入。方法1的著色效果不能滿足立體感的要求;方法2會(huì)導(dǎo)致系統(tǒng)中存在大量的面片模型,對(duì)系統(tǒng)造成負(fù)擔(dān);方法3將會(huì)提供同系統(tǒng)內(nèi)置模型一樣的效率。*.x格式存在兩種版本:一種是二進(jìn)制版本,另一種是文本格式。
在*.x文件中包含了一系列相關(guān)的信息,包括文件頭、模型的頂點(diǎn)列表、面片索引、材質(zhì)和紋理等,材質(zhì)和紋理等信息為可選信息。默認(rèn)情況下,對(duì)于頂點(diǎn)的存放采用圖1中的結(jié)構(gòu)進(jìn)行,根據(jù)算法的選項(xiàng)對(duì)構(gòu)成模型的頂點(diǎn)進(jìn)行分裂處理,即視為不同的頂點(diǎn)存放。
最后實(shí)現(xiàn)的算法提供了對(duì)模型格網(wǎng)數(shù)的控制,著色模式的渲染等。在各項(xiàng)參數(shù)的控制下能實(shí)現(xiàn)相應(yīng)的立體感模型。
結(jié)合地下管線,使用C語(yǔ)言實(shí)現(xiàn)了建模算法。
圖5和圖6為本文算法應(yīng)用于實(shí)際管線建模和管理系統(tǒng)中的效果。圓柱體類(lèi)的管線采用了光滑著色模式,立方體類(lèi)型的管線則采用了恒定著色模式,同時(shí)程序在對(duì)管線建模的過(guò)程中,對(duì)構(gòu)成模型的面片數(shù)量作了相應(yīng)的控制,最終所生成的模型僅以KB為單位,也規(guī)避了構(gòu)成模型面片數(shù)量對(duì)系統(tǒng)運(yùn)行負(fù)擔(dān)的沖擊問(wèn)題。雖然根據(jù)規(guī)范[9]只采用了單一的顏色進(jìn)行著色,但是立體感的效果是很明顯的。
圖5 針對(duì)管線的建模效果1
本文以實(shí)際工作中大量使用的三維GIS平臺(tái)Skyline為例,研究了帶有真實(shí)感模型的自動(dòng)構(gòu)建方法,其中涉及了對(duì)構(gòu)成模型面片的著色研究及通過(guò)算法根據(jù)選項(xiàng)進(jìn)行著色模式的控制,并且最后應(yīng)用到了針對(duì)管線的建模及管理中。對(duì)于管線而言,依據(jù)國(guó)家相應(yīng)的規(guī)范,使用不同顏色對(duì)光照的著色模型進(jìn)行渲染,最終所建出的白模已經(jīng)能夠滿足應(yīng)用的要求。實(shí)際工作中,還有很多更為復(fù)雜的對(duì)象需要考慮物體的材質(zhì)和紋理等。為了能夠進(jìn)一步提升應(yīng)用的范圍,下一步將對(duì)材質(zhì)和紋理進(jìn)行參數(shù)化處理,將會(huì)獲取更加實(shí)用的方法。
圖6 針對(duì)管線的建模效果2
[1] 施加松,劉建忠.3D GIS技術(shù)研究發(fā)展綜述[J].測(cè)繪科學(xué),2005,30(5):117-119.
[2] 李青元,林宗堅(jiān).真三維GIS技術(shù)研究的現(xiàn)狀與發(fā)展[J].測(cè)繪科學(xué),2000,25(2):47-51.
[3] 湯國(guó)安,楊昕.ArcGIS地理信息系統(tǒng)空間分析實(shí)驗(yàn)教程[M].北京:科學(xué)出版社,2006.
[4] 戴洪寶.基于Skyline的數(shù)字城市三維可視化系統(tǒng)的研究[D].西安:西安科技大學(xué),2010.
[5] 侯妙樂(lè),劉忠貞,孫維先.基于Skyline的三維數(shù)字校園[J].北京建筑工程學(xué)院學(xué)報(bào),2008(4):18-21.
[6] 吳信才.數(shù)據(jù)中心集成開(kāi)發(fā)平臺(tái)-新一代GIS應(yīng)用開(kāi)發(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城市地下管線探測(cè)技術(shù)規(guī)程[S].北京:中國(guó)建筑工業(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
李國(guó)柱(1973—),男,云南昆明人,碩士,高級(jí)工程師,主要研究方向?yàn)槿SGIS及變形監(jiān)測(cè)。