資料介紹
1 研究思路與開發平臺的選擇
目前,基于網絡對實驗對象進行三維交互展示的有效處理方法是使用專業的設計軟件,如采用AUTOCAD、3DS MAX等將實驗對象的三維模型設計出來。這種方法建模過程直觀形象,但生成的模型和動畫不能與用戶進行交互,需要將三維模型導出為相關虛擬現實設計軟件所需要的格式文件,用虛擬現實設計軟件進行三維展示的交互設計,最后將它發布到網站上[1]。
經過多年的發展,虛擬現實技術的實現也派生出多種不同的方法,現在較為流行的有VRML、Java 3D、CULT3D、X3D等多種實現方法。它們各自有不同的優缺點。其中,虛擬現實建模語言VRML(Virtual Reality Modeling Language)是一種描述大量對象的屬性及相互關系的語言,具有平臺無關性、三維交互性、多媒體集成、境界逼真等眾多優越的特征,所以選擇該軟件作為開發平臺。雖然VRML可以通過直接編程進行語義描述,建立實驗對象的三維模型,但這種方法適合建立簡單規則的模型。數碼單反相機主要由機身和鏡頭兩部分組成。機身上又包括取景窗口、液晶顯示屏、曝光模式選擇盤、控制撥輪以及各個操作按鈕等,結構比較復雜,不宜直接用VRML語言進行語義描述。而是利用3DS MAX建立整個模型,并賦予材質、色彩、光照,導出VRML的格式文件(.*wrl文件)。因此,選擇3DS MAX進行建模,再使用VRML軟件進行交互設計并實現網上發布,建立逼真的交互式三維虛擬實驗環境,可以讓學生隨時通過網絡瀏覽三維場景,并通過人機交互進行仿真實驗。
2 三維虛擬數碼單反相機的設計與實現
實驗對象的建模是虛擬實驗開發過程中最重要的一步,模型的好壞直接影響運行的效果和場景的沉浸度。為了便于在VRML瀏覽器中設計三維數碼單反相機的交互,可以真實地模擬實際操作進行鏡頭的旋轉、曝光模式選擇盤的轉動、控制撥輪和按鈕的操作等,在對數碼相機進行建模時,將其各部分分別建模,后期組裝。將數碼單反相機的三維模型建好后,在3DS MAX中應用輸出插件導出*wrl格式的文件。在運用3DS MAX模型導出VRML文件后要充分注意優化VRML程序。優化技術是三維虛擬建模過程中至關重要的一個環節,優化結果的好壞將直接影響三維數碼相機的顯示速度和交互效果[2]。
3 使用VRML語言結合JavaScript實現數碼單反相機的虛擬實驗
數碼單反相機虛擬實驗系統共包括四個實驗,分別是:認識數碼相機、數碼相機的調節模式、數碼相機的光圈調節、數碼相機快門調節。
3.1 認識數碼單反相機模塊的設計與實現[3]
實驗1是對數碼單反相機的三維展示,主要分為:(1)自由旋轉展示。在這種方式下,相機自動在瀏覽器中旋轉,讓學習者從不同的角度上觀察相機的結構。(2)手動控制展示。在這種方式下,學習者可以自主轉動相機,從不同角度細致地觀察相機。
為了實現相機的自由旋轉展示,可以運用時間傳感器節點(TimeSensor)和方向插補器節點(OrientationInterpolator)。TimeSensor節點的作用是創建一個虛擬時鐘,可以像時鐘一樣標記時間的流逝,設置開始動畫、結束動畫和控制動畫的播放速度等屬性,并向插補器節點輸出時間事件,產生相應的動畫效果。OrientationInterpolator可改變觀察方向或者改變形狀體的方向。插補器節點使用一組關鍵時刻和關鍵值來描述一個動畫。關鍵時刻列表在插補器節點的key域中指定,關鍵值列表在插補器節點的keyvalue域中指定。瀏覽器在渲染時將根據這些關鍵時刻所對應的關鍵狀態在場景中通過線性插值計算技術自動生成連續動畫。實現自由旋轉展示部分相應代碼如下:
OrientationInterpolator{ //創建控制動畫的插補器
key [0 0.5 1]//指定關鍵時刻列表
keyValue [//指定對應的旋轉關鍵值列表
0 1 0 0,
0 1 0 3.14,
0 1 0 6.28
]
}
TimeSensor {//創建控制動畫的時間感應器
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入事件,每次時間傳感器輸出一個新的時刻,插補器就會利用輸入的時間計算出一個新的旋轉值,然后通過其value_changed出事件路由到方向插補器節點。
為了能從各種角度來展示相機,運用SphereSensor傳感器節點,對相機進行了手動的三維展示。 SphereSensor節點用于感知觀察者的拖動動作,并且計算旋轉角和角度。通過使用它的rotation_changed域輸出變化的參數,對相機整體進行360°上下左右的旋轉完成相機的手動展示。代碼如下:
SphereSensor{
enabled TRUE
}
ROUTE camera_sd.rotation_changed TO camera_all.rotation
對于VRML窗口與網頁之間的交互主要是通過JavaScript和VRML中的TouchSensor節點完成。由于TouchSensor節點能感知用戶的鼠標事件,一般的鼠標操作通常有3種:移動、點擊、拖動。本設計主要使用了移動操作,當用戶進行移動操作的時候會使TouchSensor中的isOver公共域變為TRUE,傳遞出去一個真事件。在網頁中用JavaScript接收到該事件再運用相應的程序完成相應的操作,然后在VRML場景中運用Onmousemove感知鼠標的移動事件。VRML場景中主要代碼:
Touchsensor {
Enabled TRUE
}
在網頁中對VRML場景運用了Onmousemove感知鼠標的移動事件,當鼠標作用于VRML場景時會觸發相應的處理事件javascript代碼,例如當鼠標移動到LCD顯示屏時,用到了條件判斷語句對其進行判斷:
if(M_e.Nodes(“Viewfinder_button”).Fields(“isOver”)==-1){
display_div(2,12);
}
然后進行相應的處理操作。其中Viewfinder_button是取景器的觸發傳感器TouchSensor的名稱。
目前,基于網絡對實驗對象進行三維交互展示的有效處理方法是使用專業的設計軟件,如采用AUTOCAD、3DS MAX等將實驗對象的三維模型設計出來。這種方法建模過程直觀形象,但生成的模型和動畫不能與用戶進行交互,需要將三維模型導出為相關虛擬現實設計軟件所需要的格式文件,用虛擬現實設計軟件進行三維展示的交互設計,最后將它發布到網站上[1]。
經過多年的發展,虛擬現實技術的實現也派生出多種不同的方法,現在較為流行的有VRML、Java 3D、CULT3D、X3D等多種實現方法。它們各自有不同的優缺點。其中,虛擬現實建模語言VRML(Virtual Reality Modeling Language)是一種描述大量對象的屬性及相互關系的語言,具有平臺無關性、三維交互性、多媒體集成、境界逼真等眾多優越的特征,所以選擇該軟件作為開發平臺。雖然VRML可以通過直接編程進行語義描述,建立實驗對象的三維模型,但這種方法適合建立簡單規則的模型。數碼單反相機主要由機身和鏡頭兩部分組成。機身上又包括取景窗口、液晶顯示屏、曝光模式選擇盤、控制撥輪以及各個操作按鈕等,結構比較復雜,不宜直接用VRML語言進行語義描述。而是利用3DS MAX建立整個模型,并賦予材質、色彩、光照,導出VRML的格式文件(.*wrl文件)。因此,選擇3DS MAX進行建模,再使用VRML軟件進行交互設計并實現網上發布,建立逼真的交互式三維虛擬實驗環境,可以讓學生隨時通過網絡瀏覽三維場景,并通過人機交互進行仿真實驗。
2 三維虛擬數碼單反相機的設計與實現
實驗對象的建模是虛擬實驗開發過程中最重要的一步,模型的好壞直接影響運行的效果和場景的沉浸度。為了便于在VRML瀏覽器中設計三維數碼單反相機的交互,可以真實地模擬實際操作進行鏡頭的旋轉、曝光模式選擇盤的轉動、控制撥輪和按鈕的操作等,在對數碼相機進行建模時,將其各部分分別建模,后期組裝。將數碼單反相機的三維模型建好后,在3DS MAX中應用輸出插件導出*wrl格式的文件。在運用3DS MAX模型導出VRML文件后要充分注意優化VRML程序。優化技術是三維虛擬建模過程中至關重要的一個環節,優化結果的好壞將直接影響三維數碼相機的顯示速度和交互效果[2]。
3 使用VRML語言結合JavaScript實現數碼單反相機的虛擬實驗
數碼單反相機虛擬實驗系統共包括四個實驗,分別是:認識數碼相機、數碼相機的調節模式、數碼相機的光圈調節、數碼相機快門調節。
3.1 認識數碼單反相機模塊的設計與實現[3]
實驗1是對數碼單反相機的三維展示,主要分為:(1)自由旋轉展示。在這種方式下,相機自動在瀏覽器中旋轉,讓學習者從不同的角度上觀察相機的結構。(2)手動控制展示。在這種方式下,學習者可以自主轉動相機,從不同角度細致地觀察相機。
為了實現相機的自由旋轉展示,可以運用時間傳感器節點(TimeSensor)和方向插補器節點(OrientationInterpolator)。TimeSensor節點的作用是創建一個虛擬時鐘,可以像時鐘一樣標記時間的流逝,設置開始動畫、結束動畫和控制動畫的播放速度等屬性,并向插補器節點輸出時間事件,產生相應的動畫效果。OrientationInterpolator可改變觀察方向或者改變形狀體的方向。插補器節點使用一組關鍵時刻和關鍵值來描述一個動畫。關鍵時刻列表在插補器節點的key域中指定,關鍵值列表在插補器節點的keyvalue域中指定。瀏覽器在渲染時將根據這些關鍵時刻所對應的關鍵狀態在場景中通過線性插值計算技術自動生成連續動畫。實現自由旋轉展示部分相應代碼如下:
OrientationInterpolator{ //創建控制動畫的插補器
key [0 0.5 1]//指定關鍵時刻列表
keyValue [//指定對應的旋轉關鍵值列表
0 1 0 0,
0 1 0 3.14,
0 1 0 6.28
]
}
TimeSensor {//創建控制動畫的時間感應器
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入事件,每次時間傳感器輸出一個新的時刻,插補器就會利用輸入的時間計算出一個新的旋轉值,然后通過其value_changed出事件路由到方向插補器節點。
為了能從各種角度來展示相機,運用SphereSensor傳感器節點,對相機進行了手動的三維展示。 SphereSensor節點用于感知觀察者的拖動動作,并且計算旋轉角和角度。通過使用它的rotation_changed域輸出變化的參數,對相機整體進行360°上下左右的旋轉完成相機的手動展示。代碼如下:
SphereSensor{
enabled TRUE
}
ROUTE camera_sd.rotation_changed TO camera_all.rotation
對于VRML窗口與網頁之間的交互主要是通過JavaScript和VRML中的TouchSensor節點完成。由于TouchSensor節點能感知用戶的鼠標事件,一般的鼠標操作通常有3種:移動、點擊、拖動。本設計主要使用了移動操作,當用戶進行移動操作的時候會使TouchSensor中的isOver公共域變為TRUE,傳遞出去一個真事件。在網頁中用JavaScript接收到該事件再運用相應的程序完成相應的操作,然后在VRML場景中運用Onmousemove感知鼠標的移動事件。VRML場景中主要代碼:
Touchsensor {
Enabled TRUE
}
在網頁中對VRML場景運用了Onmousemove感知鼠標的移動事件,當鼠標作用于VRML場景時會觸發相應的處理事件javascript代碼,例如當鼠標移動到LCD顯示屏時,用到了條件判斷語句對其進行判斷:
if(M_e.Nodes(“Viewfinder_button”).Fields(“isOver”)==-1){
display_div(2,12);
}
然后進行相應的處理操作。其中Viewfinder_button是取景器的觸發傳感器TouchSensor的名稱。
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 高頻電子線路實驗報告及設計方案 9次下載
- 基于NVM和DRAN的混合內存系統設計方案 12次下載
- 簡易病房呼叫系統設計方案 15次下載
- 基于PLC的小型環保生態系統設計方案 20次下載
- BLE實驗詳解之藍牙溫度計設計方案 25次下載
- BLE實驗詳解之藍牙血壓計設計方案 36次下載
- BLE實驗詳解之藍牙鍵盤設計方案 58次下載
- 基于單片機的簡易流水燈實驗設計方案 0次下載
- vrml軟件 14次下載
- 基于LabVIEW的虛擬實驗系統設計 96次下載
- 基于VRML的火箭炮虛擬結構漫游技術
- 數字電路實驗的虛擬化設計方案
- 虛擬電子實驗室的設計與應用
- 基于VRML的虛擬貼標機行為仿真
- 基于VRML-Java的虛擬裝配系統開發
- UPS系統設計方案解讀 447次閱讀
- 基于STM32的室內空氣凈化監測系統設計方案 2258次閱讀
- 基于虛擬現實建模語言實現虛擬機房的應用方案 2745次閱讀
- Internet的遠程虛擬儀表設計方案 876次閱讀
- 基于FPGA+DSP的跳頻電臺傳輸系統的設計方案分析 2179次閱讀
- 基于實驗系統采用電路可動態重組的設計方案 1740次閱讀
- 基于單片機的數碼管動態顯示器的設計方案 1w次閱讀
- 基于ARM的光學指紋識別系統的設計方案 2142次閱讀
- 基于Qt的遠程監控系統的設計方案 7622次閱讀
- 基于RT-Thread和STM32的數碼相框設計方案 5430次閱讀
- 基于高穩定電源虛擬測試系統設計方案 3243次閱讀
- 基于SVPWM算法的變頻調速系統設計方案 4800次閱讀
- 基于FPGA的幀同步系統設計方案 4712次閱讀
- 基于儀器集成的幅頻特性測量儀設計方案 2287次閱讀
- 基于MSP430的智能小車尋跡模塊設計方案 1.3w次閱讀
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 2開關電源基礎知識
- 5.73 MB | 6次下載 | 免費
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設計
- 0.60 MB | 3次下載 | 免費
- 5基于FPGA的光纖通信系統的設計與實現
- 0.61 MB | 2次下載 | 免費
- 6基于FPGA的C8051F單片機開發板設計
- 0.70 MB | 2次下載 | 免費
- 751單片機窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費
- 8基于51單片機的RGB調色燈程序仿真
- 0.86 MB | 2次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33564次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21548次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6653次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537796次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191185次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183278次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多