国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

采用JOGL的WEB虛擬漫游

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

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

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

虛擬漫游技術(shù)作為虛擬現(xiàn)實(VR)技術(shù)的重要分支,在建筑、觀光旅游、游戲、航空航天、醫(yī)學,軍事演練等多種行業(yè)中得到廣泛應用.在漫游場景中加入圖像、聲音、視頻等多媒體,其強烈的沉浸感、交互性和構(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ù)的應用函數(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小應用程序,在瀏覽器中運行,能處理圖像、聲音、動畫等多媒體數(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.計算機圖形學應用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
邊走邊看:漫游海底 夢想成真
阳朔县| 吴江市| 金堂县| 罗田县| 广昌县| 元江| 大姚县| 唐河县| 兴仁县| 江孜县| 汾西县| 鲁甸县| 滨海县| 都昌县| 慈溪市| 滁州市| 白城市| 呼伦贝尔市| 团风县| 即墨市| 慈溪市| 黔南| 赫章县| 建始县| 招远市| 屯留县| 元谋县| 天长市| 唐山市| 桂东县| 武乡县| 涟源市| 西贡区| 化州市| 太白县| 抚宁县| 赤壁市| 蒲江县| 文登市| 怀远县| 繁昌县|