• 
    

    
    

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

      采用JOGL的WEB虛擬漫游

      2011-03-23 09:30:52黎國進陳定方
      湖北工業(yè)大學學報 2011年4期
      關(guān)鍵詞:畫布漫游文件夾

      黎國進,陳 杰,李 佳,陳定方

      (武漢理工大學智能制造與控制研究所,湖北 武漢 430063)

      虛擬漫游技術(shù)作為虛擬現(xiàn)實(VR)技術(shù)的重要分支,在建筑、觀光旅游、游戲、航空航天、醫(yī)學,軍事演練等多種行業(yè)中得到廣泛應(yīng)用.在漫游場景中加入圖像、聲音、視頻等多媒體,其強烈的沉浸感、交互性和構(gòu)想性給用戶一種身臨其境的感覺.JOGL對OpenGL 2.0規(guī)范中的API提供全面的支持,而且還集成了Java AWT和Java Swing界面組件[1].由于得到Sun公司和SGI的大力支持,以及Java平臺自身的優(yōu)勢,JOGL作為3D圖形開發(fā)庫得到了廣泛的運用.

      1 JOGL安裝及環(huán)境配置

      1.1 Java SDK(JDK)的安裝

      根據(jù)所用的操作系統(tǒng)平臺,下載與之匹配的最新JDK.

      1.2 安裝JOGL

      對于Windows用戶,下載 JOGLl-1.1.1-windows-i586.zip;環(huán)境配置(以 Windows用戶為例)過程如下:首先解壓JOGLl-1.1.1-windows-i586.zip,得到ext和lib.然后將lib文件夾中的DLL文件復制并存放于C: JAVA WORKSPACE JOGL1DLL中.將lib文件夾添加到系統(tǒng)PATH環(huán)境變量中,例如:C: JAVA WORKSPACE lib;將 lib文件夾中的jogl.jar,gluegen-rt.jar這兩個Jar包的絕對路徑添加到系統(tǒng)CLASSPATH環(huán)境變量中.

      1.3 安裝Java IDE

      本文采用MyEclipse8.6版本作為軟件開發(fā)環(huán)境.項目環(huán)境配置(以Windows用戶為例)如下.

      1)新建一個工程:File※new※Java Project※在Project Name文本框中輸入工程名.

      2)點擊Next,對Java編譯環(huán)境進行設(shè)置.Libraries※Add External JARS※打開C: JAVA WORKSPACE jar1文件夾中的二個Jar包※Order and Export※點擊Select All※點擊Finished.

      3)點擊工程名,右鍵※Properties※Java Build Path※Source※點擊工程名/src※選中Native library location※Link Source※Browse※選中 C:JAVA WORKSPACE JOGL1DLL文件夾※OK.

      2 虛擬環(huán)境的實現(xiàn)

      2.1 Opengl場景渲染的實現(xiàn)

      Opengl由兩個庫組成——GL和GLU(Opengl Utility Library).GL庫包含了提供基本圖形特征的核心函數(shù);GLU庫包含了高級別的基于GL函數(shù)的應(yīng)用函數(shù)[2].

      JOGL提供GL和GLU兩個類來封裝Opengl的GL和GLU函數(shù).組件GLCanvas和GLJPanel為Opengl函數(shù)調(diào)用提供繪制表面.GLCanvas是重量級組件,能夠啟動使用硬件加速功能.GLJPanel是在系統(tǒng)內(nèi)存中實現(xiàn)的輕量級組件,不能使用硬件加速功能[2].在此采用GLCanvas畫布組件.實現(xiàn)過程如下:1)在Applet的init方法中聲明一個GLCanvas畫布實例對象并設(shè)置其相關(guān)屬性;2)為畫布對象添加GLEventListener監(jiān)聽器;3)新建一個類,實現(xiàn)GLEventListener接口中的init,display,reshape,displayChange等4個方法,在init方法中獲取gl,glu等實例對象并設(shè)置場景渲染的相關(guān)屬性,在display方法中繪制場景和顯示模型.

      2.2 漫游場景的構(gòu)建

      采用類似于OSG中的包圍體來實現(xiàn)漫游的范圍.包圍體的6個面分別為6張紋理圖片.裝載紋理圖片的核心代碼如下:

      2.3 人機交互

      人機交互技術(shù)是虛擬現(xiàn)實技術(shù)的一個重要分支,在漫游場景中,可以實現(xiàn)虛攝像機的前進、后退、旋轉(zhuǎn)、仰視、俯視等操作.

      通過調(diào)用GLU類的gluLookAt(

      double eyeX,double eyeY,double eyeZ,

      double atX,double atY,double atZ,

      double upX,double upY,double upZ)方法設(shè)置虛擬攝像機的屬性.

      其中:eyeX,eyeY,eyeZ表示虛擬攝像機的位置;atX,atY,atZ表示虛擬像機所“看”的點的坐標;upX,upY,upZ表示虛擬攝像機的觀察方向——倒立,正立或者從某一個角度進行觀察.其示意圖如圖

      1、2 所示[3].

      圖1 gluLookAt函數(shù)示意圖

      與gluLookAt函數(shù)共同作用于虛擬像機的還有g(shù)luPerspective(

      GLdouble fovy,//設(shè)置虛擬像機的視界范圍

      GLdouble aspect,//窗體的縱橫比

      GLdouble zNear,//視野近點透視深度

      GLdouble zFar//視野遠點透視深度

      )方法.

      通過實現(xiàn)KeyListener接口,對窗體添加鍵盤監(jiān)聽事件,即可通過鍵盤對虛擬攝像機的位置、視點、觀察角度予以變換,實現(xiàn)交互式虛擬漫游.

      圖2 gluPerspective函數(shù)示意圖

      2.4 Java Applet設(shè)置

      Java Applet即Java小應(yīng)用程序,在瀏覽器中運行,能處理圖像、聲音、動畫等多媒體數(shù)據(jù).當用戶訪問這樣的網(wǎng)頁時,Applet被自動下載到本機.采用Java Applet技術(shù),將Opengl所渲染的場景在瀏覽器中顯示(圖3).其設(shè)置如下:1)編譯源程序;2)將所有的字節(jié)碼文件生成一個Jar包;3)對程序中用到的兩個Jar包以及生成的joglApplet.jar包進行數(shù)字簽名;4)在字節(jié)碼文件中新建一個Html文件,將applet標簽加入到文件中,代碼如下

      .

      圖3 程序在瀏覽器中運行示意圖

      [1]李貽斌,牟龍芳.基于JOGL的關(guān)節(jié)機器人仿真[J].蘇州市職業(yè)大學學報,2008,19(1):53-56.

      [2]Liang Y D,Zhang H.計算機圖形學應(yīng)用Java 2D和3D[M].孫正興,張 巖,蔣 維,等譯.北京:機械工業(yè)出版社,2008.

      [3]Davis G.Learning Java Binding for Opengl[EB/OL][2011-03-03].http://alvarestech.com/temp/capp/0steptools/0booksmaio-20-2011/Learning% 20Java%20Bindings%20for%20OpenGL%20-%20Gene%20Davis.pdf.

      猜你喜歡
      畫布漫游文件夾
      磁力文件夾
      商業(yè)模式畫布
      商界評論(2022年12期)2022-03-06 16:43:01
      為什么要在畫布上割一刀?
      讓鮮花在畫布上盛開
      霹靂漫游堂
      調(diào)動右鍵 解決文件夾管理三大難題
      NASA漫游記
      大師的畫布
      TC一鍵直達常用文件夾
      電腦迷(2015年1期)2015-04-29 21:24:13
      邊走邊看:漫游海底 夢想成真
      青岛市| 呼伦贝尔市| 思茅市| 吉隆县| 土默特左旗| 蓬莱市| 宣恩县| 施甸县| 灵武市| 林芝县| 白沙| 渭源县| 宝山区| 烟台市| 肃北| 葫芦岛市| 鞍山市| 额尔古纳市| 彭山县| 闽清县| 新兴县| 泾源县| 江口县| 团风县| 龙山县| 江北区| 连平县| 成武县| 宁国市| 竹北市| 利辛县| 贡觉县| 南城县| 英超| 平舆县| 安远县| 弥渡县| 广饶县| 郯城县| 台中县| 焦作市|