基于VRML和JavaScript的數(shù)碼攝影虛擬實驗系統(tǒng)的設計與實現(xiàn)_第1頁
基于VRML和JavaScript的數(shù)碼攝影虛擬實驗系統(tǒng)的設計與實現(xiàn)_第2頁
基于VRML和JavaScript的數(shù)碼攝影虛擬實驗系統(tǒng)的設計與實現(xiàn)_第3頁
全文預覽已結(jié)束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、基于VRML和JavaScript的數(shù)碼攝影虛擬實驗系統(tǒng)的設計與實現(xiàn)    1 研究思路與開發(fā)平臺的選擇目前,基于網(wǎng)絡對實驗對象進行三維交互展示的有效處理方法是使用專業(yè)的設計軟件,如采用AUTOCAD、3DS MAX等將實驗對象的三維模型設計出來。這種方法建模過程直觀形象,但生成的模型和動畫不能與用戶進行交互,需要將三維模型導出為相關虛擬現(xiàn)實設計軟件所需要的格式文件,用虛擬現(xiàn)實設計軟件進行三維展示的交互設計,最后將它發(fā)布到網(wǎng)站上1。經(jīng)過多年的發(fā)展,虛擬現(xiàn)實技術的實現(xiàn)也派生出多種不同的方法,現(xiàn)在較為流行的有VRML、Java 3D、CULT3D、X3D等多

2、種實現(xiàn)方法。它們各自有不同的優(yōu)缺點。其中,虛擬現(xiàn)實建模語言VRML(Virtual Reality Modeling Language)是一種描述大量對象的屬性及相互關系的語言,具有平臺無關性、三維交互性、多媒體集成、境界逼真等眾多優(yōu)越的特征,所以選擇該軟件作為開發(fā)平臺。雖然VRML可以通過直接編程進行語義描述,建立實驗對象的三維模型,但這種方法適合建立簡單規(guī)則的模型。數(shù)碼單反相機主要由機身和鏡頭兩部分組成。機身上又包括取景窗口、液晶顯示屏、曝光模式選擇盤、控制撥輪以及各個操作按鈕等,結(jié)構比較復雜,不宜直接用VRML語言進行語義描述。而是利用3DS MAX建立整個模型,并賦予材質(zhì)、色彩、光照,

3、導出VRML的格式文件(.*wrl文件)。因此,選擇3DS MAX進行建模,再使用VRML軟件進行交互設計并實現(xiàn)網(wǎng)上發(fā)布,建立逼真的交互式三維虛擬實驗環(huán)境,可以讓學生隨時通過網(wǎng)絡瀏覽三維場景,并通過人機交互進行仿真實驗。2 三維虛擬數(shù)碼單反相機的設計與實現(xiàn)實驗對象的建模是虛擬實驗開發(fā)過程中最重要的一步,模型的好壞直接影響運行的效果和場景的沉浸度。為了便于在VRML瀏覽器中設計三維數(shù)碼單反相機的交互,可以真實地模擬實際操作進行鏡頭的旋轉(zhuǎn)、曝光模式選擇盤的轉(zhuǎn)動、控制撥輪和按鈕的操作等,在對數(shù)碼相機進行建模時,將其各部分分別建模,后期組裝。將數(shù)碼單反相機的三維模型建好后,在3DS MAX中應用輸出插

4、件導出*wrl格式的文件。在運用3DS MAX模型導出VRML文件后要充分注意優(yōu)化VRML程序。優(yōu)化技術是三維虛擬建模過程中至關重要的一個環(huán)節(jié),優(yōu)化結(jié)果的好壞將直接影響三維數(shù)碼相機的顯示速度和交互效果2。3 使用VRML語言結(jié)合JavaScript實現(xiàn)數(shù)碼單反相機的虛擬實驗數(shù)碼單反相機虛擬實驗系統(tǒng)共包括四個實驗,分別是:認識數(shù)碼相機、數(shù)碼相機的調(diào)節(jié)模式、數(shù)碼相機的光圈調(diào)節(jié)、數(shù)碼相機快門調(diào)節(jié)。3.1 認識數(shù)碼單反相機模塊的設計與實現(xiàn)3實驗1是對數(shù)碼單反相機的三維展示,主要分為:(1)自由旋轉(zhuǎn)展示。在這種方式下,相機自動在瀏覽器中旋轉(zhuǎn),讓學習者從不同的角度上觀察相機的結(jié)構。(2)手動控制展示。在這

5、種方式下,學習者可以自主轉(zhuǎn)動相機,從不同角度細致地觀察相機。為了實現(xiàn)相機的自由旋轉(zhuǎn)展示,可以運用時間傳感器節(jié)點(TimeSensor)和方向插補器節(jié)點(OrientationInterpolator)。TimeSensor節(jié)點的作用是創(chuàng)建一個虛擬時鐘,可以像時鐘一樣標記時間的流逝,設置開始動畫、結(jié)束動畫和控制動畫的播放速度等屬性,并向插補器節(jié)點輸出時間事件,產(chǎn)生相應的動畫效果。OrientationInterpolator可改變觀察方向或者改變形狀體的方向。插補器節(jié)點使用一組關鍵時刻和關鍵值來描述一個動畫。關鍵時刻列表在插補器節(jié)點的key域中指定,關鍵值列表在插補器節(jié)點的keyvalue域中指

6、定。瀏覽器在渲染時將根據(jù)這些關鍵時刻所對應的關鍵狀態(tài)在場景中通過線性插值計算技術自動生成連續(xù)動畫。實現(xiàn)自由旋轉(zhuǎn)展示部分相應代碼如下:OrientationInterpolator   /創(chuàng)建控制動畫的插補器        key    0 0.5 1/指定關鍵時刻列表        keyValue /指定對應的旋轉(zhuǎn)關鍵值列表          &

7、#160; 0 1 0 0,            0 1 0 3.14,            0 1 0 6.28        TimeSensor /創(chuàng)建控制動畫的時間感應器        enabled    TRUE   

8、60;    cycleInterval 30/指定每個變化周期的時間長短ROUTE clock_camera.fraction_changed    TO camera_auto_rotation.set_fractionROUTE camera_auto_rotation.value_changed TO    camera_all.rotation在ROUTE中,將TimeSensor的fraction_changed出事件路由到插補器的set_fraction入事件,每次時間傳感器輸出一個新的時刻

9、,插補器就會利用輸入的時間計算出一個新的旋轉(zhuǎn)值,然后通過其value_changed出事件路由到方向插補器節(jié)點。為了能從各種角度來展示相機,運用SphereSensor傳感器節(jié)點,對相機進行了手動的三維展示。 SphereSensor節(jié)點用于感知觀察者的拖動動作,并且計算旋轉(zhuǎn)角和角度。通過使用它的rotation_changed域輸出變化的參數(shù),對相機整體進行360°上下左右的旋轉(zhuǎn)完成相機的手動展示。代碼如下:SphereSensor        enabled TRUEROUTE camera_sd.rotation_c

10、hanged TO    camera_all.rotation對于VRML窗口與網(wǎng)頁之間的交互主要是通過JavaScript和VRML中的TouchSensor節(jié)點完成。由于TouchSensor節(jié)點能感知用戶的鼠標事件,一般的鼠標操作通常有3種:移動、點擊、拖動。本設計主要使用了移動操作,當用戶進行移動操作的時候會使TouchSensor中的isOver公共域變?yōu)門RUE,傳遞出去一個真事件。在網(wǎng)頁中用JavaScript接收到該事件再運用相應的程序完成相應的操作,然后在VRML場景中運用Onmousemove感知鼠標的移動事件。VRML場景中主要代碼:Tou

11、chsensor     Enabled TRUE在網(wǎng)頁中對VRML場景運用了Onmousemove感知鼠標的移動事件,當鼠標作用于VRML場景時會觸發(fā)相應的處理事件javascript代碼,例如當鼠標移動到LCD顯示屏時,用到了條件判斷語句對其進行判斷:if(M_e.Nodes("Viewfinder_button").Fields("isOver")=-1)                display

12、_div(2,12);然后進行相應的處理操作。其中Viewfinder_button是取景器的觸發(fā)傳感器TouchSensor的名稱。3.2 數(shù)碼相機曝光模式的選擇模塊的設計與實現(xiàn)在實驗2中,要求能模擬真實的數(shù)碼相機的操作,允許學習者通過轉(zhuǎn)動曝光模式調(diào)節(jié)環(huán),選擇不同的曝光模式。每一種曝光模式都有各自的特點以及適用的場合。實現(xiàn)這一效果,是在VRML中使用CylinderSensor(圓柱傳感器)與Script節(jié)點的結(jié)合實現(xiàn)了用戶與曝光模式選擇盤的交互。CylinderSensor節(jié)點也可以感知一個觀察者的拖動動作,并且計算轉(zhuǎn)軸和角度,通過它的rotation_changed域(eventOut出

13、事件)輸出。其代碼如下:CylinderSensor        exposedField SFFloat minAngle 0        exposedField SFFloat maxAngle -1        exposedField SFBool enabled TRUE        exposedField SFFloat diskAngle 0.262        exposedField SFFloat offset 0      

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論