楊 丹,湯曉安
摘 要:針對港口三維監控系統中云繪制的特點,分析云繪制的逼真度和實時性需求,研究相應的云繪制方法,提出一種基于噪聲紋理的云層繪制方法。該方法采用基于紋理構造云模型,降低了所需繪制的幾何數據;采用設置紋理重復模式,實時更改紋理矩陣,實現云層運動的效果,采用多紋理技術將兩張噪聲紋理成一定角度疊加,實現云自身形態的連續變化。通過該方法繪制了港口三維監控系統云層,具有較強的三維虛擬現實的真實感。實驗結果表明,該方法可顯著提高云繪制效率,顯示效果令人信服。
關鍵詞:三維監控系統;云繪制;噪聲紋理;多紋理
中圖分類號:TP311.13文獻標識碼:A
文章編號:1004-373X(2009)20-040-02
Method of Plotting Clouds Based on Noise-Texture Operator
YANG Dan,TANG Xiaoan
(College of Electronic Science and Engineering,National University of Defense Technology,Changsha,410073,China)
Abstract:Aiming at the features of plotting clouds in the port three-dimensional monitoring system,the fidelity and timeliness requirements of plotting clouds are analysed,the method of corresponding plotting clouds is researched,a method of plotting clouds based on a noise-texture operator is put forward.This method uses cloud model based on texture and reduces the geometry data ,sets texture repeat mode,changes the texture of real-time matrix and realizes the cloud layer movement effect.Using the multi-texture technology superimposes two noise textures according to a certain point of view and realizes the cloud continual change.In this way,plot clouds of the port three-dimensional monitoring system and the realistic of three-dimensional virtual reality is enhanced.Experiments demonstrate that the method could improve efficiency of plotting clouds,so the effect of display is convinced.
Keywords:three-dimensional monitoring system;plotting clouds;noise-texture;multi-texture
云的繪制在港口三維監控系統中,不屬于最核心的顯示內容,但是對于增強三維虛擬現實的沉浸感有非常大的作用。因此必須找到顯示效果既能令人信服,同時繪制效率又高的云繪制方法。
在此面向剛空三維監控系統中云的特點,針對現有云繪制方法的不足,提出了構造Perline噪聲紋理,并采用簡便合理的紋理矩陣變換方法,實現了云層的繪制,其具有一定的應用參考價值。
1 經典的云層建模
1.1 云層建模的四種常用方法
體過程建模方法(Volumetrie Proceduml Modeling)是一種過程建模方法。體過程也稱為超紋理(Hypertextures)、體密集度函數(Volume Density Functions)或者模糊滴狀斑點(Fuzzy Blobbies),它利用一定算法對三角體對象和自然現象進行定義和動畫[1]。1985年Geoffrey Y.Gardner提出的云模型由一個天空平面、橢球體和數學紋理函數三部分組成。同年,Ken Perlin給出的Perlin噪聲函數[2]。所有種類的紋理都可以用Perlin噪聲來生成,云紋理的渲染尤其適合于Perlin噪聲,已經用來生成云的三維動畫,該方法目前仍在研究和發展中[3]。
1.2 常用方法的不足之處
進一步研究發現,場景中的云分布隨機性比較強,但是云的運動和其本身形態的變化必須是連續的。為了滿足這一要求,傳統的基于噪聲紋理的云繪制方法需要建立多個連續變化的噪聲圖像,在繪制時按照順序依次調用,產生連續變化的效果。然而這種方法有幾個缺陷[4]:噪聲紋理序列的生成過程較長,需要在預處理中實現;因為噪聲紋理在預處理階段生成,則在系統實時繪制過程中,沒辦法進行修改,紋理重復出現的問題較突出;如果要減小紋理重復問題,就必須增加紋理序列的內容,對繪制資源的消耗嚴重;如果繪制場景的天空范圍較大,則生成的噪聲紋理分辨率也要求較高,同樣也會嚴重消耗繪制資源。
基于以上幾點考慮,這里認為如果能夠在系統運行時實時生成噪聲紋理,同時減少噪聲紋理序列的數量,就能較好地解決問題[5]。
2 改進的云片繪制技術
港口三維監控系統中視點的瀏覽高度最高可以達到200 m,而在晴天狀態時,在這一高度以下的空間觀察,通常能見到的云都處于相對較高的大氣層空間,因此云的顯示效果集中表現為云層的底面,而云的厚度不容易被觀察到。因此采用基于紋理的方法來構造云模型,將所需繪制的幾何數據降到最低[6]。
在實際應用中,生成一張分辨率為512×512的Perlin噪聲圖像(如圖1所示)作為紋理覆蓋整個天空,其中灰度值與圖像的透明度成對應關系,即Alpha=GrayScale [7]。為了實現云的連續運動,可以設置紋理重復模式,并且實時更改紋理矩陣,實現紋理圖像的偏移,從而達到云層運動的效果。如圖2所示,虛框表示一張完整的紋理圖像,在繪制過程中不斷改變紋理偏移矩陣,在繪制中使用的白色豎線框中的圖像作為紋理[8]。
圖1 Perlin噪聲圖像
圖2 紋理矩陣偏移效果
進一步,為了實現云自身形態的連續變化,可以利用多紋理技術將兩張噪聲紋理成一定角度疊加,輸出的噪聲紋理圖像為[9]Alphaout=Alpha1×Alpha2,從而保證兩張紋理疊加輸出的圖像透明度仍然在[0,1]范圍內,如圖3所示。
圖3 紋理疊加效果
由于只使用了一張噪聲紋理圖像,大大減少了繪制資源的占用和消耗,并且通過多線程方式,能夠實時生成新的噪聲紋理,從而實現云層的多樣性變化。在實際應用中,達到了非常真實的效果[10]。實際效果如圖4所示。
圖4 繪制云層的場景圖
3 結 語
本文針對港口三維監控子系統逼真度和實時性的要求,對云層繪制算法進行了研究,提出了通過構造Perline噪聲紋理,并采用簡便合理的紋理矩陣變換方法,實現了云層的繪制,具有一定的應用參考價值。
基于本文思路的云層繪制技術現已在港口領域投入測試應用,實現了三維可視化監控系統的逼真度和實時性要求,為其他領域提供了一定的輔助分析手段。
參考文獻
[1]Ebert D S.Advanced Modeling Techniques for Computer Graphics [J].ACM Computing Surveys,1996,28(1):153-156.
[2]何東建,耿楠,張義寬.數字圖像處理[M] .西安:西安電子科技大學出版社,2003.
[3]Pallister K.Generating Procedural Clouds in Real Time on 3D Hard-ware[EB/OL].http://cedar.intel.com/software/idap/media/pdf/games/procedural_clouds.pdf,2003.
[4]齊敏,郝重陽,佟明安.三維地形生成及實時顯示技術進展[J].中國圖像圖形學報,2000,5(4):269-275.
[5]Kiril Vidimce,Wim Sweldens,Peter Schroder.Normal Meshes Proceedings of Siggraph[M].Addison Wisley,2000.
[6]謝美華,王正明.基于圖像分解的多核非線性擴散去噪方法[J].計算機應用,2005,25(4):757-759.
[7]姜東煥,馮象初,宋國鄉.基于非線性小波閾值的各向異性擴散方程[J].電子學報,2006,34(1):170-172.
[8]莊新華.Computer Vision Graphics and Image Processing[Z].1990.
[9]章孝燦,黃智才,趙元洪.遙感數字圖像處理[M].杭州:浙江大學出版社,1997.
[10]Haralick R M,Shanmugan K,Dinstein I.Textural Features for Image Classification[J].IEEE Trans.on Syst.Man Cyber.,1973,3(6):610-621.