虛擬現(xiàn)實技術(shù)虛擬現(xiàn)實畢業(yè)論文
《虛擬現(xiàn)實技術(shù)虛擬現(xiàn)實畢業(yè)論文》由會員分享,可在線閱讀,更多相關(guān)《虛擬現(xiàn)實技術(shù)虛擬現(xiàn)實畢業(yè)論文(57頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 畢業(yè)設(shè)計(論文)專用紙 虛擬現(xiàn)實在超市及餐廳中的控制 學(xué) 校:昆明理工大學(xué)津橋?qū)W院 系 部:計算機科學(xué)及電子信息工程系 專 業(yè):計算機科學(xué)與技術(shù) 年 級:2006級 學(xué)生姓名:周晨 學(xué) 號:200616021107 指導(dǎo)教師:徐武 畢業(yè)設(shè)計(論文)專用紙 Virtual Reality in supermarkets and restaurants in the control University:Oxbridge College
2、,Kunming University of Science and Technology Department:Computer Science and Eletronic Information Engineering Specialty: Computer Science and Technology Class: 2006 Students’s Name: Zhou Chen Student’s Number: 200616021107 Faculty Adviser: Xu Wu 畢業(yè)設(shè)計(論文)專用紙 -第- VI -頁 - 目錄 目錄 I 摘
3、要 IV 關(guān)鍵詞 IV Abstract V Key words V 前言 VI 第1章 虛擬現(xiàn)實技術(shù) 1 1.1 虛擬現(xiàn)實技術(shù)簡介 1 1.1.1 虛擬現(xiàn)實技術(shù)的概念 1 1.1.2 虛擬現(xiàn)實技術(shù)的關(guān)鍵技術(shù) 1 1.2 VRML概述 2 1.2.1 VRML簡介 2 1.2.2 VRML應(yīng)用和展望 2 第2章 其它技術(shù)支持——3ds max與JavaScript 4 2.1 3ds max概述 4 2.1.1 3ds max簡介 4 2.1.2 3ds max的特點 4 2.1.3 3ds max的應(yīng)用領(lǐng)域 5 2.2 JavaSc
4、ript概述 5 2.2.1 JavaScript簡介 5 第3章 使用3ds max技術(shù)構(gòu)建模型 7 3.1 3ds max構(gòu)建模型的準(zhǔn)則 7 3.2 3ds max構(gòu)建模型的基本方法 7 3.2.1 基本體建模 7 3.2.2 二維線形建模 7 3.2.3 三維修改器建模 8 3.3 利用3D制作動畫 9 第4章 使用VRML技術(shù)構(gòu)建動畫與交互功能 10 4.1 使用VRML構(gòu)建動畫與交互功能的基本語法 10 4.1.1 使用VRML構(gòu)建動畫的基本插補器類型 10 4.1.2 使用VRML構(gòu)建交互功能的基本傳感器類型 10 4.2 使用V
5、RML構(gòu)建動畫 11 4.2.1 使用VRML構(gòu)建馬桶蓋的開啟 11 4.2.2 使用VRML構(gòu)建壓力鍋的煙霧及開啟 12 4.2.3 使用VRML構(gòu)建天空 13 4.3 使用VRML構(gòu)建交互功能 14 4.3.1 使用VRML構(gòu)建冰柜門開啟的交互功能 14 4.3.2 使用VRML構(gòu)建超市收銀的交互功能 15 4.3.3 使用VRML構(gòu)建超市點擊收獲物品的交互功能 16 4.3.4 使用VRML構(gòu)建超市大門伸縮開啟的交互功能 17 4.3.5 使用VRML構(gòu)建油煙機聲音的交互功能 18 4.4 使用VRML構(gòu)建視點、燈光 19 4.4.1 使用VR
6、ML構(gòu)建固定視點 19 4.4.2 使用VRML構(gòu)建跟隨視點 20 第5章 使用JavaScript構(gòu)建動態(tài)場景的交互 23 5.1 使用JavaScript構(gòu)建動態(tài)場景交互功能的實現(xiàn) 23 5.1.1 利用 JavaScript創(chuàng)建微波爐旋轉(zhuǎn)加熱動畫 24 5.1.2 利用JavaScript構(gòu)建洗手池水龍頭的的交互功能 26 5.1.3 利用JavaScript構(gòu)建燃氣灶開關(guān)和火焰大小的交互功能 27 5.1.4 利用JavaScript實現(xiàn)購物車收獲物品和收銀之間切換的交互功能 30 結(jié)論 32 總結(jié)與體會 33 謝辭 34 參考文獻 35 附錄一
7、翻譯原文 36 附錄二 翻譯譯文 42 虛擬現(xiàn)實在超市及餐廳中的控制 摘要 虛擬現(xiàn)實(Virtual Reality,簡稱VR),是一種基于可計算信息的沉浸式交互環(huán)境,具體地說,就是采用以計算機技術(shù)為核心的現(xiàn)代高科技生成逼真的視、聽、觸覺一體化的特定范圍的虛擬環(huán)境,用戶借助必要的設(shè)備以自然的方式與虛擬環(huán)境中的對象進行交互作用、相互影響,從而產(chǎn)生“沉浸”于等同真實環(huán)境的感受和體驗。VR帶來了人機交互的新概念、新內(nèi)容、新方式和新方法,使得人機交互的內(nèi)容更加豐富、形象,方式更加自然、和諧。虛擬現(xiàn)實近幾年發(fā)展迅速,應(yīng)用領(lǐng)域廣,發(fā)展?jié)摿Υ?,涉及計算機圖形學(xué)、數(shù)字圖像處理技術(shù)、多媒體技
8、術(shù)、網(wǎng)絡(luò)技術(shù)、人工智能等等。它是利用計算機和虛擬現(xiàn)實硬件設(shè)備對真實世界的模擬,不僅能使人們在游覽虛擬環(huán)境的過程中產(chǎn)生身臨其境的感覺,并且還能夠與虛擬場景進行交互,具備交互性、沉浸性、幻想性和多感知性等特征。本文主要探討利用3ds max 、VRML與JavaScript編程技術(shù)構(gòu)造虛擬現(xiàn)實場景實現(xiàn)虛擬技術(shù)在超市及餐廳中的應(yīng)用控制,達到運用鼠標(biāo)控制場景內(nèi)的物品,向其發(fā)出指令使之發(fā)生相應(yīng)的運動變化。例如:餐廳部分中微波了的加熱旋轉(zhuǎn)、燃氣灶的火焰燃燒、洗菜池的流水調(diào)控等等;超市部分中的點擊收獲物品、收銀功能實現(xiàn)等。 關(guān)鍵詞:超市及餐廳控制,VRML,3ds max, JavaScript
9、 Virtual Reality in supermarkets and restaurants in the control Abstract Virtual Reality (Virtual Reality, referred to as VR), is based on quantifiable information, immersive interactive environments, specifically the use of computer technology as the core of the modern high-tech generating rea
10、listic vision, hearing, touch the specific integration range of virtual environment, users with the necessary equipment in a natural way with the virtual environment interaction object, interaction, resulting in "immersion" in the same feel and experience the real environment. VR has brought a new c
11、oncept of man-machine interaction, new content, new ways and new methods to make human-computer interaction is much more rich, vivid, more natural way, harmony. In recent years the rapid development of virtual reality, wide application areas, development potential, related to computer graphics, digi
12、tal image processing technology, multimedia technology, network technology, artificial intelligence and so on. It is the use of computer hardware devices and virtual reality simulation of the real world, not only enables people to visit the virtual environment, immersive feeling generated in the pro
13、cess, and also be able to interact with the virtual scene, with interactivity, immersion, Fantasy and more aware of other features. This paper discusses the use of 3ds max, VRML and JavaScript programming construct virtual technology virtual reality scene in supermarkets and restaurants in the appli
14、cation control, use the mouse to control objects within the scene, to issue instructions and make a corresponding change in the movement. For example: The restaurant part of the rotation in the microwave the heating, gas stove's flame burning, vegetables pool water regulation, etc.; supermarket sect
15、ion click on harvest article, cashier function realization. Key words: control of supermarkets and restaurants, VRML,3ds max, JavaScript 前言 跨入21世紀(jì),人類已經(jīng)邁入數(shù)字化時代,我國信息產(chǎn)業(yè)得到迅猛發(fā)展。特別是網(wǎng)絡(luò)技術(shù)、多媒體技術(shù)、可視化技術(shù)及虛擬現(xiàn)實系統(tǒng)的不斷更新和發(fā)展,使虛擬現(xiàn)實系統(tǒng)發(fā)展成為數(shù)字化多維信息空間技術(shù)支撐平臺,并成為構(gòu)建數(shù)字虛擬環(huán)境的最重要的關(guān)鍵技術(shù)之一。虛擬現(xiàn)實語言作為計算機的核心技術(shù)已被廣泛應(yīng)用于社會生活的各個領(lǐng)域,例
16、如產(chǎn)品設(shè)計與性能評價、教育與娛樂、高難度和危險環(huán)境下的訓(xùn)練、醫(yī)學(xué)、房地產(chǎn)等諸多領(lǐng)域,但在模擬現(xiàn)實生活方面目前的成果還相對匱乏。本系統(tǒng)的主要研究目地在于利用虛擬現(xiàn)實技術(shù)模擬出人們在現(xiàn)實生活幾乎每天都能接觸到的一些事物場景,使人們可以在一個完全虛擬的世界中體會到現(xiàn)實當(dāng)中的日常生活,感覺上人們在虛擬生活中多了一個“second life”。對今后虛擬現(xiàn)實技術(shù)在日常生活方面的應(yīng)用起到引言預(yù)測的研究作用。 虛擬場景是計算機通過數(shù)字通訊技術(shù)勾勒出的數(shù)字化場景。虛擬日常生活場景設(shè)計是將現(xiàn)實生活中經(jīng)常接觸到、使用到的日常生活場景虛擬化,使人們可以在虛擬的網(wǎng)絡(luò)世界中感受到現(xiàn)實生活的蹤影。實現(xiàn)現(xiàn)實生活中的超市和
17、餐廳的基本陳設(shè)、工作流程等,對其中的核心部件進行交互控制,是用戶可以輕松體驗虛擬場景帶來的真實生活。其中交互主要包括:餐廳部分:冰柜門開啟、微波爐加熱旋轉(zhuǎn)、洗菜池流水調(diào)控、抽油煙機音效、燃氣灶火焰燃燒、壓力鍋加熱霧化效果等;超市部分:伸縮門開啟、點擊收獲物品、收銀結(jié)賬等等功能。 基于VRML虛擬技術(shù)的超市及餐廳虛擬場景設(shè)計的實現(xiàn)改變了傳統(tǒng)的真實場景模式,場景內(nèi)可以通過鼠標(biāo)操作,方便而快速地讓用戶感受到虛擬場景中各種部件的交互使用,創(chuàng)造一個真實的室內(nèi)場景空間,若再加入一些外部設(shè)備,可以使用戶產(chǎn)生沉浸感,仿佛自己真的在操控各種物體一樣。 - 第 VII 頁- 畢業(yè)設(shè)計(論文)專用紙
18、 第1章 虛擬現(xiàn)實技術(shù) 1.1 虛擬現(xiàn)實技術(shù)簡介 1.1.1 虛擬現(xiàn)實技術(shù)的概念 虛擬現(xiàn)實是近年來出現(xiàn)的高新技術(shù),也稱人工環(huán)境。虛擬現(xiàn)實是利用電腦模擬產(chǎn)生一個三維空間的虛擬世界,提供使用者關(guān)于視覺、聽覺、觸覺等感官的模擬,讓使用者如同身歷其境一般,可以及時、沒有限制地觀察三度空間內(nèi)的事物。 VRML是一項綜合集成技術(shù)[1],涉及計算機圖形學(xué)、人機交互技術(shù)、傳感技術(shù)、人工智能等領(lǐng)域,它用計算機生成逼真的三維視、聽、嗅覺等感覺,使人作為參與者通過適當(dāng)裝置,自然地對虛擬世界進行體驗和交互作用。該技術(shù)集成了計算機圖形(CG)技術(shù)、人工智能
19、、傳感技術(shù)、網(wǎng)絡(luò)并行處理等技術(shù)的最新發(fā)展成果,是一種由計算機技術(shù)輔助生成的高技術(shù)模擬系統(tǒng)。 概括地說,虛擬現(xiàn)實是人們通過計算機對復(fù)雜數(shù)據(jù)進行可視化操作與交互的一種全新方式,與傳統(tǒng)的人機界面以及流行的視窗操作相比,虛擬現(xiàn)實在技術(shù)思想上有了質(zhì)的飛躍。 虛擬現(xiàn)實中的“現(xiàn)實”是泛指在物理意義上或功能意義上存在于世界上的任何事物或環(huán)境,它可以是實際上可實現(xiàn)的,也可以是實際上難以實現(xiàn)的或根本無法實現(xiàn)的。而“虛擬”是指用計算機生成的意思。因此,虛擬現(xiàn)實是指用計算機生成的一種特殊環(huán)境,人可以通過使用各種特殊裝置將自己“投射”到這個環(huán)境中,并操作、控制環(huán)境,實現(xiàn)特殊的目的,即人是這種環(huán)境的主宰[2]。
20、1.1.2 虛擬現(xiàn)實技術(shù)的關(guān)鍵技術(shù) 實物虛化、虛物實化和高性能的計算處理技術(shù)是VRML技術(shù)的三個主要方面。實物虛化是將現(xiàn)實世界的多維信息映射到計算機的數(shù)字空間生成相應(yīng)的虛擬世界,為高性能的計算處理提供必要的信息數(shù)據(jù)。虛物實化通過各種計算和仿真技術(shù)使計算機生成的虛擬世界中的事物所產(chǎn)生的各種刺激以盡可能自然的方式反饋給用戶。 1.2 VRML概述 1.2.1 VRML簡介 VRML是英文Virtuual Reality Modeling Language ——虛擬現(xiàn)實造型語言的縮寫。其被廣泛應(yīng)用于Internet上創(chuàng)建充滿動感的三維虛擬空間。它是一個可參與、可進入、可交互的三維立體世
21、界,給人們帶來沉浸感、想象力以及動態(tài)交互感知的效果,從而產(chǎn)生置身于真實環(huán)境中的幻想感、身臨其境的感受。 虛擬現(xiàn)實建模語言VRML涉及有關(guān)的基本概念和名詞是編寫VRML的基礎(chǔ),基本術(shù)語包括各種節(jié)點、域值、事件、路由、原型、場景及腳本等[3]。 1.2.2 VRML應(yīng)用和展望 虛擬現(xiàn)實建模語言VRML設(shè)計,源于虛擬現(xiàn)實技術(shù),是20世紀(jì)末發(fā)展起來的設(shè)計眾多學(xué)科的高新技術(shù)。它集計算機、仿真、微電子、傳感與測量技術(shù)于一體的高新技術(shù)的融合。而虛擬現(xiàn)實建模語言VRML,正式利用虛擬現(xiàn)實技術(shù),在計算機中創(chuàng)建一種虛擬環(huán)境,通過視覺、聽覺、觸覺、味覺、嗅覺以及生理反應(yīng)等感知器,使用戶產(chǎn)生一種與現(xiàn)實生活相
22、同的感受,有身臨其境的感覺甚至生理感覺??蓪崿F(xiàn)用戶與虛擬現(xiàn)實環(huán)境直接驚醒交互。 虛擬現(xiàn)實建模語言(VRML)涉及計算機網(wǎng)絡(luò)、多媒體及人工智能三大領(lǐng)域,以及自然科學(xué)、社會科學(xué)和哲學(xué)等學(xué)科領(lǐng)域。具體來講,虛擬現(xiàn)實環(huán)境一般涉及計算機圖形學(xué)、圖像處理、模式識別、傳感器、語音處理、網(wǎng)絡(luò)技術(shù)、并行處理、人工智能等高新技術(shù),還涉及天文、地理、數(shù)學(xué)、物理、化學(xué)、美學(xué)、醫(yī)學(xué)、軍事、生理和心理等領(lǐng)域[4]。 計算機硬件技術(shù)、網(wǎng)絡(luò)技術(shù)及多媒體技術(shù)的融合與高速發(fā)展使得虛擬顯示技術(shù)獲得長足的發(fā)展,是虛擬現(xiàn)實技術(shù)能在Internet上得以實現(xiàn)和發(fā)展。目前網(wǎng)站使用的均為二維圖像與動畫網(wǎng)頁,而在網(wǎng)站上采用虛擬現(xiàn)實建模語言
23、(VRML),則可以設(shè)計出虛擬現(xiàn)實三維立體網(wǎng)頁場景和立體景物。利用虛擬顯示技術(shù)可以制造一個逼真的“虛擬人”, 為醫(yī)學(xué)實習(xí)、治療、手術(shù)及科研做出貢獻,也可應(yīng)用于軍事領(lǐng)域而設(shè)計一個“模擬戰(zhàn)場”來進行大規(guī)模的高科技軍事演習(xí),既可以節(jié)省大量費用,又使部隊得到了鍛煉。在航空航天發(fā)射中,也可以制造一個“模擬航天器”,模擬整個航天器生產(chǎn)、發(fā)射、運行和回收的全過程。此外,還可以應(yīng)用于工業(yè)、農(nóng)業(yè)、商業(yè)、數(shù)學(xué)、娛樂和科研等方面,其應(yīng)用前景非常廣闊。總之,VRML是21世紀(jì)融計算機網(wǎng)絡(luò)、多媒體及人工智能為一體的最為優(yōu)秀的開發(fā)工具和手段。 - 第 48 頁- 第2章 其它技術(shù)支持——3ds max與Jav
24、aScript 2.1 3ds max概述 2.1.1 3ds max簡介 3D Studio Max,常簡稱為3ds Max或MAX,是Autodesk公司開發(fā)的基于PC系統(tǒng)的三維動畫渲染和制作軟件。其前身是基于DOS操作系統(tǒng)的3D Studio系列軟件,最新版本是2010。在Windows NT出現(xiàn)以前,工業(yè)級的CG制作被SGI圖形工作站所壟斷。3D Studio Max + Windows NT組合的出現(xiàn)一下子降低了CG制作的門檻,首選開始運用在電腦游戲中的動畫制作,后更進一步開始參與影視片的特效制作,例如X戰(zhàn)警II,最后的武士等。 在應(yīng)用范圍方面,廣泛應(yīng)用于廣告、影視、工業(yè)
25、設(shè)計、建筑設(shè)計、多媒體制作、游戲、輔助教學(xué)以及工程可視化等領(lǐng)域。擁有強大功能的3DS MAX被廣泛地應(yīng)用于電視及娛樂業(yè)中,比如片頭動畫和視頻游戲的制作,深深扎根于玩家心中的勞拉角色形象就是3DS MAX的杰作。在影視特效方面也有一定的應(yīng)用。而在國內(nèi)發(fā)展的相對比較成熟的建筑效果圖和建筑動畫制作中,3DS MAX的使用率更是占據(jù)了絕對的優(yōu)勢。根據(jù)不同行業(yè)的應(yīng)用特點對3DS MAX的掌握程度也有不同的要求,建筑方面的應(yīng)用相對來說要局限性大一些,它只要求單幀的渲染效果和環(huán)境效果,只涉及到比較簡單的動畫;片頭動畫和視頻游戲應(yīng)用中動畫占的比例很大,特別是視頻游戲?qū)巧珓赢嫷囊笠咭恍挥耙曁匦Х矫娴膽?yīng)用
26、則把3DS MAX的功能發(fā)揮到了極至。 2.1.2 3ds max的特點 1、功能強大,擴展性好。 建模功能強大,在角色動畫方面具備很強的優(yōu)勢,另外豐富的插件也是其一大亮點。 2、操作簡單,容易上手。 與強大的功能相比,3ds max可以說是最容易上手的3D軟件。 3、和其它相關(guān)軟件配合流暢。 4、做出來的效果非常的逼真。 2.1.3 3ds max的應(yīng)用領(lǐng)域 1、游戲動畫 主要客戶有EA、Epic、SEGA等,大量應(yīng)用于游戲的場景、角色建模和游戲動畫制作。 2、建筑動畫 北京申奧宣傳片等。 3、室內(nèi)設(shè)計 在3ds max等軟件中,可以制作出3D模型,可用于室內(nèi)
27、設(shè)計、例如沙發(fā)模型、客廳模型、餐廳模型、臥室模型等等。 4、影視動畫 《阿凡達》《諸神之戰(zhàn)》等好萊塢電影都引進了先進的3D技術(shù)。 2.2 JavaScript概述 2.2.1 JavaScript簡介 JavaScript是NetScape公司為Navigator瀏覽器開發(fā)的,是寫在HTML文件中的一種腳本語言,能實現(xiàn)網(wǎng)頁內(nèi)容的交互顯示[5]。當(dāng)用戶在客戶端顯示該網(wǎng)頁時,瀏覽器就會執(zhí)行JavaScript程序,用戶通過交互式的操作來變換網(wǎng)頁的內(nèi)容,以實現(xiàn)HTML語言所不能實現(xiàn)的效果。 JavaScript是一種描述性的腳本語言,將JavaScript寫入到Web頁面當(dāng)中,能讓你
28、的網(wǎng)頁更加生動活潑,也是目前網(wǎng)頁中設(shè)計中最容易學(xué)又最方便的語言。你可以利用JavaScript輕易的做出親切的歡迎訊息、漂亮的數(shù)字鐘、有廣告效果的跑馬燈及簡易的選舉,還可以顯示瀏覽器停留的時間。讓這些特殊效果提高網(wǎng)頁的可觀性[6]。 在VRML中,Script節(jié)點包含一個腳本程序。這個程序是用JavaScript或Java寫的,Script節(jié)點腳本可以接收事件,處理事件中的信息,還可以產(chǎn)生基于處理結(jié)果的輸出事件。Script節(jié)點不創(chuàng)建任何造型,所以它在虛擬世界中也是看不到的。Script節(jié)點可以作為子節(jié)點包含在任何組節(jié)點中,但它不依靠于所使用的系統(tǒng),而且與子節(jié)點所作的選擇無關(guān)。Script節(jié)
29、點一般放在VRML文件的最外層組。 利用程序腳本和Script節(jié)點,可以差生復(fù)雜動作。通常程序腳本動作包括已計算好的動畫運動路徑的輸出。Script節(jié)點可以看作是一個節(jié)點的外殼:它擁有field域、eventIn事件、eventOut事件,然而可以通過程序腳本來賦予腳本節(jié)點的動作。可以這樣理解Script節(jié)點:通過接受eventIn事件調(diào)用了相應(yīng)的處理過程函數(shù),經(jīng)過程函數(shù)處理后得出的數(shù)據(jù)作為eventOut出事件發(fā)送出去,其中eventIn事件的值可以作為過程函數(shù)的因變量的值,如果需要則用field域定義某個中間變量。 無論Script節(jié)點是直接包含程序腳本,還是將其放在分立的文件中,Sc
30、ript節(jié)點的程序腳本定義了此節(jié)點的動作。這些動作可以包含由接口eventIn接收的輸入的響應(yīng),計算新的結(jié)果,將這些結(jié)果存入節(jié)點的接口域,通過節(jié)點的接口eventOut發(fā)出新值。 JavaScript繼承了Java語言的面向?qū)ο?、跨平臺等多想特點,有人認為它是為了快速、簡單地編程而出現(xiàn)的微型Java語言。鑒于JavaScript在網(wǎng)頁設(shè)計中成功應(yīng)用并成為主導(dǎo)編程語言,VRML也將JavaScript作為內(nèi)嵌編程語言的候選者之一,大部分VRML瀏覽器都支持JavaScript編寫的腳本程序。雖然JavaScript對于大多數(shù)應(yīng)用來說已經(jīng)足夠,但VRML的倡導(dǎo)者之一SGI公司還是基于語言開發(fā)了專
31、門針對VRML設(shè)計的Vrmlscript語言。Vrmlscript可以說是JavaScript的一個子集,它使用了JavaScript的基本語法,增加了一些適用于VRML的JavaScript對象。如果Script節(jié)點內(nèi)直接包含使用這兩種語言之一編寫的程序腳本,為了使瀏覽器能夠區(qū)分開,必須在url域的字符串開頭注明“VrmlScript:”還是“JavaScript:”。JavaScript對VRML場景的訪問并不是一定要通過Script節(jié)點,如果VRML場景與HTML頁面的其它對象相結(jié)合,比如使用了JavaScript對象,就可以使用直接訪問的方式[7]。 第3章 使用3ds max
32、技術(shù)構(gòu)建模型 3.1 3ds max構(gòu)建模型的準(zhǔn)則 一個虛擬現(xiàn)實場景在計算機上演示流暢與否,與場景中的模型個數(shù)、模型面數(shù)、模型貼圖這三個方面的數(shù)據(jù)量息息相關(guān),只有在前期建模時處理好這三個方面的數(shù)據(jù)量,才不會導(dǎo)致后期演示時出現(xiàn)卡、頓等現(xiàn)象。 3.2 3ds max構(gòu)建模型的基本方法 3.2.1 基本體建模 3ds max中提供了非常容易使用的【標(biāo)準(zhǔn)基本體】及【標(biāo)準(zhǔn)幾何體】建模工具,只需拖動鼠標(biāo),即可創(chuàng)建一個幾何體。這些基本體靠參數(shù)來改變形態(tài)的,用這些基本體可以制作一些簡單的造型。 ·沙發(fā)建模、房屋建模 圖3-1 沙發(fā)的效果圖
33、 圖3-2 房屋的效果圖 3.2.2 二維線形建模 二維線形在建模中起著非常重要的作用,通常我們建立的三維模型大都是先創(chuàng)建二維線形,然后添加相應(yīng)的修改命令來完成的。二維線形也可以直接在建模中使用,它提供了【頂點】、【線段】、【樣條線】等修改級別,用二維線形繪制復(fù)雜的造型,必須給它添加適當(dāng)?shù)木庉嬓薷拿?,通過這些命令使二維線形生成三維物體,一步步繪制出復(fù)雜的結(jié)構(gòu)造型。常見的修改命令如【擠出】、【車削】、【倒角】、【倒角剖面】、【放樣】等。 ·洗手池建模、油煙機建模 圖3-3 洗菜池的效果圖
34、 圖3-4油煙機的效果圖 3.2.3 三維修改器建模 在3ds max的修改工具中有大量的三維修改命令,通過使用這些三維修改命令可以對三維對象進行一些復(fù)雜的變形和編輯,可以快捷地創(chuàng)建一些精度要求很高的復(fù)雜三維造型。常見的修改命令如【FFD】等。 ·購物車建模、壓力鍋建模 圖3-7 購物車的效果圖 圖3-8 壓力鍋的效果圖 ·收款機建模 圖3-9 收款機的效果圖 3.3 利用3D制作動畫 在3ds max中可以制作場景動畫,導(dǎo)入進VRML里做必要的處
35、理可以形成物體交互的動畫,方便快捷的模擬出現(xiàn)實生活的場景。 創(chuàng)建動畫的方法: (1)單擊“自動創(chuàng)建關(guān)鍵點”按鈕,開啟動畫功能。 (2)激活所需視圖上需要變化的物體,改變其相對位置,確定好方位后點擊打點按鈕,定下關(guān)鍵幀。依此類推。 (3)激活透視圖,觀察最終動畫并加以修改。 (4)如圖3-10、3-11、3-12所示收銀場景應(yīng)用動畫的最終效果。 圖3-10收銀場景動畫應(yīng)用的原始圖 圖3-11收銀場景動畫應(yīng)用的過程圖 圖3-12收銀場景動畫應(yīng)用的最終效果圖 第4章 使用VRML技術(shù)構(gòu)建動畫與交
36、互功能 4.1 使用VRML構(gòu)建動畫與交互功能的基本語法 4.1.1 使用VRML構(gòu)建動畫的基本插補器類型 Timesensor節(jié)點的作用像一個時鐘,它可以被用來執(zhí)行開始、停止或者其他控制動畫的動作。隨著時間的流逝,這個傳感器就會產(chǎn)生事件來表示時間的變化。通過將這些事件從Timesensor節(jié)點的eventOut路由到其他節(jié)點,當(dāng)Timesensor節(jié)點的時鐘計時時,可以使這些節(jié)點發(fā)生相應(yīng)的變化[8]。若要使一個坐標(biāo)系平移、旋轉(zhuǎn)和按比例縮放的話,可以將Timesensor節(jié)點時間路由至PositionInterpolator和OrientationInerpolator節(jié)點。這些節(jié)點
37、中每一個產(chǎn)生新的位置和旋轉(zhuǎn)值,并通過他們的eventOut事件傳送這些值。按順序?qū)⑦@些值路由到Transform節(jié)點,就可以使節(jié)點的坐標(biāo)系隨動畫過程的發(fā)展而發(fā)生平移、旋轉(zhuǎn)和按比例縮放。 根據(jù)其所插值的類型而將插補器節(jié)點分為幾種[9]:PositionInterpolator位置插補器(用于造型位置的變化,和時間傳感器結(jié)合一起可以隨時間改變對象的位置,從而創(chuàng)建對象移動的效果。同時,這個節(jié)點還可以用來控制對象的縮放,實現(xiàn)對象大小和形狀的變化)。OrientationInterpolator方向插補器(用于對象的朝向變化,也就是隨著時間的變化,對象繞某個軸,逐漸旋轉(zhuǎn)不同的角度,體現(xiàn)出對象的方位的動
38、態(tài)變化。)ColorInterpolator顏色插補器(描述顏色隨時間的變化,從而使得造型的顏色呈現(xiàn)一種靈活、生動的變化效果)。ScalarInterpolator標(biāo)量插補器(對某些標(biāo)量數(shù)值的域進行插補的,一般用于只有單一的數(shù)值表示的域,比如改變強度,可以調(diào)節(jié)光照,霧的濃度。材質(zhì)的透明度等等)。NormalInterpolator法向插補器(能夠隨時間改變vector的三維向量域值)。CoordinateInterpolator坐標(biāo)插補器(對空間坐標(biāo)的數(shù)值進行插補,但是同位置插補器的情況不同,坐標(biāo)插補器往往不是用在對造型對象的位置坐標(biāo)上,而是用在構(gòu)成某類對象的空間坐標(biāo)上。) 4.1.2 使
39、用VRML構(gòu)建交互功能的基本傳感器類型 在虛擬場景中設(shè)置了一些具有檢測、感知作用的節(jié)點,借助這些節(jié)點的使用,瀏覽者和虛擬對象能夠?qū)崿F(xiàn)更進一步的交互[10]。 Touchsensor是一種用來檢測觀察者的接觸和將事件輸出的傳感器。這些輸出描述了在何時、何地觀察者接觸到了可感知的造型。CylinderSensor,PlaneSensor和SphereSensor節(jié)點也可用來檢測何時觀察者接觸到一個可感知的造型[11],并且提供了用來改變造型位置和方向的輸出。檢測器可以分為兩大類,一類是接觸型的傳感器,另一類是感知性的檢測器。 檢測動作的檢測器是接觸型檢測器[12],節(jié)點有:TouchSens
40、or接觸傳感器(用于感知用戶鼠標(biāo)觸發(fā)的動作)、PlaneSensor平面?zhèn)鞲衅?感知用戶在XOY平面上鼠標(biāo)拖拽動作)、SphereSensor球面?zhèn)鞲衅?用于感知用戶繞中心點拖拽旋轉(zhuǎn)的動作)及CylinderSensor圓柱傳感器(用于感知用戶繞中心軸拖拽旋轉(zhuǎn)的動作)。 檢測用戶和對象接近程度的檢測器是感知檢測器,節(jié)點有: VisibilitySensor可見性傳感器(從瀏覽者所在的方位,感知一個空間長方體區(qū)域,在當(dāng)前場景中是否可以被看見,據(jù)此輸出事件觸發(fā)動畫效果),ProximitySensor鄰近傳感器 (用于從瀏覽者視點所在的方位,感知用戶進入、退出設(shè)定的空間長方體區(qū)域的動作), Co
41、llision碰撞感知節(jié)點(用于從瀏覽者所在的方位,感知用戶與該組中任何子節(jié)點造型發(fā)生碰撞動作)。 4.2 使用VRML構(gòu)建動畫 4.2.1 使用VRML構(gòu)建馬桶蓋的開啟 在現(xiàn)實生活中,人們可以通過點擊按鈕來沖洗馬桶,為此,在本次設(shè)計中通過使用OrientationInterpolator來實現(xiàn)這一功能,并配有沖洗馬桶的聲音。如圖4-1、4-2所示功能實現(xiàn)。 以下所示為實現(xiàn)馬桶蓋關(guān)閉的代碼: DEF gaizi Transform{ } DEF clock1 TimeSensor {cycleInterval 1 loop FALSE } DEF a1 Orient
42、ationInterpolator { key [0.0 0.1 ……0.9 1 ] keyValue [0 1 1 3.14……0 -1 0 3.14]} DEF s TouchSensor {} Sound {source DEF zb AudioClip {url "matong.mp3"}} ROUTE s.touchTime TO zb.startTime ROUTE clock1.fraction_changed TO a1.set_fraction ROUTE a1.value_changed TO gaizi.set_rotation
43、 圖4-1馬桶蓋關(guān)閉動畫的原始圖 圖4-2馬桶蓋關(guān)閉動畫的最終效果圖 在這個程序中,第一條路由的作用是把接觸傳感器s的touchTime事件域傳遞域值給聲音AudioClip zb的startTime域,開啟聲音;第二條路由的作用是時間傳感器 clock1的fraction_changed事件域傳遞域值給方位插補器OrientationInterpolator a1的set_fraction域;最后一條路由是方位插補器OrientationInterpolator a1的value_changed事件域傳遞域值給Transform節(jié)點gaizi的set_
44、rotation域,完成動馬桶蓋關(guān)閉動畫的全過程。 4.2.2 使用VRML構(gòu)建壓力鍋的煙霧及開啟 在顯示生活中壓力鍋工作中會有煙霧產(chǎn)生,通過VRML和cosmo worlds創(chuàng)建煙霧動畫和鍋的開啟,還原真實場景。如圖4-3、4-4所示功能實現(xiàn)。 以下所示為實現(xiàn)煙霧動畫代碼: DEF _12 TimeSensor {} DEF steam-AniTrigger_13 Script { eventIn SFTime triggerIn eventOut SFTime startTime eventOut SFBool firstTime url
45、"javascript:function triggerIn(value, time) { startTime = value; firstTime = FALSE; }} ROUTE steam-AniTrigger_13.firstTime TO _12.set_enabled ROUTE _12.time TO steam-AniTrigger_13.triggerIn 圖4-3壓力鍋煙霧動畫的原始圖 圖4-4壓力鍋煙霧動畫的最終效果圖 程序中第一條路由的作用是腳本steam-AniTrigger_13的firs
46、tTime事件域傳遞域值給時間傳感器_12的set_enabled域;第二條路由作用是時間傳感器_12的time事件域傳遞域值給steam-AniTrigger_13的triggerIn域,實現(xiàn)煙霧動畫。 4.2.3 使用VRML構(gòu)建天空 在虛擬現(xiàn)實中搭建外環(huán)境,模仿真實天空,增加場景的真實感。如圖4-5所示為天空效果圖。 以下所示為實現(xiàn)真實感天空的代碼: DEF SkyInterp ScalarInterpolator { key [ 0, 1 ] keyValue [ 0, 1 ]} textureTransform DEF _34 TextureTransform {
47、 } DEF SkyTimer TimeSensor {} DEF SkyMove Script { eventIn SFFloat floatIN eventOut SFVec2f coordsOUT url "javascript: function floatIN (value, timestamp){ coordsOUT[0] = value; } }] ROUTE SkyMove.coordsOUT TO _34.set_translation ROUTE SkyTimer.fraction_changed TO SkyInterp.se
48、t_fraction ROUTE SkyInterp.value_changed TO SkyMove.floatIN } 圖4-5真實感天空實現(xiàn)的效果圖 程序中第一條路由的作用是腳本SkyMove的coordsOUT事件域傳遞域值給_34的set_translation域;第二條路由作用是時間傳感器SkyTimer的fraction_changed事件域傳遞域值給標(biāo)量插補器SkyInterp的set_fraction域;第三條路由是標(biāo)量插補器SkyInterp的value_changed事件域傳遞域值給腳本SkyMove的floatIN域,實現(xiàn)云飄動的動畫。 4.3 使用VR
49、ML構(gòu)建交互功能 4.3.1 使用VRML構(gòu)建冰柜門開啟的交互功能 “虛擬現(xiàn)實在超市及餐廳中的應(yīng)用”為用戶提供了場景中物體的一些基本的交互功能,用戶可以通過操作鼠標(biāo)對場景中的物體進行實時交互控制。當(dāng)程序接收到事件響應(yīng)后,通過一系列傳感器控制物體發(fā)生運動。如圖4-6、4-7所示為冰柜門開啟效果圖。 以下所示為實現(xiàn)冰柜門開啟的交互功能的代碼: DEF men1 Transform { } DEF s1_sensor PlaneSensor { maxPosition 30 0 } ROUTE s1_sensor.translation_changed TO men1.set
50、_translation 圖4-6冰柜門開啟的交互功能的原始圖 圖4-7冰柜門開啟的交互功能的最終效果圖 在該程序中路由的作用是平面?zhèn)鞲衅鱯1_sensor的translation_changed事件域傳遞域值給men1的set_translation域,完成鼠標(biāo)控制冰柜門開啟的動畫。 4.3.2 使用VRML構(gòu)建超市收銀的交互功能 利用VRML里的多種傳感器還原現(xiàn)實生活中中超市購物收銀場景,同時配有聲音,使人們真正感受到虛擬生活帶來的沉浸感、真實感。如圖4-8、4-9所示為超市收銀功能的實現(xiàn)。 以下為實現(xiàn)超市收銀功能的代碼:
51、 DEF Arch_44 FACES01 Transform { children [ DEF wu2 TouchSensor {} DEF V2Grp01-TIMER TimeSensor { loop FALSE cycleInterval 1.667 }, DEF Arch_44 PositionInterpolator { key [0, 0.06……0.96, 1, ] keyValue [0 0 0, 0.5283 1.394 -0.9639,……-0.6594 16.37 -8.592, ] }, Sound { source DEF mtg AudioClip
52、 {url "chaoshi1.mp3"}] ROUTE wu2.touchTime TO V2Grp01-TIMER.startTime ROUTE wu2.touchTime TO mtg.startTime ROUTE V2Grp01-TIMER.fraction_changed TO Arch_44.set_fraction ROUTE Arch_44.value_changed TO Arch_44 FACES01.set_translation 圖4-8超市收銀功能實現(xiàn)的原始圖 圖4-9超市收銀功能實現(xiàn)的最終效
53、果圖 程序中第一條路由的作用是接觸傳感器wu2的touchTime事件域傳遞域值給時間傳感器V2Grp01-TIMER的startTime域;第二條路由是接觸傳感器wu2的touchTime事件域傳遞域值給AudioClip mtg的startTime域;第三條路由作用是時間傳感器V2Grp01-TIMER的fraction_changed事件域傳遞域值給位置插補器Arch_44的set_fraction域;第四條路由是位置插補器Arch_44的value_changed事件域傳遞域值給Transform節(jié)點Arch_44 FACES01的set_translation域,完成收銀功能的動畫
54、。 4.3.3 使用VRML構(gòu)建超市點擊收獲物品的交互功能 利用VRML里的多種傳感器還原現(xiàn)實生活中中超市購物,點擊相應(yīng)物品物品自動飛入購物車中,實現(xiàn)方法原理與收款相似。如圖4-10、4-11所示為超市點擊受收獲物品功能的實現(xiàn)。 以下為實現(xiàn)超市收獲物品功能的代碼: DEF yi4 Transform { children [ DEF n4Trigger TouchSensor { } DEF n41 KfaAnimation { timeSensor DEF Time_22 TimeSensor { } fieldInterps [ DEF n4Translation
55、Interp KfaPositionInterpolator { key [ 0, 0.02, …… 1 ] keyTypes [ 2, 2 ] authorKey [ 0, 1 ] keyValue [ 0 0 0,……-15 -35 10 ] authorKeyValue [ 0 0 0,……-15 -35 10 ]} ] } ]} ROUTE n4Trigger.touchTime TO Time_22.set_startTime ROUTE Time_22.fraction_changed TO n4TranslationInterp.set_fraction RO
56、UTE n4TranslationInterp.value_changed TO yi4.set_translation 圖4-10點擊收獲物品功能實現(xiàn)的原始圖 圖4-11點擊收獲物品功能實現(xiàn)的最終效果圖 本程序中第一條路由的作用是接觸傳感器n4Trigger的touchTime事件域傳遞域值給時間傳感器Time_22的set_startTime域;第二條路由是時間傳感器Time_22的fraction_changed事件域傳遞域值給位置插補器n4TranslationInterp的set_fraction域;第三條路由作用是位置插補器n4
57、TranslationInterp的value_changed事件域傳遞域值給Transform節(jié)點yi4的set_translation域,完成點擊收獲物品交互動畫。 4.3.4 使用VRML構(gòu)建超市大門伸縮開啟的交互功能 利用VRML里的多種傳感器還原現(xiàn)實生活中中超市購物,點擊大門,大門自動伸縮開啟,實現(xiàn)方法原理與收款相似。如圖4-12、4-13所示為超市大門伸縮開啟功能的實現(xiàn)。 以下為實現(xiàn)超市大門伸縮開啟功能的代碼: DEF UnnamedAnimation0Trigger_1 TouchSensor { } DEF Time_8 TimeSensor { startTime
58、 -1 cycleInterval 5 } actors USE V2Grp01 fieldInterps [ DEF V2Grp01TranslationInterp_9 KfaPositionInterpolator { key [ 0, 0.02, 0.04, 0.06,……0.96, 0.98, 1 ] keyTypes [ 2, 2 ] authorKey [ 0, 1 ] keyValue [ 0 -0.432509 0.00349385,……1.00004 5.3063 0.0048702 ] authorKeyValue [ 0 -0.432509 0.00
59、349385,…… 1.00004 5.3063 0.0048702 ]} }] } ROUTE UnnamedAnimation0Trigger_1.touchTime TO Time_8.set_startTime ROUTE Time_8.fraction_changed TO V2Grp01TranslationInterp_9.set_fraction ROUTE V2Grp01TranslationInterp_9.value_changed TO V2Grp01.set_translation 圖4-12超市大門伸縮開啟功能實現(xiàn)的原始圖
60、 圖4-13超市大門伸縮開啟功能實現(xiàn)的最終效果圖 程序中第一條路由的作用是接觸傳感器UnnamedAnimation0Trigger_1的touchTime事件域傳遞域值給時間傳感器Time_8的set_startTime域;第二條路由作用是時間傳感器Time_8的fraction_changed事件域傳遞域值給位置插補器V2Grp01TranslationInterp_9的set_fraction事件域;第三條路由作用是位置插補器V2Grp01TranslationInterp_9的value_changed事件域傳遞域值給Transform節(jié)點V2Grp01的set_translati
61、on域,完成超市大門伸縮開啟動畫。 4.3.5 使用VRML構(gòu)建油煙機聲音的交互功能 利用VRML里的touchsensor實現(xiàn)現(xiàn)實生活中中抽煙煙機的工作,同時配有聲音的開啟和關(guān)閉,使人們可以交互控制虛擬的場景。如圖4-14所示為抽油煙機工作功能的實現(xiàn)。 以下為實現(xiàn)抽油煙機工作功能的代碼: DEF anniutouch01 TouchSensor {} DEF anniutouch02 TouchSensor {} DEF shengyin Sound { source DEF youyan AudioClip { loop FALSE}} ROUTE anni
62、utouch01.touchTime TO youyan.startTime ROUTE anniutouch02.touchTime TO youyan.stopTime 圖4-14抽油煙機工作功能實現(xiàn)的效果圖 在該程序中第一條路由的作用是接觸傳感器anniutouch01的touchTime事件域傳遞域值給AudioClip youyan的startTime域,開啟聲音;第二條路由作用是接觸傳感器anniutouch02的touchTime事件域傳遞域值給AudioClip youyan的stopTime域,關(guān)閉聲音,完成聲音交互。 4.4 使用VRML構(gòu)建視點、燈光 4.
63、4.1 使用VRML構(gòu)建固定視點 在一個完整的虛擬現(xiàn)實場景中應(yīng)有各個角度方面的視角,通過各個視角的切換來系統(tǒng)完整的了解整個場景,本系統(tǒng)中一共設(shè)計了13個視點,一邊系統(tǒng)完整的觀察整個場景;加入燈光效果使整個場景變得通透明亮,更便于觀察。如圖4-15所示為視點、燈光的實現(xiàn)。 以下為實現(xiàn)視點、燈光的代碼: DEF nav0 NavigationInfo { headlight TRUE } DEF huike Viewpoint { position 70 -40 630 description "huiketing" orientation 0 1 0 2 fieldOfView
64、 1 jump FALSE } 圖4-15視點、燈光實現(xiàn)的效果圖 程序代碼中NavigationInfo為頭燈,當(dāng)選擇TRUE時為開啟狀態(tài),使整個場景變亮。huike為一個固定視點,通過調(diào)節(jié)程序里的position等值確定其位置等屬性。 4.4.2 使用VRML構(gòu)建跟隨視點 為了方便用戶觀察動態(tài)效果,例如超市中購物車的行走路線,特在購物車上加入跟蹤視點,使用戶可以輕而易舉的瀏覽超市的布局場景,模擬出真實的購物感受。如圖4-16、4-17、4-18所示為跟蹤視點的實現(xiàn)。 以下為實現(xiàn)購物車跟蹤視點的代碼: DEF shoukuan Viewpoint { position -
65、78 -44.29 -120 orientation 0 1 0 -1.571 description "shoukuan" fieldOfView 1 jump FALSE } DEF car TouchSensor {} DEF Box01-TIMER TimeSensor { loop FALSE cycleInterval 3.333 }, DEF Box01-POS-INTERP PositionInterpolator { key [0, 0.03,…… 0.93, 0.96, 0.99, 1, ] keyValue [-50 -88 -500 , …… -5
66、0 -88 -130 , ] }, ROUTE car.touchTime TO Box01-TIMER.startTime ROUTE Box01-TIMER.fraction_changed TO Box01-POS-INTERP.set_fraction ROUTE Box01-POS-INTERP.value_changed TO Box01.set_translation 圖4-16購物車跟蹤視點實現(xiàn)的原始圖 4-17購物車跟蹤視點實現(xiàn)的過程圖 圖4-18購物車跟蹤視點實現(xiàn)的最終效果圖 程序中第一條路由的作用是接觸傳感器car的touchTime事件域傳遞域值給時間傳感器Box01-TIMER的startTime域;第二條路由是時間傳感器Box01-TIMER的fraction_changed事件域傳遞域值給位置插補器Box01-POS-INTERP的set_fraction事件域;第三條路由的作用是位置插補器Box01-POS-INTERP的value_ch
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。