


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、基于VRML和JavaScript的數(shù)碼攝影虛擬實(shí)驗(yàn)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 1 研究思路與開發(fā)平臺(tái)的選擇目前,基于網(wǎng)絡(luò)對(duì)實(shí)驗(yàn)對(duì)象進(jìn)行三維交互展示的有效處理方法是使用專業(yè)的設(shè)計(jì)軟件,如采用AUTOCAD、3DS MAX等將實(shí)驗(yàn)對(duì)象的三維模型設(shè)計(jì)出來。這種方法建模過程直觀形象,但生成的模型和動(dòng)畫不能與用戶進(jìn)行交互,需要將三維模型導(dǎo)出為相關(guān)虛擬現(xiàn)實(shí)設(shè)計(jì)軟件所需要的格式文件,用虛擬現(xiàn)實(shí)設(shè)計(jì)軟件進(jìn)行三維展示的交互設(shè)計(jì),最后將它發(fā)布到網(wǎng)站上1。經(jīng)過多年的發(fā)展,虛擬現(xiàn)實(shí)技術(shù)的實(shí)現(xiàn)也派生出多種不同的方法,現(xiàn)在較為流行的有VRML、Java 3D、CULT3D、X3D等多
2、種實(shí)現(xiàn)方法。它們各自有不同的優(yōu)缺點(diǎn)。其中,虛擬現(xiàn)實(shí)建模語言VRML(Virtual Reality Modeling Language)是一種描述大量對(duì)象的屬性及相互關(guān)系的語言,具有平臺(tái)無關(guān)性、三維交互性、多媒體集成、境界逼真等眾多優(yōu)越的特征,所以選擇該軟件作為開發(fā)平臺(tái)。雖然VRML可以通過直接編程進(jìn)行語義描述,建立實(shí)驗(yàn)對(duì)象的三維模型,但這種方法適合建立簡單規(guī)則的模型。數(shù)碼單反相機(jī)主要由機(jī)身和鏡頭兩部分組成。機(jī)身上又包括取景窗口、液晶顯示屏、曝光模式選擇盤、控制撥輪以及各個(gè)操作按鈕等,結(jié)構(gòu)比較復(fù)雜,不宜直接用VRML語言進(jìn)行語義描述。而是利用3DS MAX建立整個(gè)模型,并賦予材質(zhì)、色彩、光照,
3、導(dǎo)出VRML的格式文件(.*wrl文件)。因此,選擇3DS MAX進(jìn)行建模,再使用VRML軟件進(jìn)行交互設(shè)計(jì)并實(shí)現(xiàn)網(wǎng)上發(fā)布,建立逼真的交互式三維虛擬實(shí)驗(yàn)環(huán)境,可以讓學(xué)生隨時(shí)通過網(wǎng)絡(luò)瀏覽三維場景,并通過人機(jī)交互進(jìn)行仿真實(shí)驗(yàn)。2 三維虛擬數(shù)碼單反相機(jī)的設(shè)計(jì)與實(shí)現(xiàn)實(shí)驗(yàn)對(duì)象的建模是虛擬實(shí)驗(yàn)開發(fā)過程中最重要的一步,模型的好壞直接影響運(yùn)行的效果和場景的沉浸度。為了便于在VRML瀏覽器中設(shè)計(jì)三維數(shù)碼單反相機(jī)的交互,可以真實(shí)地模擬實(shí)際操作進(jìn)行鏡頭的旋轉(zhuǎn)、曝光模式選擇盤的轉(zhuǎn)動(dòng)、控制撥輪和按鈕的操作等,在對(duì)數(shù)碼相機(jī)進(jìn)行建模時(shí),將其各部分分別建模,后期組裝。將數(shù)碼單反相機(jī)的三維模型建好后,在3DS MAX中應(yīng)用輸出插
4、件導(dǎo)出*wrl格式的文件。在運(yùn)用3DS MAX模型導(dǎo)出VRML文件后要充分注意優(yōu)化VRML程序。優(yōu)化技術(shù)是三維虛擬建模過程中至關(guān)重要的一個(gè)環(huán)節(jié),優(yōu)化結(jié)果的好壞將直接影響三維數(shù)碼相機(jī)的顯示速度和交互效果2。3 使用VRML語言結(jié)合JavaScript實(shí)現(xiàn)數(shù)碼單反相機(jī)的虛擬實(shí)驗(yàn)數(shù)碼單反相機(jī)虛擬實(shí)驗(yàn)系統(tǒng)共包括四個(gè)實(shí)驗(yàn),分別是:認(rèn)識(shí)數(shù)碼相機(jī)、數(shù)碼相機(jī)的調(diào)節(jié)模式、數(shù)碼相機(jī)的光圈調(diào)節(jié)、數(shù)碼相機(jī)快門調(diào)節(jié)。3.1 認(rèn)識(shí)數(shù)碼單反相機(jī)模塊的設(shè)計(jì)與實(shí)現(xiàn)3實(shí)驗(yàn)1是對(duì)數(shù)碼單反相機(jī)的三維展示,主要分為:(1)自由旋轉(zhuǎn)展示。在這種方式下,相機(jī)自動(dòng)在瀏覽器中旋轉(zhuǎn),讓學(xué)習(xí)者從不同的角度上觀察相機(jī)的結(jié)構(gòu)。(2)手動(dòng)控制展示。在這
5、種方式下,學(xué)習(xí)者可以自主轉(zhuǎn)動(dòng)相機(jī),從不同角度細(xì)致地觀察相機(jī)。為了實(shí)現(xiàn)相機(jī)的自由旋轉(zhuǎn)展示,可以運(yùn)用時(shí)間傳感器節(jié)點(diǎn)(TimeSensor)和方向插補(bǔ)器節(jié)點(diǎn)(OrientationInterpolator)。TimeSensor節(jié)點(diǎn)的作用是創(chuàng)建一個(gè)虛擬時(shí)鐘,可以像時(shí)鐘一樣標(biāo)記時(shí)間的流逝,設(shè)置開始動(dòng)畫、結(jié)束動(dòng)畫和控制動(dòng)畫的播放速度等屬性,并向插補(bǔ)器節(jié)點(diǎn)輸出時(shí)間事件,產(chǎn)生相應(yīng)的動(dòng)畫效果。OrientationInterpolator可改變觀察方向或者改變形狀體的方向。插補(bǔ)器節(jié)點(diǎn)使用一組關(guān)鍵時(shí)刻和關(guān)鍵值來描述一個(gè)動(dòng)畫。關(guān)鍵時(shí)刻列表在插補(bǔ)器節(jié)點(diǎn)的key域中指定,關(guān)鍵值列表在插補(bǔ)器節(jié)點(diǎn)的keyvalue域中指
6、定。瀏覽器在渲染時(shí)將根據(jù)這些關(guān)鍵時(shí)刻所對(duì)應(yīng)的關(guān)鍵狀態(tài)在場景中通過線性插值計(jì)算技術(shù)自動(dòng)生成連續(xù)動(dòng)畫。實(shí)現(xiàn)自由旋轉(zhuǎn)展示部分相應(yīng)代碼如下:OrientationInterpolator /創(chuàng)建控制動(dòng)畫的插補(bǔ)器 key 0 0.5 1/指定關(guān)鍵時(shí)刻列表 keyValue /指定對(duì)應(yīng)的旋轉(zhuǎn)關(guān)鍵值列表 &
7、#160; 0 1 0 0, 0 1 0 3.14, 0 1 0 6.28 TimeSensor /創(chuàng)建控制動(dòng)畫的時(shí)間感應(yīng)器 enabled TRUE
8、60; cycleInterval 30/指定每個(gè)變化周期的時(shí)間長短ROUTE clock_camera.fraction_changed TO camera_auto_rotation.set_fractionROUTE camera_auto_rotation.value_changed TO camera_all.rotation在ROUTE中,將TimeSensor的fraction_changed出事件路由到插補(bǔ)器的set_fraction入事件,每次時(shí)間傳感器輸出一個(gè)新的時(shí)刻
9、,插補(bǔ)器就會(huì)利用輸入的時(shí)間計(jì)算出一個(gè)新的旋轉(zhuǎn)值,然后通過其value_changed出事件路由到方向插補(bǔ)器節(jié)點(diǎn)。為了能從各種角度來展示相機(jī),運(yùn)用SphereSensor傳感器節(jié)點(diǎn),對(duì)相機(jī)進(jìn)行了手動(dòng)的三維展示。 SphereSensor節(jié)點(diǎn)用于感知觀察者的拖動(dòng)動(dòng)作,并且計(jì)算旋轉(zhuǎn)角和角度。通過使用它的rotation_changed域輸出變化的參數(shù),對(duì)相機(jī)整體進(jìn)行360°上下左右的旋轉(zhuǎn)完成相機(jī)的手動(dòng)展示。代碼如下:SphereSensor enabled TRUEROUTE camera_sd.rotation_c
10、hanged TO camera_all.rotation對(duì)于VRML窗口與網(wǎng)頁之間的交互主要是通過JavaScript和VRML中的TouchSensor節(jié)點(diǎn)完成。由于TouchSensor節(jié)點(diǎn)能感知用戶的鼠標(biāo)事件,一般的鼠標(biāo)操作通常有3種:移動(dòng)、點(diǎn)擊、拖動(dòng)。本設(shè)計(jì)主要使用了移動(dòng)操作,當(dāng)用戶進(jìn)行移動(dòng)操作的時(shí)候會(huì)使TouchSensor中的isOver公共域變?yōu)門RUE,傳遞出去一個(gè)真事件。在網(wǎng)頁中用JavaScript接收到該事件再運(yùn)用相應(yīng)的程序完成相應(yīng)的操作,然后在VRML場景中運(yùn)用Onmousemove感知鼠標(biāo)的移動(dòng)事件。VRML場景中主要代碼:Tou
11、chsensor Enabled TRUE在網(wǎng)頁中對(duì)VRML場景運(yùn)用了Onmousemove感知鼠標(biāo)的移動(dòng)事件,當(dāng)鼠標(biāo)作用于VRML場景時(shí)會(huì)觸發(fā)相應(yīng)的處理事件javascript代碼,例如當(dāng)鼠標(biāo)移動(dòng)到LCD顯示屏?xí)r,用到了條件判斷語句對(duì)其進(jìn)行判斷:if(M_e.Nodes("Viewfinder_button").Fields("isOver")=-1) display
12、_div(2,12);然后進(jìn)行相應(yīng)的處理操作。其中Viewfinder_button是取景器的觸發(fā)傳感器TouchSensor的名稱。3.2 數(shù)碼相機(jī)曝光模式的選擇模塊的設(shè)計(jì)與實(shí)現(xiàn)在實(shí)驗(yàn)2中,要求能模擬真實(shí)的數(shù)碼相機(jī)的操作,允許學(xué)習(xí)者通過轉(zhuǎn)動(dòng)曝光模式調(diào)節(jié)環(huán),選擇不同的曝光模式。每一種曝光模式都有各自的特點(diǎn)以及適用的場合。實(shí)現(xiàn)這一效果,是在VRML中使用CylinderSensor(圓柱傳感器)與Script節(jié)點(diǎn)的結(jié)合實(shí)現(xiàn)了用戶與曝光模式選擇盤的交互。CylinderSensor節(jié)點(diǎn)也可以感知一個(gè)觀察者的拖動(dòng)動(dòng)作,并且計(jì)算轉(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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 車輛過戶與汽車安全檢測服務(wù)合同
- 大學(xué)生職業(yè)安全教育心得體會(huì)
- 建筑安全生產(chǎn)管理必須堅(jiān)持
- 安全生產(chǎn)事故
- 幼兒園安全培訓(xùn)方案
- 2025 二年級(jí)語文下冊(cè)遞進(jìn)句練習(xí)課件
- 提高流域協(xié)調(diào)聯(lián)動(dòng)綜合應(yīng)急處置能力的策略及實(shí)施路徑
- 2025至2030城市垃圾壓實(shí)機(jī)行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報(bào)告
- 2025至2030中國沐浴珠行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢及投資規(guī)劃深度研究報(bào)告
- 2025至2030中國有機(jī)大豆行業(yè)市場深度研究及發(fā)展前景投資可行性分析報(bào)告
- 勞動(dòng)仲裁內(nèi)部培訓(xùn)
- 2025年云南普洱市墨江天下一雙文旅體育集團(tuán)有限公司招聘筆試參考題庫附帶答案詳解
- 新版機(jī)動(dòng)車檢驗(yàn)檢測機(jī)構(gòu)程序文件模板
- GB∕T 1001.1-2021 標(biāo)稱電壓高于1000V的架空線路絕緣子 第1部分:交流系統(tǒng)用瓷或玻璃絕緣子元件 定義、試驗(yàn)方法和判定準(zhǔn)則
- DB11_T 1832.9-2022 建筑工程施工工藝規(guī)程 第9部分_屋面工程
- 品牌中國產(chǎn)業(yè)聯(lián)盟簡介ppt課件
- 肝素鈉生產(chǎn)工藝綜述
- 裝載機(jī)安全培訓(xùn)
- 實(shí)驗(yàn)一機(jī)構(gòu)運(yùn)動(dòng)簡圖繪制與分析
- 人民網(wǎng)刪除稿件(帖文)申請(qǐng)登記表
- 綜采維修鉗工__礦井維修鉗工題庫
評(píng)論
0/150
提交評(píng)論