潘立武,朱坤華,吳慧玲
(河南牧業經濟學院,河南鄭州450011)
?
基于Bézier曲線的三維河流仿真研究
潘立武,朱坤華,吳慧玲
(河南牧業經濟學院,河南鄭州450011)
摘要:模擬河流和湖海等大面積水域本身就是個具有挑戰性的問題,尤其是對具有復雜河網的河流的三維仿真。針對具有多個交匯點的復雜河流的仿真,在Hendrickx提出的實時河網渲染的基礎上,提出了一種基于Bézier曲線和法向貼圖的三維河流仿真改進方法,改用一種快速三角網相交檢測方法提高了河流的渲染速度,同時在GPU架構上實現了河水的渲染,顯著改進了其效率。
關鍵詞:Bézier曲線;河流仿真;三角形相交;法向貼圖;三維仿真
0引言
紋理方法就是僅僅通過紋理貼圖實現河流仿真,由于紋理貼圖實現簡單且效率高,但缺乏動態效果[1,2]。水面波動法采用多個隨機正弦波疊加來實現水體表面高程動態變化的效果,克服了基本紋理方法模擬水面是一個平面的缺陷。但需要較多的控制點來構建大范圍大尺度水面,存在曲面波形難以控制和增加計算量的問題[3]。基于流函數的方法通過計算河流表面水流速度場,然后使用速度場驅動河流內部的PoissonDisk采樣點實現河水的實時仿真[4,5],但該方法難以適應大范圍的復雜河網的河流仿真。基于紋理圖像的流場可視化方法[6]以流場中粒子的運作為核心,通過用背景圖像的運動變形代替流體粒子運動,從而用宏觀圖形來表達用微觀粒子所表示的流場,該方法適合于流態復雜多變、細節較多的局部區域,能展示出流場的更多細節,對流場數據的適應性好。不足之處是計算量較大,需要流場網格數據和水動力學模型計算結果。
對于諸多的河流仿真方法,每種都有自己的優缺點和適用范圍,需要開發人員在實際建模中選擇合適的方法,甚至綜合使用多種方法。針對傳統紋理映射方法實現大規模河流仿真不能滿足復雜環境條件下逼真水流的問題,基于Hendrickx等[7]提出的基于Bézier曲線和流線法向貼圖的河流實時仿真方法,本文提出一種改進的方法,該方法在滿足視覺要求的前提下能實現實時交互,尤其適合具有復雜河網的河流仿真。

原理
Hendrickx等[7]提出了基于Bézier曲線和流線法向貼圖的河流實時仿真方法,原理如下。
1.1二次Bézier曲線
對給定點P0,P1,…,Pn,n次Bézier曲線C(t)定義如式(1)所示:
(1)
式中,Bk,n(t)是基函數,定義如下:
作為太陽能光伏發電系統,其系統結構和參數是非常強大和復雜的,因為在技術和功能設計上,要利用發電系統,將太陽能在短時間內轉化成電能裝置。太陽能光伏發電系統中,主要包含了一些常見并重要的光伏電池組件、電力轉換裝置、蓄電池組及變壓器等,要保證這些組件能正常運行,并對其工作情況進行監控和管理,就必須使用電氣自動化技術。通過電氣自動化技術,將直流光伏電能轉換為交流電能,在輸送到電網中,為社會提供電力支持。電氣自動化在太陽能光伏發電中是一種不可缺少的技術,更是一項偉大的技術。
(2)
根據式(1),二次方Bézier曲線可表示為給定點P0,P1,P2和基函數B的路徑C(t)可以定義如式(3)所示:


(3)
即可表示為C(t)=(1-t)2P0+2t(1-t)P1+t2P2。本文的Bézier曲線的繪制等相關算法都是基于上述公式。
1.2方法原理
(1)繪制河網河段。將河流按照流向分成多個段,逐河段對河流中心采樣,得到每個河段對應的一系列采樣點,以這些采樣點為二階Bézier曲線的控制點,在給定繪制內寬度的條件下,繪制河網。將多個河段通過Bézier曲線進行平滑連接,構成研究的河流對象,如圖1所示。這樣就可將所有的采樣點以Bézier曲線相連接,形成河流河網。

圖1 Bézier河段和投影像素到曲線示意
(2)渲染河段。通常渲染Bézier曲線是沿著曲線按照頻率固定的采樣得到一系列幾何形(多為四邊形),將采樣的幾何形平鋪到渲染區域。使用這種方法的缺點是,為了得到平滑的渲染效果,需要大量采樣,將極大增加渲染頂點的數量,難以滿足實時要求。本文提出的方法僅渲染Bézier河段的包圍四邊形,只使用四邊形的4個頂點進行計算,如圖1所示。由于該方法具有較好的并行性,非常適合在GPU上實現計算。根據投影點的位置和位移確定紋理坐標,實現法向紋理貼圖,通過GPU可實現河流水面的各種渲染效果。由于使用較少的頂點數,對大規模河網河流,也不需要使用LOD技術,其渲染的性能主要依賴于在屏幕空間總的可視水面大小。

使用二次Bézier曲線的方法能準確描述復雜的河網及河流交匯,通過對交匯的兩個二次Bézier河段進行比較,確定河段中重疊的部分并將將重疊部分放入同一個河段進行渲染,河段重疊部分的判定是影響該方法效率的一個重要因素。其原理是通過構造河段三角形網格,比較重疊河段的所有構成三角形判定2個河段的2個三角形是否相交,進一步確定重疊部分的所有三角形。原始的Bézier曲線河流仿真使用蠻力方法(bruteforcemethod)對構成交匯的河段的所有三角形進行兩兩比較,進行相交檢測,該方法由于比較的次數較多,效率不高。本文使用基于PhilippeGuigue和OlivierDevillers提出的快速三角形相交測試算法[8],對三角形重疊判定進行改進以提高計算效率。
2.1算法原理
文獻[8]中提出的算法是利用三角形各頂點構成行列式值正負的幾何意義來判斷三角形中點、線、面之間的相對位置關系的。使用一個由4×4矩陣(三維)的行列式表示每個頂點的方向,將2個三角形之間的相交簡化為檢測8個方向對應的符號問題。對二維平面中的2個三角形,該算法的原理如下。
給定a、b、c 3個點,其坐標分別為a=(ax,ay),b=(bx,by),c=(cx,cy),定義行列式如下:
(4)
其幾何意義是:如果[a,b,c]>0,表示a,b,c三個點沿著abc組成的邊界形成逆時針排列順序;如果[ a,b,c]<0,表示a,b,c三點構造順時針順序;如果[a,b,c]=0,則表示a,b,c三點在一條直線上[8-10]。因此,如圖2所示三角形abc被分別劃分為正負2個不同區域。

圖2 a、b和c劃分的正負兩個區域
根據式(4),可以確定一個點和一個三角形的位置關系,如圖3所示,最終可以判斷任意一個三角形T1(p1,q1,r1)是否和圖3中的三角形T2(p2,q2,r2)相交,詳情請參閱文獻[8]。

圖3 p1和三角形三條邊對應區域的符號
2.2算法改進
基于文獻[8]提出的快速三角形相交測試算法采用包圍盒方法,能首先排除掉大量不相交三角形面片,然后再對包圍盒中的三角形進行快速相交測試,能顯著提高系統的運行效率。本文采用層次多包圍盒進一步改進包圍盒技術,首先使用圓形包圍盒先進行第1次相交判斷、接著使用矩形包圍盒進一步判斷,最后使用三角形包圍盒進行相交判斷,對相交的三角形包圍盒進行多次分裂求交,直到每個三角形包圍盒僅包含1個三角形時使用三角形相交測試算法[11]。算法流程如圖4所示。

圖4 改進算法的流程
算法主要實現步驟為:①對有相同控制點的2個河段,分別建立三角形網格進行細分。②建立圓形包圍盒。比較圓形包圍盒,如果沒有重疊部分,則結束;如有重疊部分,進入下一步比較。③對模型的矩形包圍盒進行比較,如果沒有重疊部分,則結束;如有重疊部分,進入下一步比較。④求出模型的相交部分。對相交部分中屬于一個模型的一個三角形和另一個模型中的各三角形進行相交測試。如相交,則標識該三角形以便合并和進行渲染。否則,排除該三角形,重復進行下一個三角形的相交測試。⑤對剩余部分的模型循環步驟②③④,直到所有相交的三角形都被標識出來。
3仿真結果
如圖1所示,d為投影點到Bézier曲線的距離,如果d大于或小于河流寬度的一半,則這樣的投影點將被丟棄。L為沿Bézier曲線到所要的投影點之間的弧長,增加一個時間獨立的的偏移t,可得投影點的紋理坐標(u,v)為(d,L+t)。這樣可以使用少量的頂點數,獲得平滑的渲染曲線。使計算弧長L運行在河段的水面上進行的紋理貼圖,最終渲染效果見圖5。

圖5 最終渲染效果
傳統的Bézier曲線紋理鑲嵌方法對有連接交匯的曲線是不適合的,因為對每個曲線段產生的幾何形在交匯出是重疊的,并且這些交匯的曲線段不允許進行復雜的混合。本文的方法對重疊的部分通過比較用一個大的包圍四邊形進行合并,這個大的四邊形中的每個像素點將投影到每個重疊的河流河段,經比較,如果投影點位于多個河流段的重疊交匯處,則使用基于到這些段的距離的插值方法最終的渲染結果,如圖5是河流交匯處的渲染效果。
三角形相交測試算法改進前后的比較如圖6所示,取三角形個數分別為512、1 024、2 048、4 096,經實驗比較,隨著三角形數目的不斷增多,改進后的三角形相交測試算法具有更快的運行速度、性能優于改進前的算法。

圖6 三角形相交測試算法改進前后的對比
4結論
本文提出了一種改進的Bézier曲線和法向貼圖的三維河流仿真方法,使用Bézier曲線描述河流的形態,采用四邊形劃分河流河段,便于繪制復雜的河流河網和實現紋理貼圖,通過像素投射到Bézier曲線上執行渲染,使用GPU實現并行計算和渲染效果的實現。通過改進的快速三角形相交測試算法在保證渲染逼真的可視化效果的同時,有效的提高了系統的運行速度,能滿足復雜河流河網實時仿真的需求。
參考文獻:
[1]張尚弘, 易雨君, 王興奎. 流域虛擬仿真模擬[M]. 北京: 科學出版社, 2011.
[2]馬駿, 朱衡君, 龔建華. 基于Cg和OpenGL的實時水面環境模擬[J]. 系統仿真學報, 2006, 18(2): 395- 400.
[3]葉海建, 劉旭東, 羅輝. 南水北調視景仿真系統中動態水環境的模擬[J]. 中國農業大學學報, 2003, 8(4): 58- 62.
[4]YUQ,NEYRETF,BRUNETONE,etal.Scalablereal-timeanimationofrivers[C]//ComputerGraphicsForum.BlackwellPublishingLtd., 2009, 28(2): 239- 248.
[5]冉劍, 丁瑩. 基于Poisson圓盤分布的河流仿真技術[J]. 北京航空航天大學學報, 2012, 38(12): 1649- 1652.
[6]VanWIJKJJ.Imagebasedflowvisualization[C]//ACMTransactionsonGraphics(TOG).ACM, 2002, 21(3): 745- 754.
[7]HENDRICKXQ,SMELIKR,BIDARRAR.Real-timerenderingofrivernetworks[C]//Proceedingsofthe2010ACMSIGGRAPHSymposiumonInteractive3DGraphicsandGames.NewYork:ACM. 2010.
[8]GUIGUEP,DEVILLERSO.Fastandrobusttriangle-triangleoverlaptestusingorientationpredicates[J].Journalofgraphicstools, 2003, 8(1): 25- 32.
[9]許強, 呂曉峰, 馬登武. 三角形和三角形相交測試技術研究[J]. 計算機仿真, 2006, 23(08): 76- 78, 145.
[10]武紅玉, 趙秋宇. 三角形與三角形相交測試的改進算法[J]. 許昌學院學報, 2012(2): 29- 32.
[11]張少麗, 王毅剛, 邊浩. 一種提高三角網格模型求交效率的算法[J]. 計算機工程, 2010, 36(17): 213- 215.
(責任編輯王琪)
收稿日期:2015- 05- 28
基金項目:河南省高等學校重點科研項目(15B520009);河南省科技廳重點科技攻關(152102210320);河南省教育技術裝備與實踐教育研究重點項目(GZS026);河南省牧業經濟學院科技創新團隊(HUAHE2015006)
作者簡介:潘立武(1971—),男,河南杞縣人,系統分析師,博士,研究方向為系統集成、軟件開發、嵌入式等.
中圖分類號:TP391.9
文獻標識碼:A
文章編號:0559- 9342(2016)04- 0086- 04
ResearchofThree-dimensionalRiverSimulationBasedonBézierCurve
PANLiwu,ZHUKunhua,WUHuiling
(HenanUniversityofAnimalHusbandry&Economy,Zhengzhou450011,Henan,China)
Abstract:The simulation of rivers and lakes with large scale and scope water is a challenge, especially for three-dimensional river simulation with complex river network. Focusing on complex river simulation with multiple junctions of river network, an improved three-dimensional real-time river simulation method is proposed based on Bézier curves and normal map of river flows according to Hendrickx’ research results. However, the original method presented by Hendrickx uses a simple and violence comparison method for intersection detection of triangle river networks. A fast triangulation-intersection-detection method is employed herein to improve the rendering speed of river, and meanwhile, the rendering of river water is realized by using GPU technology. The result of simulation shows that the rendering and running efficiency has a significantly improvement.
Key Words:Bézier curve; river simulation; triangles intersect; normal map; three-dimensional simulation