榮輝
摘要:核電作為清潔能源,是未來能源發(fā)展的必然趨勢(shì)。目前,核電設(shè)計(jì)方基本都采用了三維設(shè)計(jì)工具完成核電站的三維布置工作。在模型瀏覽方面,由于此類設(shè)計(jì)軟件較為昂貴,其UI界面針對(duì)的群體是設(shè)計(jì)人員,工程公司、施工方、制造方、業(yè)主等相關(guān)方則不易使用,所以其一般使用軟件開發(fā)商提供的三維模型瀏覽軟件進(jìn)行數(shù)字模型瀏覽。但這種方法存在軟件不能完全滿足企業(yè)個(gè)性化需求,以及軟件升級(jí)服務(wù)限制、軟件版權(quán)費(fèi)用、客戶端安裝文件龐大等一系列問題。因此,急需一款可以進(jìn)行Web方式進(jìn)行模型瀏覽的輕量化引擎來解決上述問題。
關(guān)鍵詞:三維設(shè)計(jì);三維引擎;可視化;Java3D
中圖分類號(hào):TP391.9 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2017)03-0103-01
1 研究背景及意義
從二十世紀(jì)五十年代開始,人類就正式開始了和平利用核能。作為世界上第一個(gè)商業(yè)運(yùn)行的美國(guó)希平港核電站,其于1957年開始正式并網(wǎng)發(fā)電。當(dāng)前,對(duì)于核電站設(shè)計(jì),設(shè)計(jì)方基本都采用了三維設(shè)計(jì)工具完成核電站的三維布置工作。目前市面上的此類主流設(shè)計(jì)工具主要有Intergraph公司的SmartPlant 3D/PDS,AVEVA公司的PDMS等產(chǎn)品。這些系統(tǒng)采用以三維模型為對(duì)象的可視化協(xié)同設(shè)計(jì)技術(shù)和以數(shù)據(jù)庫(kù)為核心的集成化設(shè)計(jì)技術(shù),使各專業(yè)設(shè)計(jì)人員可按照自動(dòng)化和標(biāo)準(zhǔn)化的工作流程設(shè)計(jì)工具在本地或異地開展工作,并可共享企業(yè)各類技術(shù)資源,從而縮短工程建設(shè)周期,提高質(zhì)量,降低投資。
以Intergraph公司的PDS產(chǎn)品為例,該系統(tǒng)提供了一種清晰描述工廠和空間設(shè)計(jì)的手段,實(shí)現(xiàn)包括建筑、結(jié)構(gòu)、設(shè)備、管道、通風(fēng)、支吊架、電氣、儀表等各專業(yè)領(lǐng)域的智能三維設(shè)計(jì),能生成工廠三維數(shù)字化設(shè)計(jì)模型,并可進(jìn)行二三維數(shù)字化校驗(yàn),三維數(shù)字化碰撞檢查、漫游及生成設(shè)計(jì)圖紙、報(bào)表、設(shè)備材料清單;具有強(qiáng)大的數(shù)據(jù)庫(kù)支持能力,可對(duì)項(xiàng)目的數(shù)據(jù)進(jìn)行存儲(chǔ)、管理和再處理;具備完善、方便和適宜于處理核工程等復(fù)雜項(xiàng)目的設(shè)計(jì)能力,能進(jìn)一步提高設(shè)計(jì)工作效率和減少設(shè)計(jì)過程的差錯(cuò),從根本上實(shí)現(xiàn)三維數(shù)字化實(shí)體模型設(shè)計(jì)應(yīng)用能力,實(shí)現(xiàn)較高水平的設(shè)計(jì)自動(dòng)化。為了最大化的利用核電站的三維模型,需要一種載體進(jìn)行模型的瀏覽,當(dāng)然,使用設(shè)計(jì)軟件可以瀏覽這些三維模型,但是這些設(shè)計(jì)軟件較為昂貴,另外其UI界面針對(duì)的群體是設(shè)計(jì)人員,工程公司、施工方、制造方、業(yè)主等相關(guān)人員則不易使用。當(dāng)前,大多數(shù)的做法是利用軟件商提供的瀏覽軟件進(jìn)行模型瀏覽,例如鷹圖公司開發(fā)的SmartPlant Review軟件、Autodesk公司開發(fā)的Navisworks等軟件。但是,這些商業(yè)軟件不能完全滿足企業(yè)個(gè)性化的要求,并且都需要安裝較大的客戶端,但隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,用戶有直接使用Web方式進(jìn)行模型瀏覽的輕量化實(shí)際需求。因此,研究開發(fā)一種基于Web的輕量化模型在線瀏覽系統(tǒng),實(shí)現(xiàn)核電三維模型的在線瀏覽顯得尤為迫切。
2 系統(tǒng)設(shè)計(jì)
2.1 需求分析
核電站三維模型在線瀏覽系統(tǒng)至少需要實(shí)現(xiàn)以下三個(gè)功能模塊,即模型處理模塊、人機(jī)交互模塊以及Web集成模塊。(1)模型處理模塊實(shí)現(xiàn)模型格式的自動(dòng)轉(zhuǎn)換,模型載入時(shí)的初始化。(2)人機(jī)交互模塊包含場(chǎng)景操作和模型操作,場(chǎng)景操作主要針對(duì)的是整個(gè)三維場(chǎng)景的旋轉(zhuǎn)、平移、縮放以及場(chǎng)景的居中顯示。模型操作主要包含模型選擇,以及在此基礎(chǔ)上的針對(duì)選擇模型距離測(cè)量、屬性查詢和居中顯示等。(3)Web集成模塊主要實(shí)現(xiàn)系統(tǒng)與Web集成時(shí)的運(yùn)行參數(shù)配置、接收由Web傳輸?shù)哪P惋@示信息,顯示指定的三維模型。在用戶執(zhí)行屬性查詢等操作時(shí),需要根據(jù)用戶操作更新頁面信息。
2.2 總體方案
Java3D是 Java 語言在三維圖形領(lǐng)域的擴(kuò)展, Java3D 有純粹的面向?qū)ο蠼Y(jié)構(gòu)。其數(shù)據(jù)結(jié)構(gòu)采用的是 Scene Graphs Structure(場(chǎng)景圖),就是一些具有方向性的不對(duì)稱圖形組成的樹狀結(jié)構(gòu)。場(chǎng)景圖中線和線的交匯點(diǎn)稱為節(jié)點(diǎn)(Node),節(jié)點(diǎn)之間的線表示各個(gè)實(shí)例之間的關(guān)系。Virtual Universe 是根節(jié)點(diǎn),每一個(gè)場(chǎng)景圖的 Virtual Universe 是唯一的。在 Virtual Universe 下面是 Locale 節(jié)點(diǎn),每一個(gè) Locale 可以擁有多個(gè) BranchGroup 節(jié)點(diǎn)。所有三維形體的位置信息(TransformGroup Nodes)都建立在 BranchGroup 節(jié)點(diǎn)之上。TransformGroup Node 用來設(shè)定 Shape3D 在 Virtual Universe 中的位置。Shape3D Node 是三維圖形節(jié)點(diǎn),代表三維世界中的每個(gè)形體。位于場(chǎng)景圖最下層的是兩個(gè)葉子節(jié)點(diǎn):三維體的外觀(Appearance)和幾何信息(Geometry),這兩個(gè)節(jié)點(diǎn)定義了一個(gè)三維體的顯示效果。
結(jié)合Java3D的場(chǎng)景特點(diǎn),設(shè)計(jì)本系統(tǒng)場(chǎng)景結(jié)構(gòu)。整個(gè)三維場(chǎng)景有一個(gè)根節(jié)點(diǎn)BranchGroup,在該節(jié)點(diǎn)下包含了針對(duì)整個(gè)三維場(chǎng)景進(jìn)行位姿變換的節(jié)點(diǎn)TransformGroup。在根節(jié)點(diǎn)里面還添加了三個(gè)對(duì)整個(gè)場(chǎng)景進(jìn)行位姿變換的行為類:Rotate(旋轉(zhuǎn))、Translate(平移)、Zoom(縮放)。這三個(gè)行為類的操作對(duì)象都是針對(duì)場(chǎng)景位姿變換節(jié)點(diǎn)。同時(shí),在根節(jié)點(diǎn)下還包含了一個(gè)鼠標(biāo)選擇行為,用于選擇模型。
模型加載至Java3D之后成為一個(gè)BranchGroup,該節(jié)點(diǎn)下方的每一級(jí)TransformGroup對(duì)應(yīng)于下級(jí)子節(jié)點(diǎn)相對(duì)于上級(jí)節(jié)點(diǎn)的一次三維空間坐標(biāo)變換。在處于葉節(jié)點(diǎn)的TransformGroup中包含了代表該形體幾何信息的Shape3D節(jié)點(diǎn),每一個(gè)Shape3D節(jié)點(diǎn)都有外形輪廓節(jié)點(diǎn)Geometry和外觀屬性節(jié)點(diǎn)Appearance組成。
2.3 模型處理、載入及初始化
由PDS等建模工具生成的模型并不能直接被Java3D讀取,需要轉(zhuǎn)換成OBJ或VRML等格式。VRML具有與Java3D相似的場(chǎng)景結(jié)構(gòu),數(shù)據(jù)可讀性較好。本文采用VRML作為模型格式。同時(shí),對(duì)于轉(zhuǎn)換后的VRML模型必須對(duì)其數(shù)據(jù)格式進(jìn)行規(guī)范,以便Java3D程序可以讀取模型的唯一標(biāo)識(shí)碼。
Java3D通過VrmlLoader來加載VRML模型。每個(gè)VRML模型在加載到Java3D的場(chǎng)景中時(shí),相應(yīng)的VRML節(jié)點(diǎn)也會(huì)轉(zhuǎn)換成Java3D的節(jié)點(diǎn)。為了實(shí)現(xiàn)交互性,并最大限度的降低內(nèi)存消耗,提高渲染性能,在VRML節(jié)點(diǎn)加載成為Java3D的live節(jié)點(diǎn)之前必須對(duì)相應(yīng)轉(zhuǎn)換成的Java3D節(jié)點(diǎn)做出若干設(shè)置。
3 Web集成
為了以Web的方式實(shí)現(xiàn)核電三維模型的在線瀏覽,需要將本系統(tǒng)嵌入在JavaEE的JSP頁面中。用戶通過相應(yīng)JSP頁面來顯示本系統(tǒng)。系統(tǒng)在開發(fā)時(shí)以Java Applet的形式實(shí)現(xiàn),并且在JSP頁面初始化時(shí),將所需要顯示的模型以參數(shù)的形式傳輸給本系統(tǒng),本系統(tǒng)通過TCP/IP協(xié)議將模型從模型文件服務(wù)器緩存至客戶機(jī),進(jìn)而加載渲染。從而簡(jiǎn)單、直觀地查看模型的設(shè)計(jì)數(shù)據(jù),并可基本實(shí)現(xiàn)商用瀏覽引擎的基本操作功能。此外,該系統(tǒng)還可應(yīng)用于碰撞模型的查看,便于用戶快速定位碰撞點(diǎn),從而快速修改設(shè)計(jì)。
4 結(jié)語
核電站三維模型在線瀏覽系統(tǒng)實(shí)現(xiàn)了核電設(shè)計(jì)三維模型以Web的方式在線瀏覽,可應(yīng)用于模型瀏覽、屬性查詢、測(cè)量,二三維模型比對(duì),碰撞模型瀏覽等,滿足了相關(guān)人員的模型瀏覽需求,提高了工作效率,節(jié)省了企業(yè)相關(guān)經(jīng)費(fèi)。
參考文獻(xiàn)
[1]張杰.JAVA3D交互式三維圖形編程[M].北京:人民郵電出版社,1999.
[2]胡小強(qiáng).虛擬現(xiàn)實(shí)技術(shù)與應(yīng)用[M].北京:高等教育出版社,2004,106-120.
[3]高新瑞.Java 3D與計(jì)算機(jī)三維動(dòng)態(tài)圖形網(wǎng)絡(luò)編程設(shè)計(jì)[M].北京:清華大學(xué)出版社,2014,205-433.