【正文】
avascript:function keydown (value) {if() {=。虛擬現(xiàn)實(shí)技術(shù)在日常生活中的應(yīng)用不應(yīng)該只停留在演示階段,在完善功能技術(shù)的同時(shí)提高外部硬件設(shè)備的支持,使用戶能夠真正感受到虛擬現(xiàn)實(shí)帶來的“真實(shí)生活”。(3)程序應(yīng)擴(kuò)充餐廳部分的設(shè)備、更接近現(xiàn)實(shí)餐廳中的配置。(4)所有程序在保存時(shí)勾選壓縮保存會(huì)使總程序的大小減少1/3以上。 [M].北京:高等教育出版社,2004. 198~227.[4] [M].北京:清華大學(xué)出版社,2001. 16~23,[12] procedures seeded first read the script to initialize。s transmission and puting nodes to defer action to deal with the incident. When the calculation has been delayed, if multiple events are delivered to the node, then the list of events to be processed will be longer. Under normal circumstances, the default script mustEvaluate domain value EAI is used for embedding the VRML browser into an application or an applet, which is either independent or within a Web browser. It can be called through both the COM interface and Java classes. Thus, languages such as C++ and Java can be employed to develop applications or applets through VRML EAI. Besides this, since it is a part of the VRML standard, all browsers support it, which ensures better patibility. However, since it is used for creating external programs, the extensions thus implemented cannot be integrated into the browser.DirectOutput domain description script output has been restricted. When this field when the value is FALSE. Script can only read other nodes in the case of public domain and eventOut value, but can not send its events (such as public domain or eventIn events to send a value). When DirectOutput domain value TURE, the script on other nodes can write to the public domain, or events to other nodes send eventIn value. In addition, when DirectOutput domain value is TRUE, the script can also add or remove space in a path. Typically, DirectOutput domain default value FALSE.url is the public domain, through the set_url send eventIn events can change the URL list. When receiving a value from the input, the corresponding threshold will be changed. Of course, the new value will be output by the domain url_changed eventOut event. When the Script node39。 陳定方,[M].北京:機(jī)械工業(yè)出版社,2002. 41~49.[10] 黃文麗,盧碧紅,楊志剛,[M].北京:中國鐵道出版社,2003. 179~183.[2](2)在制作動(dòng)畫方面,使用3ds max、Cosmo world制作出的效果更好,程序也比較小,但導(dǎo)進(jìn)VRML中要加入必要的節(jié)點(diǎn)語言實(shí)現(xiàn)其交互功能。例如:(1)程序應(yīng)具備強(qiáng)大的后臺(tái)數(shù)據(jù)庫,使超市場(chǎng)景中的各種物品種類更加豐富。結(jié)論隨著虛擬現(xiàn)實(shí)技術(shù)的不斷發(fā)展,虛擬現(xiàn)實(shí)技術(shù)的應(yīng)用領(lǐng)域越來越廣泛,終有一天要走入尋常百姓家。 利用JavaScript構(gòu)建燃?xì)庠铋_關(guān)和火焰大小的交互功能現(xiàn)實(shí)餐廳中燃?xì)庠钍侵饕呐腼児ぞ?,通過旋鈕調(diào)節(jié)火焰大小掌握火候的使用關(guān)鍵,本次設(shè)計(jì)中燃?xì)庠畹脑O(shè)計(jì)旨在實(shí)現(xiàn)這一功能,利用多種傳感器和script結(jié)合實(shí)現(xiàn)這一交互功能并配有火焰聲。如圖552所示為通過旋轉(zhuǎn)旋鈕加熱食物的效果。初始化完成后通過Script類提供的processEvent(Event p0)或processEvents(int p0, Event[] p1)方法來捕獲Script節(jié)點(diǎn)傳遞的事件。首先定義Script節(jié)點(diǎn)中的各域域值,接著便設(shè)置路由(Route)。這些由用戶制作的感應(yīng)器和內(nèi)插器還需要一個(gè)關(guān)于這些節(jié)點(diǎn)在處理上述域、eventIn事件和eventOut事件時(shí)所要做動(dòng)作的描述[13]。如圖415所示為視點(diǎn)、燈光的實(shí)現(xiàn)。以下為實(shí)現(xiàn)超市收獲物品功能的代碼:DEF yi4 Transform {children [DEF n4Trigger TouchSensor { }DEF n41 KfaAnimation {timeSensor DEF Time_22 TimeSensor { }fieldInterps [DEF n4TranslationInterp KfaPositionInterpolator {key [ 0, , …… 1 ]keyTypes [ 2, 2 ]authorKey [ 0, 1 ]keyValue [ 0 0 0,……15 35 10 ]authorKeyValue [ 0 0 0,……15 35 10 ]} ] } ]}ROUTE TO ROUTE TO ROUTE TO 圖410點(diǎn)擊收獲物品功能實(shí)現(xiàn)的原始圖 圖411點(diǎn)擊收獲物品功能實(shí)現(xiàn)的最終效果圖本程序中第一條路由的作用是接觸傳感器n4Trigger的touchTime事件域傳遞域值給時(shí)間傳感器Time_22的set_startTime域;第二條路由是時(shí)間傳感器Time_22的fraction_changed事件域傳遞域值給位置插補(bǔ)器n4TranslationInterp的set_fraction域;第三條路由作用是位置插補(bǔ)器n4TranslationInterp的value_changed事件域傳遞域值給Transform節(jié)點(diǎn)yi4的set_translation域,完成點(diǎn)擊收獲物品交互動(dòng)畫。當(dāng)程序接收到事件響應(yīng)后,通過一系列傳感器控制物體發(fā)生運(yùn)動(dòng)。 以下所示為實(shí)現(xiàn)煙霧動(dòng)畫代碼: DEF _12 TimeSensor {}DEF steamAniTrigger_13 Script {eventIn SFTime triggerIneventOut SFTime startTimeeventOut SFBool firstTimeurl javascript:function triggerIn(value, time) { startTime = value。檢測(cè)器可以分為兩大類,一類是接觸型的傳感器,另一類是感知性的檢測(cè)器。ScalarInterpolator標(biāo)量插補(bǔ)器(對(duì)某些標(biāo)量數(shù)值的域進(jìn)行插補(bǔ)的,一般用于只有單一的數(shù)值表示的域,比如改變強(qiáng)度,可以調(diào)節(jié)光照,霧的濃度。通過將這些事件從Timesensor節(jié)點(diǎn)的eventOut路由到其他節(jié)點(diǎn),當(dāng)Timesensor節(jié)點(diǎn)的時(shí)鐘計(jì)時(shí)時(shí),可以使這些節(jié)點(diǎn)發(fā)生相應(yīng)的變化[8]。收款機(jī)建模圖39 收款機(jī)的效果圖 利用3D制作動(dòng)畫在3ds max中可以制作場(chǎng)景動(dòng)畫,導(dǎo)入進(jìn)VRML里做必要的處理可以形成物體交互的動(dòng)畫,方便快捷的模擬出現(xiàn)實(shí)生活的場(chǎng)景。沙發(fā)建模、房屋建模 圖31 沙發(fā)的效果圖 圖32 房屋的效果圖 二維線形建模二維線形在建模中起著非常重要的作用,通常我們建立的三維模型大都是先創(chuàng)建二維線形,然后添加相應(yīng)的修改命令來完成的。雖然JavaScript對(duì)于大多數(shù)應(yīng)用來說已經(jīng)足夠,但VRML的倡導(dǎo)者之一SGI公司還是基于語言開發(fā)了專門針對(duì)VRML設(shè)計(jì)的Vrmlscript語言。利用程序腳本和Script節(jié)點(diǎn),可以差生復(fù)雜動(dòng)作。JavaScript是一種描述性的腳本語言,將JavaScript寫入到Web頁面當(dāng)中,能讓你的網(wǎng)頁更加生動(dòng)活潑,也是目前網(wǎng)頁中設(shè)計(jì)中最容易學(xué)又最方便的語言。和其它相關(guān)軟件配合流暢。擁有強(qiáng)大功能的3DS MAX被廣泛地應(yīng)用于電視及娛樂業(yè)中,比如片頭動(dòng)畫和視頻游戲的制作,深深扎根于玩家心中的勞拉角色形象就是3DS MAX的杰作。在航空航天發(fā)射中,也可以制造一個(gè)“模擬航天器”,模擬整個(gè)航天器生產(chǎn)、發(fā)射、運(yùn)行和回收的全過程。它集計(jì)算機(jī)、仿真、微電子、傳感與測(cè)量技術(shù)于一體的高新技術(shù)的融合。 虛擬現(xiàn)實(shí)技術(shù)的關(guān)鍵技術(shù)實(shí)物虛化、虛物實(shí)化和高性能的計(jì)算處理技術(shù)是VRML技術(shù)的三個(gè)主要方面。 第1章 虛擬現(xiàn)實(shí)技術(shù) 虛擬現(xiàn)實(shí)技術(shù)簡介 虛擬現(xiàn)實(shí)技術(shù)的概念虛擬現(xiàn)實(shí)是近年來出現(xiàn)的高新技術(shù),也稱人工環(huán)境。虛擬現(xiàn)實(shí)語言作為計(jì)算機(jī)的核心技術(shù)已被廣泛應(yīng)用于社會(huì)生活的各個(gè)領(lǐng)域,例如產(chǎn)品設(shè)計(jì)與性能評(píng)價(jià)、教育與娛樂、高難度和危險(xiǎn)環(huán)境下的訓(xùn)練、醫(yī)學(xué)、房地產(chǎn)等諸多領(lǐng)域,但在模擬現(xiàn)實(shí)生活方面目前的成果還相對(duì)匱乏。虛擬現(xiàn)實(shí)近幾年發(fā)展迅速,應(yīng)用領(lǐng)域廣,發(fā)展?jié)摿Υ螅婕坝?jì)算機(jī)圖形學(xué)、數(shù)字圖像處理技術(shù)、多媒體技術(shù)、網(wǎng)絡(luò)技術(shù)、人工智能等等。例如:餐廳部分中微波了的加熱旋轉(zhuǎn)、燃?xì)庠畹幕鹧嫒紵⑾床顺氐牧魉{(diào)控等等;超市部分中的點(diǎn)擊收獲物品、收銀功能實(shí)現(xiàn)等。虛擬場(chǎng)景是計(jì)算機(jī)通過數(shù)字通訊技術(shù)勾勒出的數(shù)字化場(chǎng)景。該技術(shù)集成了計(jì)算機(jī)圖形(CG)技術(shù)、人工智能、傳感技術(shù)、網(wǎng)絡(luò)并行處理等技術(shù)的最新發(fā)展成果,是一種由計(jì)算機(jī)技術(shù)輔助生成的高技術(shù)模擬系統(tǒng)。 VRML概述 VRML簡介VRML是英文Virtuual Reality Modeling Language ——虛擬現(xiàn)實(shí)造型語言的縮寫。虛擬現(xiàn)實(shí)建模語言(VRML)涉及計(jì)算機(jī)網(wǎng)絡(luò)、多媒體及人工智能三大領(lǐng)域,以及自然科學(xué)、社會(huì)科學(xué)和哲學(xué)等學(xué)科領(lǐng)域。第2章 其它技術(shù)支持——3ds max與JavaScript 3ds max概述 3ds max簡介3D Studio Max,常簡稱為3ds Max或MAX,是Autodesk公司開發(fā)的基于PC系統(tǒng)的三維動(dòng)畫渲染和制作軟件。根據(jù)不同行業(yè)的應(yīng)用特點(diǎn)對(duì)3DS MAX的掌握程度也有不同的要求,建筑方面的應(yīng)用相對(duì)來說要局限性大一些,它只要求單幀的渲染效果和環(huán)境效果,只涉及到比較簡單的動(dòng)畫;片頭動(dòng)畫和視頻游戲應(yīng)用中動(dòng)畫占的比例很大,特別是視頻游戲?qū)巧珓?dòng)畫的要求要高一些;影視特效方面的應(yīng)用則把3DS MAX的功能發(fā)揮到了極至。建筑動(dòng)畫北京申奧宣傳片等。在VRML中,Script節(jié)點(diǎn)包含一個(gè)腳本程序??梢赃@樣理解Script節(jié)點(diǎn):通過接受eventIn事件調(diào)用了相應(yīng)的處理過程函數(shù),經(jīng)過程函數(shù)處理后得出的數(shù)據(jù)作為eventOut出事件發(fā)送出去,其中eventIn事件的值可以作為過程函數(shù)的因變量的值,如果需要?jiǎng)t用field域定義某個(gè)中間變量。JavaScript對(duì)VRML場(chǎng)景的訪問并不是一定要通過Script節(jié)點(diǎn),如果VRML場(chǎng)景與HTML頁面的其它對(duì)象相結(jié)合,比如使用了JavaScript對(duì)象,就可以使用直接訪問的方式[7]。依此類推。按順序?qū)⑦@些值路由到Transform節(jié)點(diǎn),就可以使節(jié)點(diǎn)的坐標(biāo)系隨動(dòng)畫過程的發(fā)展而發(fā)生平移、旋轉(zhuǎn)和按比例縮放。CoordinateInterpolator坐標(biāo)插補(bǔ)器(對(duì)空間坐標(biāo)的數(shù)值進(jìn)行插補(bǔ),但是同位置插補(bǔ)器的情況不同,坐標(biāo)插補(bǔ)器往往不是用在對(duì)造型對(duì)象的位置坐標(biāo)上,而是用在構(gòu)成某類對(duì)象的空間坐標(biāo)上。 使用VRML構(gòu)建動(dòng)畫 使用VRML構(gòu)建馬桶蓋的開啟在現(xiàn)實(shí)生活中,人們可以通過點(diǎn)擊按鈕來沖洗馬桶,為此,在本次設(shè)計(jì)中通過使用OrientationInterpolator來實(shí)現(xiàn)這一功能,并配有沖洗馬桶的聲音。 使用VRML構(gòu)建天空在虛擬現(xiàn)實(shí)中搭建外環(huán)境,模仿真實(shí)天空,增加場(chǎng)景的真實(shí)感。 使用VRML構(gòu)建超市收銀的交互功能利用VRML里的多種傳感器還原現(xiàn)實(shí)生活中中超市購物收銀場(chǎng)景,同時(shí)配有聲音,使人們真正感受到虛擬生活帶來的沉浸感、真實(shí)感。以下為實(shí)現(xiàn)超市大門伸縮開啟功能的代碼:DEF UnnamedAnimation0Trigger_1 TouchSensor { }DEF Time_8 TimeSensor {