• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于HAJIF系統(tǒng)的汽車(chē)部件模型庫(kù)設(shè)計(jì)與實(shí)現(xiàn)

      2021-07-14 07:12:48許向彥羅國(guó)偉王立凱
      工程與試驗(yàn) 2021年2期
      關(guān)鍵詞:著色器模型庫(kù)頂點(diǎn)

      許向彥,羅國(guó)偉,王立凱

      (1.中國(guó)飛機(jī)強(qiáng)度研究所,陜西 西安 710065;2.廣東亞太新材料科技有限公司,廣東 肇慶 526000)

      1 引 言

      HAJIF是中國(guó)飛機(jī)強(qiáng)度研究所研發(fā)的一款大型有限元分析軟件,其功能全面,具備靜力、屈曲、模態(tài)等通用分析求解能力,在諸多航空產(chǎn)品結(jié)構(gòu)分析中獲得應(yīng)用。當(dāng)前,隨著軍民融合的不斷深入,以及工業(yè)CAE軟件自主化的緊迫需求,HAJIF軟件所服務(wù)的行業(yè)也從航空航天領(lǐng)域拓展到軌道交通、汽車(chē)等領(lǐng)域。

      汽車(chē)工業(yè)中,汽車(chē)零部件是構(gòu)成汽車(chē)主機(jī)的基礎(chǔ),精確無(wú)誤的汽車(chē)零部件有限元模型是得到整車(chē)正確分析結(jié)果的基本保證?;贖AJIF平臺(tái)建立的汽車(chē)部件模型庫(kù),作為零部件模型與分析軟件之間的連接紐帶,可以集成前人優(yōu)秀的建模經(jīng)驗(yàn)及技巧,同時(shí),鑒于HAJIF結(jié)構(gòu)分析軟件的國(guó)產(chǎn)自主化,可以有效保證該模型庫(kù)的延續(xù)性,方便后續(xù)修改與改進(jìn)。

      本文以HAJIF平臺(tái)為依托,基于XML與OpenGL技術(shù)實(shí)現(xiàn)了汽車(chē)零部件模型庫(kù)的搭建。該模型庫(kù)可以同時(shí)存儲(chǔ)STL幾何模型與BDF、HJF等有限元模型,支持將其無(wú)縫加載至HAJIF系統(tǒng)中進(jìn)行顯示與分析,具有一定的工程實(shí)用價(jià)值。

      2 相關(guān)技術(shù)

      2.1 XML

      XML(Extensible Markup Language)是一種類(lèi)似于HTML的標(biāo)記語(yǔ)言,但是XML沒(méi)有使用預(yù)定義的標(biāo)記。因此,XML允許根據(jù)自己的設(shè)計(jì)需要定義專(zhuān)屬的標(biāo)記。這是一種十分有用的可存儲(chǔ)、可搜索和可共享的格式存儲(chǔ)數(shù)據(jù)的方法。更重要的是,因?yàn)閄ML的基本格式是標(biāo)準(zhǔn)化的,所以如果跨系統(tǒng)或平臺(tái)共享或傳輸XML,無(wú)論是在本地還是在互聯(lián)網(wǎng)上,接收方仍然可以根據(jù)標(biāo)準(zhǔn)化的XML語(yǔ)言解析數(shù)據(jù)。

      XML文件的讀取技術(shù)有3種:分別是QXmlStreamReader、DOM和SAX。考慮到所建立的汽車(chē)部件模型庫(kù)需要具備模型動(dòng)態(tài)添加與刪除的功能,同時(shí)綜合上述3種XML文件讀取技術(shù)的各自特點(diǎn),本文最終選用DOM技術(shù)進(jìn)行XML文件的讀取與處理。

      DOM將XML文檔描述為一棵樹(shù)結(jié)構(gòu),Tree數(shù)據(jù)結(jié)構(gòu)的每個(gè)節(jié)點(diǎn)表現(xiàn)為一個(gè)XML標(biāo)記或者XML標(biāo)記內(nèi)的文本項(xiàng)。樹(shù)形結(jié)構(gòu)精確地描述了XML文檔中標(biāo)記間以及文本項(xiàng)間的相互關(guān)聯(lián)性。下述XML文檔為系統(tǒng)中存儲(chǔ)汽車(chē)部件模型的部分信息,包含部件名稱(chēng)及部件信息:

      其所對(duì)應(yīng)的DOM樹(shù)如圖1所示。

      圖1 XML文檔對(duì)應(yīng)DOM樹(shù)

      由于利用DOM技術(shù)可以將XML文檔轉(zhuǎn)換為樹(shù)形數(shù)據(jù)結(jié)構(gòu),所以通過(guò)完成樹(shù)形結(jié)構(gòu)的遞歸遍歷即可完成XML文檔的完整讀取。反之,將用戶(hù)在模型庫(kù)中所做的修改保存至XML文檔中即可完成零部件模型信息的修改。

      2.2 OpenGL

      OpenGL是一項(xiàng)成熟的圖形化顯示技術(shù)。在OpenGL中,所有模型都處于3D空間中,而屏幕和窗口只能以2D像素?cái)?shù)組輸出,所以,OpenGL的大部分工作是把3D坐標(biāo)轉(zhuǎn)變?yōu)槠聊贿m應(yīng)的2D像素。3D坐標(biāo)轉(zhuǎn)變?yōu)?D坐標(biāo)的處理過(guò)程是由OpenGL的圖形渲染管線(xiàn)管理。本文通過(guò)在OpenGL固定渲染管線(xiàn)中加入自定義可編程著色器,完成STL幾何模型的圖形化顯示。

      OpenGL的固定渲染管線(xiàn)一般包含以下幾個(gè)步驟:(1)頂點(diǎn)變換。頂點(diǎn)變換作為渲染管線(xiàn)中的首個(gè)處理模塊,所包含的信息非常多,模型的各項(xiàng)操作都在此模塊中完成。(2)圖元裝配。圖元裝配階段將頂點(diǎn)變換模塊輸出的所有頂點(diǎn)作為輸入,并將所有的點(diǎn)裝配成指定圖元的形狀輸出。(3)幾何裝配。幾何裝配模塊會(huì)把圖元裝配階段的輸出數(shù)據(jù)當(dāng)作其輸入,可以通過(guò)產(chǎn)生新的頂點(diǎn)構(gòu)造新的圖元來(lái)生成其他形狀。幾何裝配階段的輸出既可以輸出至紋理裝配模塊使圖形更為逼真,也可以直接發(fā)送至光柵化階段。(4)紋理裝配。紋理裝配的作用在于其可以通過(guò)添加模型細(xì)節(jié)使得模型或場(chǎng)景更為逼真。(5)光柵化。光柵化階段會(huì)把圖元映射為屏幕或窗口中相應(yīng)的像素,生成供片段著色階段使用的片段。(6)片段操作。片段著色階段的主要目的是計(jì)算一個(gè)像素的最終表現(xiàn)形式。在該階段中,利用著色器編程語(yǔ)言編寫(xiě)相應(yīng)腳本可以自定義設(shè)置模型輸出顏色及光照效果。

      在固定渲染管線(xiàn)的基礎(chǔ)上,本文利用圖形著色語(yǔ)言編寫(xiě)頂點(diǎn)著色器與片段著色器,完成模型的控制與自定義顯示。頂點(diǎn)著色器與片段著色器的代碼片段如下所示:

      (1)頂點(diǎn)著色器

      #version 120

      attribute vec3 vertex_position;

      uniform mat4 transform_matrix;

      uniform mat4 view_matrix;

      varying vec3 ec_pos;

      void main() {

      gl_Position = view_matrix*transform_matrix*vec4(vertex_position, 1.0);

      ec_pos = gl_Position.xyz;

      }

      (2)片段著色器

      #version 120

      uniform float zoom;

      varying vec3 ec_pos;

      void main() {

      vec3 base3 = vec3(0.99, 0.96, 0.89);

      vec3 base2 = vec3(0.92, 0.91, 0.83);

      vec3 base00 = vec3(0.40, 0.48, 0.51);

      vec3 ec_normal = normalize(cross(dFdx(ec_pos), dFdy(ec_pos)));

      ec_normal.z *= zoom;

      ec_normal = normalize(ec_normal);

      float a = dot(ec_normal, vec3(0.0, 0.0, 1.0));

      float b = dot(ec_normal, vec3(-0.57, -0.57, 0.57));

      gl_FragColor = vec4((a*base2 + (1-a)*base00)*0.5 +(b*base3 + (1-b)*base00)*0.5, 1.0);

      }

      3 系統(tǒng)框架及子模塊設(shè)計(jì)

      本系統(tǒng)依照XML文件完成系統(tǒng)初始化配置,同時(shí)對(duì)外開(kāi)放3種類(lèi)型的接口,分別是模型增加刪除的修改接口、模型信息的顯示接口,以及模型與HAJIF系統(tǒng)或幾何模型圖形化顯示模塊的交互接口。系統(tǒng)框架設(shè)計(jì)圖如圖2所示。

      圖2 系統(tǒng)框架設(shè)計(jì)圖

      對(duì)于模型增加與刪除接口,用戶(hù)完成模型修改后,通過(guò)將相關(guān)信息寫(xiě)入XML配置文件中完成模型信息的保存與更新。以XML數(shù)據(jù)為基礎(chǔ)的系統(tǒng)搭建完成了數(shù)據(jù)與系統(tǒng)的分離,使模型數(shù)據(jù)的分享更為便捷。用戶(hù)可以導(dǎo)出模型相關(guān)文件與配置文件,進(jìn)而分享給其他人。與此同時(shí),用戶(hù)也可以直接導(dǎo)入從別處獲得的模型庫(kù),快速實(shí)現(xiàn)相互共享。

      對(duì)于模型顯示接口,系統(tǒng)提供統(tǒng)一的數(shù)據(jù)結(jié)構(gòu),模型具備以下屬性:(1)模型名稱(chēng);(2)模型文件;(3)模型描述信息;(4)模型圖片;(5)模型附加文件。這5項(xiàng)屬性可以較為完整地描述一個(gè)模型的相關(guān)信息。

      本系統(tǒng)同時(shí)支持汽車(chē)零部件的有限元模型與幾何模型的存儲(chǔ),有限元模型的存儲(chǔ)意義在于其可以固化前人的有限元建模經(jīng)驗(yàn),而幾何模型的存儲(chǔ)則可以固化前人的設(shè)計(jì)經(jīng)驗(yàn),經(jīng)典的設(shè)計(jì)結(jié)構(gòu)對(duì)后續(xù)設(shè)計(jì)人員的工作具有重要的指導(dǎo)作用。

      在計(jì)算機(jī)圖形應(yīng)用系統(tǒng)中,STL文件是一種描述三角形網(wǎng)格的標(biāo)準(zhǔn)格式,其具有ASCII碼格式與二進(jìn)制兩種格式。主流的CAD系統(tǒng)均可輸出STL格式的幾何模型,鑒于此,本系統(tǒng)同時(shí)提供STL幾何模型的圖形化顯示接口。

      幾何模型圖形化模塊的設(shè)計(jì)邏輯如圖3所示。當(dāng)STL幾何模型從汽車(chē)部件模型庫(kù)中導(dǎo)入進(jìn)來(lái)時(shí),通過(guò)STL模型解析器首先判斷STL幾何模型文件格式,對(duì)于ASCII格式與二進(jìn)制格式分別處理解析得到模型頂點(diǎn)與面法線(xiàn)相關(guān)信息,將所有信息傳入可編程渲染管線(xiàn)中進(jìn)行渲染,同時(shí)通過(guò)設(shè)計(jì)模型交互模塊獲取用戶(hù)的操作信息(旋轉(zhuǎn),平移,放大縮小),繼而在幾何模型中反饋顯示。

      圖3 幾何模型顯示模塊邏輯設(shè)計(jì)圖

      4 軟件實(shí)現(xiàn)

      本系統(tǒng)基于Visual Studio 2010,采用面向?qū)ο笏枷?,依托HAJIF系統(tǒng)搭建完成,主要涉及到的Qt庫(kù)有QtGui庫(kù)、QtOpenGL庫(kù)、QGLShaderProgram庫(kù)、QDomDocument庫(kù)及QTreeWidget庫(kù)。幾何模型顯示模塊的界面設(shè)計(jì)如圖4所示。

      圖4 幾何模型顯示模塊界面

      幾何模型顯示模塊支持用戶(hù)與模型的交互,用戶(hù)可以通過(guò)鼠標(biāo)操作實(shí)現(xiàn)模型的旋轉(zhuǎn)、縮放及平移。圖5是測(cè)試模型經(jīng)過(guò)一定程度的縮放、平移與旋轉(zhuǎn)后的模型顯示圖。

      圖5 模型交互顯示圖

      幾何模型顯示模塊作為其中一個(gè)功能點(diǎn),可以滿(mǎn)足用戶(hù)的基本需求。相對(duì)于幾何模型顯示功能,有限元模型的有效管理以及與HAJIF系統(tǒng)的無(wú)縫連接會(huì)發(fā)揮更為重要的作用。

      圖6描述了某汽車(chē)左前門(mén)防撞梁的模型信息,通過(guò)加載接口,可以將該模型直接導(dǎo)入HAJIF系統(tǒng)中,通過(guò)HAJIF系統(tǒng)可直接提交該模型的求解計(jì)算,計(jì)算結(jié)果如圖7所示。完整的模型信息展示以及與HAJIF系統(tǒng)的無(wú)縫連接大大提高了分析人員的工作效率。

      圖6 左前門(mén)防撞梁導(dǎo)入HAJIF系統(tǒng)圖

      圖7 左前門(mén)防撞梁計(jì)算結(jié)果圖

      5 結(jié)束語(yǔ)

      本文以HAJIF平臺(tái)為依托,基于XML與OpenGL技術(shù)完成了汽車(chē)部件模型庫(kù)的搭建,可以同時(shí)集成包含大量建模經(jīng)驗(yàn)的有限元模型數(shù)據(jù)與包含設(shè)計(jì)經(jīng)驗(yàn)的幾何模型數(shù)據(jù),大大提高了有限元分析人員的分析效率。自定義的XML配置與HAJIF分析軟件的國(guó)產(chǎn)自主化保證了該系統(tǒng)的可拓展性與可延續(xù)性,具有一定的工程實(shí)用價(jià)值。

      猜你喜歡
      著色器模型庫(kù)頂點(diǎn)
      過(guò)非等腰銳角三角形頂點(diǎn)和垂心的圓的性質(zhì)及應(yīng)用(下)
      基于UE4 實(shí)時(shí)射線(xiàn)追蹤技術(shù)的研究與探討
      基于Unity Shader石油泄漏現(xiàn)象模擬的研究
      基于IMx6的opengl圖形著色器開(kāi)發(fā)研究
      關(guān)于頂點(diǎn)染色的一個(gè)猜想
      基于模型庫(kù)系統(tǒng)的金融體系流動(dòng)性風(fēng)險(xiǎn)預(yù)警機(jī)制研究
      基于模型庫(kù)的現(xiàn)代成本會(huì)計(jì)計(jì)量系統(tǒng)研究
      GIS地形分析模型庫(kù)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
      數(shù)學(xué)問(wèn)答
      基于可編程渲染管線(xiàn)的雷達(dá)圖像分層模型設(shè)計(jì)與實(shí)現(xiàn)
      西华县| 仪陇县| 朝阳区| 荥经县| 琼中| 金塔县| 盘锦市| 嘉荫县| 大城县| 桐庐县| 双辽市| 扎赉特旗| 林甸县| 安阳市| 从化市| 万宁市| 潼南县| 揭西县| 通山县| 许昌市| 兰考县| 江安县| 潞城市| 丁青县| 弥渡县| 文昌市| 阜康市| 开鲁县| 明星| 怀仁县| 东光县| 大厂| 塔河县| 会同县| 新津县| 柞水县| 贵南县| 文山县| 子长县| 慈利县| 汤原县|