電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>嵌入式開發(fā)>基于VRML的數(shù)碼攝影虛擬實驗系統(tǒng)設(shè)計方案

基于VRML的數(shù)碼攝影虛擬實驗系統(tǒng)設(shè)計方案

2017-10-27 | rar | 0.3 MB | 次下載 | 1積分

資料介紹

1 研究思路與開發(fā)平臺的選擇
  目前,基于網(wǎng)絡(luò)對實驗對象進行三維交互展示的有效處理方法是使用專業(yè)的設(shè)計軟件,如采用AUTOCAD、3DS MAX等將實驗對象的三維模型設(shè)計出來。這種方法建模過程直觀形象,但生成的模型和動畫不能與用戶進行交互,需要將三維模型導(dǎo)出為相關(guān)虛擬現(xiàn)實設(shè)計軟件所需要的格式文件,用虛擬現(xiàn)實設(shè)計軟件進行三維展示的交互設(shè)計,最后將它發(fā)布到網(wǎng)站上[1]。
  經(jīng)過多年的發(fā)展,虛擬現(xiàn)實技術(shù)的實現(xiàn)也派生出多種不同的方法,現(xiàn)在較為流行的有VRML、Java 3D、CULT3D、X3D等多種實現(xiàn)方法。它們各自有不同的優(yōu)缺點。其中,虛擬現(xiàn)實建模語言VRML(Virtual Reality Modeling Language)是一種描述大量對象的屬性及相互關(guān)系的語言,具有平臺無關(guān)性、三維交互性、多媒體集成、境界逼真等眾多優(yōu)越的特征,所以選擇該軟件作為開發(fā)平臺。雖然VRML可以通過直接編程進行語義描述,建立實驗對象的三維模型,但這種方法適合建立簡單規(guī)則的模型。數(shù)碼單反相機主要由機身和鏡頭兩部分組成。機身上又包括取景窗口、液晶顯示屏、曝光模式選擇盤、控制撥輪以及各個操作按鈕等,結(jié)構(gòu)比較復(fù)雜,不宜直接用VRML語言進行語義描述。而是利用3DS MAX建立整個模型,并賦予材質(zhì)、色彩、光照,導(dǎo)出VRML的格式文件(.*wrl文件)。因此,選擇3DS MAX進行建模,再使用VRML軟件進行交互設(shè)計并實現(xiàn)網(wǎng)上發(fā)布,建立逼真的交互式三維虛擬實驗環(huán)境,可以讓學(xué)生隨時通過網(wǎng)絡(luò)瀏覽三維場景,并通過人機交互進行仿真實驗。
  2 三維虛擬數(shù)碼單反相機的設(shè)計與實現(xiàn)
  實驗對象的建模是虛擬實驗開發(fā)過程中最重要的一步,模型的好壞直接影響運行的效果和場景的沉浸度。為了便于在VRML瀏覽器中設(shè)計三維數(shù)碼單反相機的交互,可以真實地模擬實際操作進行鏡頭的旋轉(zhuǎn)、曝光模式選擇盤的轉(zhuǎn)動、控制撥輪和按鈕的操作等,在對數(shù)碼相機進行建模時,將其各部分分別建模,后期組裝。將數(shù)碼單反相機的三維模型建好后,在3DS MAX中應(yīng)用輸出插件導(dǎo)出*wrl格式的文件。在運用3DS MAX模型導(dǎo)出VRML文件后要充分注意優(yōu)化VRML程序。優(yōu)化技術(shù)是三維虛擬建模過程中至關(guān)重要的一個環(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ù)碼單反相機模塊的設(shè)計與實現(xiàn)[3]
  實驗1是對數(shù)碼單反相機的三維展示,主要分為:(1)自由旋轉(zhuǎn)展示。在這種方式下,相機自動在瀏覽器中旋轉(zhuǎn),讓學(xué)習(xí)者從不同的角度上觀察相機的結(jié)構(gòu)。(2)手動控制展示。在這種方式下,學(xué)習(xí)者可以自主轉(zhuǎn)動相機,從不同角度細致地觀察相機。
  為了實現(xiàn)相機的自由旋轉(zhuǎn)展示,可以運用時間傳感器節(jié)點(TimeSensor)和方向插補器節(jié)點(OrientationInterpolator)。TimeSensor節(jié)點的作用是創(chuàng)建一個虛擬時鐘,可以像時鐘一樣標記時間的流逝,設(shè)置開始動畫、結(jié)束動畫和控制動畫的播放速度等屬性,并向插補器節(jié)點輸出時間事件,產(chǎn)生相應(yīng)的動畫效果。OrientationInterpolator可改變觀察方向或者改變形狀體的方向。插補器節(jié)點使用一組關(guān)鍵時刻和關(guān)鍵值來描述一個動畫。關(guān)鍵時刻列表在插補器節(jié)點的key域中指定,關(guān)鍵值列表在插補器節(jié)點的keyvalue域中指定。瀏覽器在渲染時將根據(jù)這些關(guān)鍵時刻所對應(yīng)的關(guān)鍵狀態(tài)在場景中通過線性插值計算技術(shù)自動生成連續(xù)動畫。實現(xiàn)自由旋轉(zhuǎn)展示部分相應(yīng)代碼如下:
  OrientationInterpolator{ //創(chuàng)建控制動畫的插補器
  key [0 0.5 1]//指定關(guān)鍵時刻列表
  keyValue [//指定對應(yīng)的旋轉(zhuǎn)關(guān)鍵值列表
  0 1 0 0,
  0 1 0 3.14,
  0 1 0 6.28
  ]
  }
  TimeSensor {//創(chuàng)建控制動畫的時間感應(yīng)器
  enabled TRUE
  cycleInterval 30//指定每個變化周期的時間長短
  }
  ROUTE clock_camera.fraction_changed TO camera_auto_rotation.set_fraction
  ROUTE camera_auto_rotation.value_changed TO
  camera_all.rotation
  在ROUTE中,將TimeSensor的fraction_changed出事件路由到插補器的set_fraction入事件,每次時間傳感器輸出一個新的時刻,插補器就會利用輸入的時間計算出一個新的旋轉(zhuǎn)值,然后通過其value_changed出事件路由到方向插補器節(jié)點。
  為了能從各種角度來展示相機,運用SphereSensor傳感器節(jié)點,對相機進行了手動的三維展示。 SphereSensor節(jié)點用于感知觀察者的拖動動作,并且計算旋轉(zhuǎn)角和角度。通過使用它的rotation_changed域輸出變化的參數(shù),對相機整體進行360°上下左右的旋轉(zhuǎn)完成相機的手動展示。代碼如下:
  SphereSensor{
  enabled TRUE
  }
  ROUTE camera_sd.rotation_changed TO camera_all.rotation
  對于VRML窗口與網(wǎng)頁之間的交互主要是通過JavaScript和VRML中的TouchSensor節(jié)點完成。由于TouchSensor節(jié)點能感知用戶的鼠標事件,一般的鼠標操作通常有3種:移動、點擊、拖動。本設(shè)計主要使用了移動操作,當(dāng)用戶進行移動操作的時候會使TouchSensor中的isOver公共域變?yōu)門RUE,傳遞出去一個真事件。在網(wǎng)頁中用JavaScript接收到該事件再運用相應(yīng)的程序完成相應(yīng)的操作,然后在VRML場景中運用Onmousemove感知鼠標的移動事件。VRML場景中主要代碼:
  Touchsensor {
  Enabled TRUE
  }
  在網(wǎng)頁中對VRML場景運用了Onmousemove感知鼠標的移動事件,當(dāng)鼠標作用于VRML場景時會觸發(fā)相應(yīng)的處理事件javascript代碼,例如當(dāng)鼠標移動到LCD顯示屏?xí)r,用到了條件判斷語句對其進行判斷:
  if(M_e.Nodes(“Viewfinder_button”).Fields(“isOver”)==-1){
  display_div(2,12);
  }
  然后進行相應(yīng)的處理操作。其中Viewfinder_button是取景器的觸發(fā)傳感器TouchSensor的名稱。
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1TC358743XBG評估板參考手冊
  2. 1.36 MB  |  330次下載  |  免費
  3. 2開關(guān)電源基礎(chǔ)知識
  4. 5.73 MB  |  6次下載  |  免費
  5. 3100W短波放大電路圖
  6. 0.05 MB  |  4次下載  |  3 積分
  7. 4嵌入式linux-聊天程序設(shè)計
  8. 0.60 MB  |  3次下載  |  免費
  9. 5基于FPGA的光纖通信系統(tǒng)的設(shè)計與實現(xiàn)
  10. 0.61 MB  |  2次下載  |  免費
  11. 6基于FPGA的C8051F單片機開發(fā)板設(shè)計
  12. 0.70 MB  |  2次下載  |  免費
  13. 751單片機窗簾控制器仿真程序
  14. 1.93 MB  |  2次下載  |  免費
  15. 8基于51單片機的RGB調(diào)色燈程序仿真
  16. 0.86 MB  |  2次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33564次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關(guān)電源設(shè)計實例指南
  8. 未知  |  21548次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅(qū)動電路設(shè)計》 溫德爾著
  16. 0.00 MB  |  6653次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537796次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191185次下載  |  免費
  13. 7十天學(xué)會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183278次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費