<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 模擬技術(shù) > 設(shè)計應(yīng)用 > 基于VRML的虛擬機(jī)房的設(shè)計與實現(xiàn)

          基于VRML的虛擬機(jī)房的設(shè)計與實現(xiàn)

          作者: 時間:2010-07-06 來源:網(wǎng)絡(luò) 收藏

          現(xiàn)實生活中的任何物體都是由各個平面組合而成的,而的IndexedFaceSet面集節(jié)點就是通過創(chuàng)建物體造型的各個面,再賦予材質(zhì)和顏色,還可以添加不同的紋理貼圖,從而創(chuàng)建逼真的物體造型。利用的IndexedFaceSet面集節(jié)點幾乎可以創(chuàng)建現(xiàn)實生活中存在的任何物體造型。中的房屋造型、電腦桌、電腦椅、電腦等造型都是使用IndexedFaceSet面集節(jié)點創(chuàng)建,再添加上實拍的紋理貼圖,創(chuàng)建而成的。
          2.3 交互功能的實現(xiàn)
          場景中,使用Touchsensor節(jié)點、TimeSensor節(jié)點、OrientationInterpolator節(jié)點和Script節(jié)點,并用ROUTE把各個事件聯(lián)系起來,創(chuàng)建了門的開、關(guān)的交互動作。
          的虛擬場景中,當(dāng)鼠標(biāo)指向門時,會出現(xiàn)一個手形指針,這時單擊鼠標(biāo),門就會緩慢地開開,再單擊鼠標(biāo),門又會緩慢地關(guān)閉。實現(xiàn)代碼如下所示。

          3 虛擬文件性能優(yōu)化
          三維場景的呈現(xiàn)是通過瀏覽器已默認(rèn)視點為參照對場景描述文件的解釋而完成的,每當(dāng)視點發(fā)生改變,瀏覽器就會重新計算場景中各對象的新位置并重新進(jìn)行渲染,因而會出現(xiàn)當(dāng)改變視點時,瀏覽器渲染的速度跟不上視點的變化速度,從而產(chǎn)生停頓的現(xiàn)象。為了解決此問題,采取了如下措施:
          (1)最大可能地使用重用機(jī)制。在場景內(nèi),有不少反復(fù)出現(xiàn)的物體,比地板磚、電腦、電腦桌、椅子、燈等,這些對象中形狀完全相同者,采用DEF和USE的實例引用法進(jìn)行復(fù)制,極大地簡化了文件,減輕了瀏覽器的負(fù)擔(dān)。
          (2)利用Inline節(jié)點,減少文件的體積,提高代碼的 重用率;
          (3)利用LOD細(xì)節(jié)層次節(jié)點實現(xiàn)場景切換技術(shù),實現(xiàn) 同一對象模型的自動轉(zhuǎn)換。為場景中某一對象建立多個不同的模型,當(dāng)視點離對象較遠(yuǎn)時采用簡單模型,較近時采用細(xì)化模型。

          4 總結(jié)
          文章介紹了在線虛擬機(jī)房的模型、場景建模技術(shù)的詳細(xì)設(shè)計和實現(xiàn),構(gòu)建了一個基于虛擬現(xiàn)實建模語言的虛擬機(jī)房。VRML具有語法簡單、三維建模功能強(qiáng)大、便于網(wǎng)上發(fā)布等優(yōu)點,但仍不能滿足各行各業(yè)的需求,一些高級交互功能的實現(xiàn)必須借助于Java等功能強(qiáng)大的高級語言來實現(xiàn)。Java和VRML相結(jié)合來建立三維虛擬世界,將會在網(wǎng)絡(luò)上展現(xiàn)更逼真的三維虛擬場景,給使用者更真實的感覺。


          上一頁 1 2 3 下一頁

          關(guān)鍵詞: VRML 虛擬 機(jī)房

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();