亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于OpenGL的地下儲(chǔ)備庫(kù)三維仿真系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

        2012-12-31 00:00:00馬煒瑋

        摘要:本文介紹了一種利用OpenGL和3D max相結(jié)合開(kāi)發(fā)的地下儲(chǔ)備庫(kù)三維仿真系統(tǒng),首先利用3D MAX建立地下工程的三維模型,通過(guò)第三方軟件轉(zhuǎn)換成OpenGL可以識(shí)別的代碼,再利用OpenGL實(shí)現(xiàn)對(duì)模型的實(shí)時(shí)控制,包括進(jìn)度顯示、模型平移、縮放和旋轉(zhuǎn),分層模型的消隱等。用戶通過(guò)這套系統(tǒng)可以直觀的了解工程建設(shè)的進(jìn)展情況,并且通過(guò)自主控制多角度、全方位了解地下工程的情況。

        關(guān)鍵詞:OpenGL;3D;MAX;地下儲(chǔ)備庫(kù);仿真

        中圖分類(lèi)號(hào):TP311.52 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007—9599 (2012) 14—0000—02

        二、引言

        地下水封巖洞儲(chǔ)備庫(kù)是國(guó)家進(jìn)行原油、成品油、天然氣戰(zhàn)略儲(chǔ)備的重要方式之一,對(duì)保障國(guó)家能源安全有重要的作用和意義。具有安全、環(huán)保、經(jīng)濟(jì)、使用年限長(zhǎng)、免維護(hù)、抗震等優(yōu)勢(shì),是歐美、日本等發(fā)達(dá)國(guó)家主要的戰(zhàn)略儲(chǔ)備方式,我國(guó)也陸續(xù)在沿海地質(zhì)條件適宜地區(qū)開(kāi)工建設(shè)大型地下水封巖洞儲(chǔ)備庫(kù)。地下工程建設(shè)周期較長(zhǎng),地下結(jié)構(gòu)復(fù)雜,施工情況受地下不確定因素影響較大,通常施工作業(yè)面較多,作業(yè)工序交叉多,傳統(tǒng)的進(jìn)度計(jì)算和表述方法只能抽象描述整個(gè)工程進(jìn)展情況,描述方法過(guò)于單調(diào)。而且由于絕大多數(shù)單項(xiàng)工程都在地下進(jìn)行,人們無(wú)法直觀的看到工程進(jìn)展到何種程度,因此,結(jié)合地下儲(chǔ)備庫(kù)工程特點(diǎn)開(kāi)發(fā)一套圖形仿真系統(tǒng)是十分必要的,可及時(shí)地反映最新工程進(jìn)展情況,并可個(gè)性化模擬地下儲(chǔ)備庫(kù)的整體情況,用戶能夠通過(guò)自主控制從任意角度觀察儲(chǔ)備庫(kù)的模擬。

        要實(shí)現(xiàn)這套系統(tǒng)的開(kāi)發(fā),用到的主要工具是SGI公司開(kāi)發(fā)的的三維圖形標(biāo)準(zhǔn)庫(kù)OpenGL,OpenGL是一個(gè)功能強(qiáng)大的圖形庫(kù),它具有很強(qiáng)的交互式三維圖形處理能力且獨(dú)立于窗口系統(tǒng)和操作系統(tǒng),用戶可以利用它繪制出二維或三維圖形,以它為基礎(chǔ)開(kāi)發(fā)的應(yīng)用程序可以方便地在各個(gè)平臺(tái)間移植。但由于OpenGL只能通過(guò)基本的幾何圖元即點(diǎn)、線、多邊形來(lái)建立模型,并沒(méi)有提供三維模型的高級(jí)命令,因此建立復(fù)雜物體的三維模型是非常繁瑣和枯燥的,所以就需要應(yīng)用另外一種工具,Autodesk公司開(kāi)發(fā)的三維建模、動(dòng)畫(huà)制作軟件3Dstudio MAX。利用3Dmax建立復(fù)雜物體的模型要簡(jiǎn)單得多,但它不能進(jìn)行信息交互,不能實(shí)現(xiàn)實(shí)時(shí)控制,但這又恰好是OpenGL所長(zhǎng),因此,利用OpenGL和3D MAX結(jié)合起來(lái)實(shí)現(xiàn)地下儲(chǔ)備庫(kù)的三維模擬可以得到事半功倍的效果。

        二、建模與仿真

        (一)利用3D MAX建立地下儲(chǔ)備庫(kù)模型

        利用3D MAX建立物體模型,這里只是建立模型,并不對(duì)模型賦予材質(zhì)和燈光,這些工作可以利用OpenGL完成。建模過(guò)程中,將各個(gè)單項(xiàng)工程分別建模,施工巷道、水幕系統(tǒng)、主洞室、豎井、連接巷道和密封塞六部分。建模完成后將其輸出為.3ds格式的文件。3ds文件是3D Max的一種二進(jìn)制存儲(chǔ)格式,它基于“塊”存儲(chǔ)的,這些塊描述了諸如場(chǎng)景數(shù)據(jù),編輯窗口的狀態(tài),材質(zhì),網(wǎng)格數(shù)據(jù)等。

        (二)將3ds文件導(dǎo)入OpenGL中

        將3ds文件導(dǎo)入OpenGL可以采用文件轉(zhuǎn)換法或者直接通過(guò)編程平臺(tái)讀入3DS文件。文件轉(zhuǎn)換法是利用第三方工具如View3d等直接將3ds文件轉(zhuǎn)換成OpenGL所需的c文件,將生成的.h和.gl文件導(dǎo)入到OpenGL程序框架中,添加相應(yīng)代碼編譯執(zhí)行即可得到所需模型。這種方法較簡(jiǎn)單,但導(dǎo)入過(guò)程中存儲(chǔ)在3ds文件中的材質(zhì)紋理等信息會(huì)丟失。開(kāi)發(fā)人員也可以自定義一個(gè)讀取3ds文件的類(lèi),用于3DS文件的讀入與重繪。但這需要基于開(kāi)發(fā)人員對(duì)3ds文件充分理解的基礎(chǔ)上,分別讀取3ds文件中的編輯塊、顏色塊、材質(zhì)塊、紋理塊等信息。由于本系統(tǒng)建模階段并沒(méi)有進(jìn)行材質(zhì)賦予等工作,所以采用第一種方法將3ds文件導(dǎo)入OpenGL。

        (三)利用OpenGL建立地下儲(chǔ)備庫(kù)仿真系統(tǒng)

        1.在VC++6.0中建立一個(gè)基于MFC的單文檔應(yīng)用程序,并將opengl32.lib、glu32.lib、glaux.lib庫(kù)文件加入到應(yīng)用程序項(xiàng)目中,在View類(lèi)的頭文件中加入gl.h、glu.h、glaux.h三個(gè)頭文件。

        2.建立窗口著色描述表、OpenGL渲染描述表、設(shè)置像素格式、添加view類(lèi)的消息函數(shù),還需要添加繪圖初始化函數(shù)和顯示函數(shù)等。

        3.將之前3ds文件轉(zhuǎn)換形成的modle.h和modle.gl文件拷貝到工程文件中,在modle.h文件中會(huì)自動(dòng)生成一個(gè)函數(shù)GL3DS_initialize_modle(),在int DrawGLScene(GLvoid)中調(diào)用該函數(shù),從而完成模型的導(dǎo)入。

        4.材質(zhì)的賦予

        OpenGL 用材料對(duì)光的紅、綠、藍(lán)三原色的反射率來(lái)近似定義材料的顏色。由于整個(gè)模型是地下洞庫(kù)的三維示意模型,為了美觀和便于觀察,并不要求模型的材質(zhì)和真實(shí)環(huán)境一樣,因此這里我們采取用戶自定義顏色的方式,默認(rèn)設(shè)置施工巷道為棕色(0.5f,0.0f,0.0f),水幕系統(tǒng)為綠色(0.0f,1.0f,0.0f),主洞室為紫色(1.0f,0.0f,1.0f),豎井為藍(lán)色(0.0f,0.0f,1.0f)。用戶也可按照自己的審美習(xí)慣來(lái)設(shè)置各子系統(tǒng)的顏色,用MFC的CColorDialog類(lèi)來(lái)獲取用戶定義的顏色。

        5.光照

        為了增加模型的立體感,還需要在合適的位置增加一些光源,使模型呈現(xiàn)出明暗效果。我們采用glLight*()函數(shù)來(lái)設(shè)置光源的所有屬性。它有三個(gè)參數(shù),分別用來(lái)代表光源標(biāo)識(shí)、需設(shè)置的屬性及期望的屬性值。使用光源必須對(duì)光源進(jìn)行啟動(dòng),啟動(dòng)光源使用函數(shù)GlEnable()實(shí)現(xiàn)。

        完成上述步驟并編譯運(yùn)行,即可得到地下儲(chǔ)備庫(kù)的三維仿真模型,側(cè)視圖如圖1所示。

        三、仿真系統(tǒng)人機(jī)交互的實(shí)現(xiàn)

        (一)進(jìn)度實(shí)時(shí)顯示

        進(jìn)度實(shí)時(shí)顯示的思路是采用不用顏色來(lái)區(qū)分工程完成部分和未完成部分,模型未完成部分用灰白色顯示,已完成部分用其他色彩顯示,同樣這些色彩都是可以由用戶來(lái)定義的。但地下工程有其復(fù)雜性,單項(xiàng)工程并不是從起點(diǎn)坐標(biāo)開(kāi)始,而是根據(jù)施工方法,施工工序等各種因素確定,有可能從起點(diǎn)開(kāi)始,也有可能從中間的某一個(gè)點(diǎn)開(kāi)始,為了精確顯示進(jìn)度的完成情況,我們對(duì)從用戶那里采集的數(shù)據(jù)做了統(tǒng)一要求,都以起點(diǎn)+里程的格式,如施工巷道SAT2+00~SAT3+50,表示施工巷道起點(diǎn)開(kāi)始200—350米。把采集到的用戶數(shù)據(jù)通過(guò)數(shù)學(xué)變換轉(zhuǎn)換為和系統(tǒng)一致的坐標(biāo)信息,對(duì)這部分模型賦予新的材質(zhì),就實(shí)現(xiàn)了施工進(jìn)度的立體顯示。

        (二)平移、旋轉(zhuǎn)和縮放

        實(shí)時(shí)平移、旋轉(zhuǎn)和縮放是查看地下儲(chǔ)備庫(kù)三維模型時(shí)所必須的操作,通過(guò)這些操作就能夠?qū)崿F(xiàn)從任意角度觀察模型,從而解決了遮擋及視覺(jué)死角等問(wèn)題。用戶可以通過(guò)鼠標(biāo)鍵盤(pán)來(lái)控制模型的顯示情況。

        1.平移變換

        在OpenGL繪圖時(shí),只需對(duì)視點(diǎn)位置和參考點(diǎn)位置進(jìn)行簡(jiǎn)單的變換操作就可以實(shí)現(xiàn)平移變換,下面是實(shí)現(xiàn)水平移動(dòng)的部分代碼。

        //以下代碼表示物體的水平移動(dòng)

        2.旋轉(zhuǎn)

        //以下代碼實(shí)現(xiàn)沿z軸旋轉(zhuǎn),其中angle為旋轉(zhuǎn)角度

        3.縮放

        //以下代碼實(shí)現(xiàn)縮放功能

        (三)局部顯示

        很多時(shí)候用戶僅僅需要看到某一單項(xiàng)工程的情況,每一次用戶選擇不同的單項(xiàng)工程,都需要對(duì)該工程進(jìn)行重繪,這種方法會(huì)消耗較多的資源,降低程序運(yùn)行效率。為了提高系統(tǒng)效率,采用OpenGL提供的顯示列表來(lái)解決這一問(wèn)題。OpenGL顯示列表是一組預(yù)先存儲(chǔ)起來(lái)的OpenGL命令。顯示列表可以在任何地方被調(diào)用,并按順序立即執(zhí)行。下面是創(chuàng)建顯示列表的偽代碼:

        //同樣建立其他5個(gè)單項(xiàng)工程的顯示列表

        程序中根據(jù)用戶的選擇情況,在繪圖函數(shù)中,來(lái)調(diào)用相應(yīng)的單項(xiàng)工程的顯示列表,就可以實(shí)現(xiàn)單項(xiàng)工程的局部顯示。

        (四)仿真系統(tǒng)結(jié)果

        下圖是某地下儲(chǔ)備庫(kù)工程水幕系統(tǒng)進(jìn)度顯示效果圖。

        四、結(jié)論

        采用3D MAX和OpenGL相結(jié)合實(shí)現(xiàn)了對(duì)地下儲(chǔ)備庫(kù)的三維仿真模擬,利用3D MAX建立模型方便和OpenGL容易實(shí)現(xiàn)人機(jī)交互的特點(diǎn),避免了各自的缺陷,從而使三維仿真的實(shí)現(xiàn)變得更加輕松。通過(guò)地下儲(chǔ)備庫(kù)三維模擬系統(tǒng),用戶可以直觀的了解工程進(jìn)展情況,同時(shí)通過(guò)實(shí)時(shí)人機(jī)交互,較為方便的顯示自己想要了解的具體情況,施工單位也可以運(yùn)用此系統(tǒng)合理布置施工工序,減少工序的不合力交叉。此外,系統(tǒng)還留有接口,可以同地下儲(chǔ)備庫(kù)的傳感系統(tǒng)相連接,在將來(lái)工程竣工投入使用后,能夠通過(guò)采集傳感器數(shù)據(jù)來(lái)實(shí)時(shí)顯示整個(gè)儲(chǔ)備庫(kù)的情況以及重點(diǎn)部位的應(yīng)力分布等,當(dāng)然,要實(shí)現(xiàn)這些功能,還必須要對(duì)整個(gè)系統(tǒng)進(jìn)行大量的優(yōu)化。

        日本精品视频一区二区三区四区| 久久午夜无码鲁丝片直播午夜精品| 少妇人妻出水中文字幕乱码| 国产日产久久高清ww| 国产熟妇另类久久久久| 久久亚洲av永久无码精品| 少妇无码太爽了不卡视频在线看 | 国产一女三男3p免费视频| 国产精品一区二区av片| 亚洲国产人成自精在线尤物| 51国产偷自视频区视频| 日韩高清在线观看永久| 2021国产精品久久| 中文字幕日韩精品中文字幕| 欧美性猛交99久久久久99按摩| 无遮无挡爽爽免费视频| 中文字幕天天躁日日躁狠狠| 永久免费观看的黄网站在线| 亚洲成aⅴ人片久青草影院| 特级毛片a级毛片在线播放www | 国产性感丝袜在线观看| 无码任你躁久久久久久老妇| 99精品一区二区三区免费视频| 国内精品国产三级国产avx| 亚洲大尺度无码无码专区| 国产精品美女久久久久| 中文字幕有码一区二区三区| 国产免费网站在线观看不卡| 精品国产精品国产偷麻豆| 少妇高潮喷水正在播放| 中文字幕日本一区二区在线观看| 一区二区视频在线观看地址| 国产av综合影院| 久热香蕉av在线爽青青| 久久国产精品色av免费看| 久久天天躁狠狠躁夜夜不卡| 91av小视频| 免费人成网站在线播放| 99久久精品免费看国产| 久久久精品人妻一区亚美研究所 | 亚洲精品国产综合久久|