• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 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
    图们市| 屏南县| 巴林左旗| 全椒县| 成武县| 高淳县| 温泉县| 平度市| 大石桥市| 礼泉县| 江川县| 建德市| 永登县| 清流县| 天水市| 农安县| 新郑市| 黎平县| 诏安县| 静宁县| 荔浦县| 桦川县| 甘泉县| 含山县| 阜宁县| 莱芜市| 武陟县| 麻阳| 军事| 丁青县| 沙洋县| 德兴市| 德州市| 泗阳县| 桐庐县| 玉树县| 新野县| 丰原市| 乌兰浩特市| 绥滨县| 基隆市|