朱盛彤
(江蘇緯信工程咨詢有限公司,江蘇南京 210014)
道路三維可視化(R3DV)是道路設計領域中比較新的概念,將與道路相關的平面、縱橫斷面等設計資料整合,依托軟件生成道路3D場景,模擬道路建成后的景觀。在道路線路設計中應用R3DV,能夠進一步提升設計質量。R3DV基于CAD建模,通過軟件完成動畫制作,其缺點是耗時長,且難以融入實際的設計過程中,但VR(虛擬現實)技術的出現為上述問題的解決提供了途徑。
R3DV設計實現的關鍵是道路、地面3D模型的建立,這個模型需要以2D平面、縱橫斷面設計為基礎。英國開發的MXROAD是道路設計系統中較具代表性的一款,其最為突出的特點是系統中加入“串”的概念,可以滿足道路復雜設計問題的需要,如交叉道口設計、環島、橋隧以及路面標線等。國內在道路線路設計方面常用的3D模型有兩種,即三角網和孔斯曲面模型。
(1)三角網模型。
三角網模型在自然或人工表面的模擬中應用較廣泛,其特點體現在模型易于構建、網形優,能夠用于道路設計面的表達。依據道路平面、縱橫斷面的設計結果,模型能夠準確計算橫斷面各個角點的3D坐標,將相鄰橫斷面對應角點連接形成三角網。
(2)孔斯曲面模型。
孔斯曲面屬于計算機科學技術范疇,是一種適合計算機輔助設計的曲面構造方法,通過連接大量曲面片組成具有復雜特征的曲面,所有用于曲面構造的曲面片均由四條邊界確定。隨著孔斯曲面模型不斷完善,其被用于道路設計面模型建立,可以實現面和片之間的光滑連接。
整體模型的構建比單一模型復雜,其難點問題為設計面內有地形數據點。構建整體模型的過程中,地形數據點無法直接參與網形構建,設計面本身為多個具有復雜性特點的不規則區域,利用點判斷區域內每一個地形點的耗時較長。針對這一情況,可以基于動態算法構建CDT(三角網)理論,賦予數據點、三角形面相應的屬性,快速完成拼合交線點建網,以此作為約束條件嵌入三角網內,賦予拼合交線區域內的三角形設計面屬性,賦予區域外三角形地表面屬性。有其他點插入時,若數據點為設計點屬性,可以將其插入三角內,為地面點屬性時,不插入。這樣可以在較短的時間內,將落在設計面區域的地形點有效剔除。
在3DS(三維場景)中對道路線形進行設計,有助于評判線形的優劣以及對環境和行車安全的影響。3DS需要依托計算機、利用相關軟件生成,這一過程與拍攝照片類似。
道路3DS中,實時動態空間觀察的實現應有較高的渲染幀速率作為基本保障,為了達到比較好的視覺效果時,速率一般不低于30幀/s。每產生一幀圖像都要完成模型坐標、模型變換、世界坐標、觀察變換、觀察坐標、投影變換、投影坐標、設備變換、設備坐標等步驟。3DS比較大時,一幀圖像的生成要耗費大量時間,會對渲染的幀速率造成不利影響。采用模型簡化的方法能夠使該問題得到有效解決。本文基于OpenGL(開放式圖像庫)實現動態三維瀏覽與顯示,OpenGL是一款高性能的軟件包,具有視景實時瀏覽、3D圖形繪制等強大的功能。
從本質的角度分析,OpenGL是執行機制,執行的前提是狀態,OpenGL相關命令的執行全都被置于不同的狀態中,并保持到有新的命令改變當前狀態為止。
OpenGL命令源自以下圖形庫,分別為GLU(實用庫)、GLX(擴展庫)、GLAUX(輔助庫)。除了命令外,OpenGL還包括多個動畫操作函數,能夠對幾何造型進行三維仿真。
OpenGL的基本操作流程如圖1所示。

圖1 OpenGL的基本操作流程
OpenGL提供了可用于三維觀察的函數,但直接使用這些函數難以獲得視參數,無法實現場景簡化。可以依據三維觀察的基本原理,編寫相關程序,實現視參數的獲取及場景簡化,大幅度提高設計效率。
OpenGL提供的函數庫包括光照模型計算、紋理映射等,可以為軟件編程帶來便利??梢越柚鶲penGL對光源的具體位置、強度以及材質屬性等參數進行設置,執行光照計算,按照所得的結果設定像素的光亮度。
OpenGL能夠按光照條件創造接近真實世界的圖形,光照條件包括環境光、散射光、鏡面光。環境光屬于自然光線范疇,被其照射的物體受光均勻;散射光來自某個方向,能夠被物體表面均勻反射;鏡面光具有特定的方向性,會被強烈反射至某個方向。OpenGL支持的獨立光源種類較多,目前已知8種,這些光源能夠放在3DS的任何位置,放置在無窮遠處時,能夠獲得具有平行特點的光線,距離物體非常近時,光線可以向外發生輻射。
OpenGL還可以提供貼圖函數,利用該函數能夠在物體表面形成與真實世界相似的花紋,進一步增強視覺感。基于OpenGL繪制出的道路線路景觀圖形與真實世界的情況極為相似。
基于OpenGL繪制的公路線路圖形如圖2所示。

圖2 基于OpenGL繪制的公路線路圖形
(1)查詢思路。
道路需要依托環境建設,環境信息是道路線路設計中不可或缺的重要因素之一,對整個設計具有一定程度的影響,環境信息主要包括水文、地質條件等。本文創建的道路整體模型能夠被賦予水文、地質等環境信息,形成數據庫索引,在該數據庫中存儲大量的水文地質特征描述,每種描述與不同的ID號相對應。道路整體模型由若干三角形面組合而成,可以將與某種水文地質條件對應的ID號加入整體模型的三角形面中。
在道路3DS瀏覽過程中,可以對所需的地質狀況進行查詢,評價線路設計方案的合理性,其應用的是OpenGL中對象選定與反饋兩項技術,兩者是OpenGL中較為強大的兩個功能,可以實現3DS與設計活動之間的交互。選定功能可用于3DS區域及對象的識別,反饋能夠將具有利用價值的信息快速返回。
(2)查詢方法。
①使用選定功能時,可以在窗口任意處點擊鼠標左鍵,選取處于鼠標下的對象,對特定對象的選取被稱為檢選,利用OpenGL的選定特征,可以指定一個三維空間視見窗口,確定落在窗口內的具體對象。
借助函數glPickMatrix的強大功能,可以產生相應的矩陣,其基礎是屏幕坐標與像素維數,運用該矩陣可以在鼠標指針處創建視見窗口,利用OpenGL的選定功能對這個視見窗口進行測試,查看其所含的對象。
從本質上分析,OpenGL中的選定歸屬于渲染模式范疇,在具體的選定模式當中,未將像素復制到幀緩沖區。在三維空間視見窗口內的圖元將會在選定的緩沖區中產生相應的點擊記錄。具體操作時,應預先對選定緩沖區進行設置,完成對象或模型命名,使選定緩沖區能夠有效識別對象和模型,以分解的方式操作選定緩沖區,確定三維空間視見窗口中存在的對象。
②R3DV設計中,對圖元祖命名時可以使用創建的整體模型中,與三角形序號相對應的名稱,具體選取時,在場景內用鼠標每次點擊均能創建一個三維空間視見窗口,在該窗口內的對象會生成點擊記錄。對選定緩沖區進行檢測,能夠獲得鼠標點擊對象的具體名稱,這個名稱就是整體模型中三角形的序號。
通過序號可以在模型內得到對應的ID號,利用SQL語言獲得與三角形對應的水文地質信息。使用鼠標在道路整體模型內的邊坡位置處點取后,可以得到地面的地質特征情況。將其他屬性信息賦予整體模型的三角形面時,通過上述方法能夠快速查詢3DS的屬性信息。例如鼠標點取的位置為路面時,返回的信息為路面的屬性(瀝青混凝土或水泥混凝土以及厚度等),能夠準確計算物方空間坐標及該點所在的里程。
道路線路設計是一項較為復雜且系統的工作,其涵蓋的內容較多,任意環節出現問題均可能影響設計質量,直接關系道路工程后續建設的質量。為避免這一問題的發生,設計人員應了解并掌握與線路相關的自然條件,確保線路設計的合理性,可以運用三維可視化技術,更好地提升線路設計的質量與效果。