• 
    

    
    

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

      ?

      OpenGL在計(jì)算目標(biāo)電磁散射特性中的應(yīng)用

      2012-09-21 05:33:48王靜席澤敏周超
      船電技術(shù) 2012年3期
      關(guān)鍵詞:入射角繪制電磁

      王靜 席澤敏 周超

      (海軍工程大學(xué)電子工程學(xué)院,武漢 430033)

      1 引言

      OpenGL即開放型圖形庫(open graphic library),是一個(gè)優(yōu)秀的三維圖形硬件的軟件接口,同時(shí)也是一個(gè)跨平臺(tái)、開放性的三維圖形和模型庫。在分析復(fù)雜目標(biāo)的電磁散射特性時(shí),首先建立目標(biāo)的幾何模型。如果利用OpenGL會(huì)比較復(fù)雜,因?yàn)樗鼪]有建立三維幾何模型的高級(jí)命令,要通過建立基本的幾何圖元(如點(diǎn)、線、面等)來實(shí)現(xiàn)。相對(duì)而言運(yùn)用3DS MAX軟件建模要節(jié)約不少時(shí)間。

      在電磁環(huán)境中,入射角相對(duì)于目標(biāo)體的入射角度不同會(huì)引起目標(biāo)不同的散射特性,因此準(zhǔn)確判斷入射方向上目標(biāo)的可見部分是散射計(jì)算的前提,即目標(biāo)的遮擋面判別。OpenGL作為一種用于實(shí)時(shí)3D圖形的應(yīng)用程序編程接口(Application Programming Interface,API),提供了 155 個(gè)圖形函數(shù),可以利用這些函數(shù)來實(shí)時(shí)構(gòu)造目標(biāo)模型。

      計(jì)算機(jī)圖形學(xué)中介紹了復(fù)雜物體的面消隱方法主要有區(qū)域排序法、深度緩存法、掃描線算法[1]。本文利用 OpenGL的圖形功能和 VC++的編程功能,實(shí)現(xiàn)讀取3DS模型文件并設(shè)置光照入射點(diǎn),利用深度緩存法(z-buffer algorithm)繪制不同入射角度時(shí)的目標(biāo)模型可見部分。該算法通過借助額外的存儲(chǔ)空間來保存繪制過程中繪制器已經(jīng)繪制的多邊形的深度信息。所以在使用時(shí)啟用深度緩存以后還必須清空深度緩存。

      2 3DS模型文件的讀取和場(chǎng)景繪制

      表1 幾個(gè)主要塊的ID與包含信息

      3DS模型文件的基本構(gòu)成單位是塊,塊包括塊頭和主體內(nèi)容,塊頭又包括塊的 ID和塊的長度,主體內(nèi)容是塊的數(shù)據(jù)信息。每一個(gè)3DS文件的開頭都是由一個(gè)ID為0x4D4D的基本塊構(gòu)成,此外還有兩種主塊:ID為3D3D的3D編輯程序塊和ID為B000的關(guān)鍵幀塊。表1所示為幾個(gè)主要塊的 ID與包含信息。下面列出幾個(gè)主要塊的ID與包含信息。

      下面進(jìn)行文件內(nèi)容的讀入[3]:

      ①首先定義讀取模型中需要設(shè)置的一系列數(shù)據(jù)結(jié)構(gòu)。

      ④場(chǎng)景初始化:創(chuàng)建窗體,初始化 OpenGL環(huán)境,設(shè)置OpenGL繪圖窗口大小,投影模式,定義視圖體,設(shè)置光源,定義視點(diǎn)位置、視角和視線方向。

      在OpenGL中設(shè)置光源函數(shù)為glLight*()[1,2],用時(shí)需啟用光照計(jì)算,例如對(duì)于單個(gè)光源可以輸入代碼:

      glEnable(GL_LIGHTING);

      該函數(shù)涉及的參數(shù)包括視口位置(eye)、被視察點(diǎn)(at)、所期望的up方向。

      ⑤繪制場(chǎng)景:調(diào)用類CTriList中的drawGL()繪制函數(shù),通過函數(shù) glTranslatef 、glRotatef實(shí)現(xiàn)物體在坐標(biāo)系中的移動(dòng)和旋轉(zhuǎn)得到期望的場(chǎng)景顯示。

      啟動(dòng)深度檢測(cè),打開深度檢測(cè)開關(guān),并設(shè)置檢測(cè)方式:

      并且在完成繪圖以后,實(shí)現(xiàn)禁止深度檢測(cè):

      3 示例

      以艦船模型為例,使用 3DS MAX軟件建其模型如圖1所示。

      圖1 3DS MAX模型

      將其3DS文件讀入OpenGL,設(shè)置視口位置,開啟深度緩存,繪制場(chǎng)景圖。以四個(gè)入射角度為例,λ代表入射角,θ代表俯仰角,船頭方向?yàn)檎较?。圖2顯示了不同入射角度船模可見部分顯示。

      可以通過對(duì)圖像的移動(dòng)進(jìn)行放大和縮小,可以清晰的顯示在固定入射角時(shí)物體的可見部分,并且可以快速的進(jìn)行判別。

      4 結(jié)論

      在進(jìn)行目標(biāo)電磁計(jì)算時(shí)對(duì)目標(biāo)的可見部分進(jìn)行判別是必不可少的一部,對(duì)于簡單的物體可以使用面自身的遮擋以及面與面的遮擋來判別,但是對(duì)于復(fù)雜的物體來說,判別的過程比較麻煩。因此,本文選用在 VC++6.0的基礎(chǔ)上使用OpenGL實(shí)現(xiàn)對(duì)3DS格式的導(dǎo)入,即可以簡化建模的過程,也可以通過OpenGL實(shí)現(xiàn)入射方向上目標(biāo)可見部分的實(shí)時(shí)判別。不僅縮短了判別的工作量和時(shí)間,也適用于電磁散射計(jì)算中。

      [1]李春雨等. 計(jì)算機(jī)圖形學(xué)及實(shí)用編程技術(shù)[M]. 北京航空航天大學(xué)出版社, 2009: 157-158, 271-274.

      [2]Edward Angel.OpenGL編程基礎(chǔ)[M]. 北京: 清華大學(xué)出版社(2008): 75-96, 120-128.

      [3]和平鴿工作室. OpenGL高級(jí)編程與可視化系統(tǒng)開發(fā)高級(jí)編程篇[M]. 中國水利水電出版社(2005):68-77.

      [4]湯彬. 基于 OpenGL圖形消隱的研究[J]. 上海工程技術(shù)大學(xué)學(xué)報(bào), 2005(3).

      [5]高美真, 黃嬌青. OpenGL中的圖形變換[J]. 焦作師范高等??茖W(xué)校學(xué)報(bào), 2006(6).

      [6]潘修強(qiáng). 利用OpenGL和3DS MAX構(gòu)建復(fù)雜模型[J]. 浙江工貿(mào)職業(yè)技術(shù)學(xué)院學(xué)報(bào), 2006(12).

      [7]趙衛(wèi)東, 衛(wèi)剛, 李啟炎. 在OpenGL下面消隱和線消隱的實(shí)現(xiàn)[J]. 計(jì)算機(jī)工程, 2002(6).

      [8]楊東梅, 朱勝緣, 路偉成. OpenGL與 3D Studio MAX結(jié)合實(shí)現(xiàn)三維仿真[J]. 應(yīng)用科技, 2004(2).

      猜你喜歡
      入射角繪制電磁
      Art on coffee cups
      一般三棱鏡偏向角與入射角的關(guān)系
      三維多孔電磁復(fù)合支架構(gòu)建與理化表征
      預(yù)制圓柱形鎢破片斜穿甲鋼靶的破孔能力分析*
      放學(xué)后
      童話世界(2018年17期)2018-07-30 01:52:02
      用經(jīng)典定理證明各向異性巖石界面異常入射角的存在
      掌握基礎(chǔ)知識(shí) 不懼電磁偏轉(zhuǎn)
      在轉(zhuǎn)變中繪制新藍(lán)圖
      電磁換向閥應(yīng)用探討
      河南科技(2014年16期)2014-02-27 14:13:21
      瞬變電磁法在煤礦防治水中的應(yīng)用
      河南科技(2014年8期)2014-02-27 14:07:41
      锦州市| 博兴县| 无为县| 蓝田县| 中牟县| 宁化县| 平舆县| 渝中区| 天镇县| 太康县| 平武县| 达拉特旗| 丰原市| 凤山县| 神池县| 柘城县| 阳高县| 绥芬河市| 汉寿县| 古丈县| 泗水县| 金坛市| 清苑县| 互助| 忻州市| 平遥县| 锡林郭勒盟| 玉山县| 临猗县| 广宁县| 专栏| 社会| 莲花县| 宜宾市| 时尚| 台湾省| 湖南省| 宁武县| 英吉沙县| 嘉善县| 什邡市|