www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]設(shè)計(jì)開發(fā)了三維虛擬數(shù)碼單反相機(jī),使學(xué)生對(duì)數(shù)碼單反相機(jī)有直觀形象的認(rèn)識(shí),再使用VRML軟件進(jìn)行交互設(shè)計(jì)并實(shí)現(xiàn)網(wǎng)上發(fā)布,建立逼真的交互式三維虛擬實(shí)驗(yàn)環(huán)境,實(shí)現(xiàn)數(shù)碼攝影虛擬實(shí)驗(yà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等多種實(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ì)象的三維模型,但這種方法適合建立簡(jiǎn)單規(guī)則的模型。數(shù)碼單反相機(jī)主要由機(jī)身和鏡頭兩部分組成。機(jī)身上又包括取景窗口、液晶顯示屏、曝光模式選擇盤、控制撥輪以及各個(gè)操作按鈕等,結(jié)構(gòu)比較復(fù)雜,不宜直接用VRML語言進(jìn)行語義描述。而是利用3DS MAX建立整個(gè)模型,并賦予材質(zhì)、色彩、光照,導(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ò)瀏覽三維場(chǎng)景,并通過人機(jī)交互進(jìn)行仿真實(shí)驗(yàn)。

2 三維虛擬數(shù)碼單反相機(jī)的設(shè)計(jì)與實(shí)現(xiàn)

實(shí)驗(yàn)對(duì)象的建模是虛擬實(shí)驗(yàn)開發(fā)過程中最重要的一步,模型的好壞直接影響運(yùn)行的效果和場(chǎng)景的沉浸度。為了便于在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)用輸出插件導(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)控制展示。在這種方式下,學(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域中指定。瀏覽器在渲染時(shí)將根據(jù)這些關(guān)鍵時(shí)刻所對(duì)應(yīng)的關(guān)鍵狀態(tài)在場(chǎng)景中通過線性插值計(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)鍵值列表
0 1 0 0,
0 1 0 3.14,
0 1 0 6.28
]
}
TimeSensor {//創(chuàng)建控制動(dòng)畫的時(shí)間感應(yīng)器
enabledTRUE
cycleInterval 30//指定每個(gè)變化周期的時(shí)間長(zhǎng)短
}
ROUTE clock_camera.fraction_changedTO camera_auto_rotation.set_fraction
ROUTE camera_auto_rotation.value_changed TO
camera_all.rotation

在ROUTE中,將TimeSensor的fraction_changed出事件路由到插補(bǔ)器的set_fraction入事件,每次時(shí)間傳感器輸出一個(gè)新的時(shí)刻,插補(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 TRUE
}

ROUTE camera_sd.rotation_changed TOcamera_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場(chǎng)景中運(yùn)用Onmousemove感知鼠標(biāo)的移動(dòng)事件。VRML場(chǎng)景中主要代碼:
Touchsensor {
Enabled TRUE
}

在網(wǎng)頁中對(duì)VRML場(chǎng)景運(yùn)用了Onmousemove感知鼠標(biāo)的移動(dòng)事件,當(dāng)鼠標(biāo)作用于VRML場(chǎng)景時(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_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)以及適用的場(chǎng)合。實(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出事件)輸出。其代碼如下:
CylinderSensor{
exposedField SFFloat minAngle 0
exposedField SFFloat maxAngle -1
exposedField SFBool enabled TRUE
exposedField SFFloat diskAngle 0.262
exposedField SFFloat offset 0
exposedField SFFloat autooffset TRUE
eventOut SFBool isActive
eventOut SFVce3f trackPoint_changed
eventOut SFRotation rotation_changed
}

觀察者每次改變軌跡點(diǎn)時(shí),autoOffset、offset、maxAngle和minAngle域值在一起作用把軌跡點(diǎn)轉(zhuǎn)化成為旋轉(zhuǎn)值,并通過rotation_changed域(eventOut出事件)輸出。然后通過旋轉(zhuǎn)角度的不同改變LCD顯示屏上不同的曝光模式畫面。同時(shí)也向?yàn)g覽器環(huán)境傳遞不同的旋轉(zhuǎn)角度,瀏覽器根據(jù)不同的旋轉(zhuǎn)角度來顯示不同的模式說明。

3.3 光圈與快門的調(diào)節(jié)模塊的設(shè)計(jì)與實(shí)現(xiàn)

實(shí)驗(yàn)3和實(shí)驗(yàn)4分別是針對(duì)光圈大小和快門大小進(jìn)行調(diào)節(jié),然后在模擬的場(chǎng)景中進(jìn)行拍攝,比較不同的光圈值和快門速度對(duì)畫面成像效果的影響。這樣,既讓學(xué)生掌握了光圈和快門值的調(diào)整方法,又讓他們理解了光圈值和快門速度與畫面成像效果的關(guān)系。這兩部分實(shí)現(xiàn)的方法相似,所以在此一并說明。

以快門速度的調(diào)整為例,通過設(shè)置不同的快門速度,模擬了不同的成像效果。首先通過機(jī)身上的調(diào)節(jié)按鈕設(shè)置快門速度,如圖1所示,分別設(shè)置快門速度為1/200 s與1/1 000 s。

然后到模擬的三維場(chǎng)景中進(jìn)行取景操作。由于不同的快門速度對(duì)成像效果的影響主要是體現(xiàn)在動(dòng)態(tài)被攝對(duì)象上,所以,在場(chǎng)景中模擬了一輛奔跑的汽車,按下拍攝,即可得到模擬的成像效果,如圖2所示。

具體實(shí)現(xiàn)方法如下:
if(a==4){
M_e.Nodes("tv_sensor").Fields("offset")=-4.125;
M_e.Nodes("tv_sensor").Fields("enabled")=-1;
M_e.Nodes("start_t4_script").Fields("show")=-1;
}
else{
M_e.Nodes("tv_sensor").Fields("enabled")=0;
if(a==1||a==2){
M_e.Nodes("start_t4_script").Fields("show")=0;
}else{
M_e.Nodes("start_t5_script").Fields("show")=0;
}
document.getElementById("left_content").style.display="none"
也就是用JavaScript啟動(dòng)了VRML中快門傳感器和控制放在VRML中快門傳感器的動(dòng)作。
4 網(wǎng)絡(luò)發(fā)布與插件的自動(dòng)安裝
VRML 文件可以采用超級(jí)鏈接的方式把HTML文件和VRML 文件鏈接到一起,這對(duì)于三維模型的虛擬展示具有十分重要意義。HTML文件格式的標(biāo)準(zhǔn)并不支持對(duì)VRML文檔的嵌入,但非標(biāo)準(zhǔn)HTML提供<EMBED>標(biāo)記可實(shí)現(xiàn)VRML文檔的嵌入。例如下面的語句實(shí)現(xiàn)了VRML文檔camera.wrl在HTML文件中的嵌入,其中SRC域指定關(guān)聯(lián)的URL,“camera.wrl”是一個(gè)VRML文件。
<OBJECT CLASSID="CLSID:4B6E3013-6E45-11D0-9309-0020AFE05CC8"WIDTH=600px HEIGHT=400px; >
<PARAM NAME="SRC" VALUE="vrml/camera.wrl">
<EMBED name=camera id=camera src="vrml/camera.wrl" TYPE="application/x-cc3d" onmousemove="test1_contactVW();"/>
</OBJECT>
在網(wǎng)頁中要進(jìn)行對(duì)VRML的操作只進(jìn)行上述嵌入是遠(yuǎn)遠(yuǎn)不夠的,還要通過javaScript中的M_e=camera.Engine,獲取對(duì)相機(jī)VRML場(chǎng)景的句柄并賦給M_e。這樣,就可以對(duì)VRML場(chǎng)景中的每一個(gè)節(jié)點(diǎn)中的每一個(gè)域和事件的值進(jìn)行獲取了。

為了保證用戶機(jī)器上能正常播放,需要在用戶機(jī)器上安裝VRML瀏覽器??赏ㄟ^以下代碼實(shí)現(xiàn)自動(dòng)安裝:
<OBJECT CLASSID="CLSID:4B6E3013-6E45-11D0-9309-0020AFE05CC8"WIDTH=600px HEIGHT=400px;
codebase="source/cortvrml.exe">
<PARAM NAME="SRC" VALUE="vrml/camera.wrl">
<EMBEDname=camera id=camera src="vrml/camera.wrl" pluginspage="source/cortvrml.exe" type="application/x-shockwave-flash"TYPE="application/x-cc3d" onmousemove="test1_contactVW();"/>
</OBJECT>

虛擬實(shí)驗(yàn)是開展網(wǎng)絡(luò)教學(xué)的一個(gè)瓶頸,而其中最關(guān)鍵的是沒能較好地解決交互性的問題。利用VRML技術(shù),結(jié)合支持VRML的開發(fā)工具構(gòu)建一個(gè)虛擬實(shí)驗(yàn)環(huán)境,并利用Java提供的支持VRML的開發(fā)包,實(shí)現(xiàn)了用戶與虛擬環(huán)境之間的交互,可以滿足數(shù)碼攝影虛擬實(shí)驗(yàn)教學(xué)的需要。實(shí)驗(yàn)常常是一種協(xié)作性的活動(dòng),合作是實(shí)驗(yàn)過程中一個(gè)至關(guān)重要的環(huán)節(jié),因此,要充分利用現(xiàn)代網(wǎng)絡(luò)技術(shù),增強(qiáng)對(duì)虛擬實(shí)驗(yàn)的協(xié)同操作,進(jìn)一步體現(xiàn)網(wǎng)上實(shí)驗(yàn)的優(yōu)勢(shì)[4]。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉