虛擬現(xiàn)實(shí)課程設(shè)計課件_第1頁
虛擬現(xiàn)實(shí)課程設(shè)計課件_第2頁
虛擬現(xiàn)實(shí)課程設(shè)計課件_第3頁
虛擬現(xiàn)實(shí)課程設(shè)計課件_第4頁
虛擬現(xiàn)實(shí)課程設(shè)計課件_第5頁
已閱讀5頁,還剩203頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

虛擬現(xiàn)實(shí)三維建模課程設(shè)計

——虛擬校園虛擬現(xiàn)實(shí)三維建模課程設(shè)計

——虛擬校園1目錄摘要課程設(shè)計目的虛擬校園概念及建設(shè)目標(biāo)功能展示數(shù)據(jù)來源關(guān)鍵技術(shù)小結(jié)目錄摘要2系統(tǒng)設(shè)計架構(gòu)圖系統(tǒng)設(shè)計架構(gòu)圖3摘要為了在計算機(jī)中更好的表現(xiàn)現(xiàn)實(shí)的世界,讓我們能夠更加真實(shí)地在計算機(jī)世界中展現(xiàn)出現(xiàn)實(shí)世界的魅力,也為了讓更多的人們看到我們在現(xiàn)實(shí)世界中不可能見到的場景,我們利用虛擬現(xiàn)實(shí)技術(shù)和可視化技術(shù)更好的實(shí)現(xiàn)了這一點(diǎn)。與此同時高校的數(shù)字化校園建設(shè)是一個涵蓋范圍很廣的領(lǐng)域,其建設(shè)過程所需要解決的問題也相當(dāng)復(fù)雜。本文針對華北水利水電大學(xué)的校園的具體情況,分析建設(shè)數(shù)字校園的目的,選擇建設(shè)數(shù)字校園的關(guān)鍵技術(shù)及方法,提出數(shù)字校園應(yīng)該具備那些基本功能,并詳細(xì)討論實(shí)現(xiàn)相關(guān)功能的過程和手段。摘要為了在計算機(jī)中更好的表現(xiàn)現(xiàn)實(shí)的世界,讓我們能4課程設(shè)計開發(fā)目的我國高校信息系統(tǒng)建設(shè)始于20世紀(jì)80年代,當(dāng)時主要是單機(jī)版應(yīng)用,解決重點(diǎn)業(yè)務(wù)環(huán)節(jié)的電算化,替代高強(qiáng)度的手工勞動,如排課系統(tǒng)、賬務(wù)管理系統(tǒng)、人員管理系統(tǒng)等。當(dāng)前許多高校都在積極研究虛擬現(xiàn)實(shí)技術(shù)及其應(yīng)用,并相繼建起了虛擬現(xiàn)實(shí)與系統(tǒng)仿真的研究室,將科研成果迅速轉(zhuǎn)化實(shí)用技術(shù),如北京航天航空大學(xué)在分布式飛行模擬方面的應(yīng)用;浙江大學(xué)在建筑方面進(jìn)行虛擬規(guī)劃、虛擬設(shè)計的應(yīng)用;哈爾濱工業(yè)大學(xué)在人機(jī)交互方面的應(yīng)用;清華大學(xué)對臨場感的研究等都頗具特色。有的研究室甚至已經(jīng)具備獨(dú)立承接大型虛擬現(xiàn)實(shí)項目的實(shí)力。虛擬學(xué)習(xí)環(huán)境虛擬現(xiàn)實(shí)技術(shù)能夠為學(xué)生提供生動、逼真的學(xué)習(xí)環(huán)境,如建造人體模型、電腦太空旅行、化合物分子結(jié)構(gòu)顯示等,在廣泛的科目領(lǐng)域提供無限的虛擬體驗,從而加速和鞏固學(xué)生學(xué)習(xí)知識的過程。親身去經(jīng)歷、親身去感受比空洞抽象的說教更具說服力,主動地去交互與被動的灌輸,有本質(zhì)的差別。虛擬實(shí)驗利用虛擬現(xiàn)實(shí)技術(shù),可以建立各種虛擬實(shí)驗室,如地理、物理、化學(xué)、生物實(shí)驗室等等,擁有傳統(tǒng)實(shí)驗室難以比擬的優(yōu)勢。課程設(shè)計開發(fā)目的我國高校信息系統(tǒng)建設(shè)始于20世5第二章數(shù)字化校園的概念、建設(shè)目標(biāo)2.1數(shù)字化校園的概念2.2數(shù)字化校園的建設(shè)目標(biāo)2.2.1在教學(xué)方面2.2.2在科研方面2.2.3在管理方面2.2.4在公共服務(wù)體系方面2.2.5在學(xué)校社區(qū)服務(wù)方面第二章數(shù)字化校園的概念、建設(shè)目標(biāo)2.1數(shù)字化校園的概念62.1數(shù)字化校園的概念傳統(tǒng)上說,數(shù)字化校園是在傳統(tǒng)校園的基礎(chǔ)上,利用先進(jìn)的信息化手段和工具,以統(tǒng)一的管理和安全策略,將校園各項資源數(shù)字化,形成的一個數(shù)字空間,使得現(xiàn)實(shí)校園在空間和時間上延伸開來。包括網(wǎng)絡(luò)基礎(chǔ)設(shè)施、數(shù)據(jù)中心、網(wǎng)絡(luò)基本服務(wù)系統(tǒng)、一卡通系統(tǒng)、電話系統(tǒng)、有線電視系統(tǒng)、廣播系統(tǒng)、會議系統(tǒng)、計算中心、數(shù)字圖書館、數(shù)字多媒體教室、數(shù)字語音室、電子公告屏、安防系統(tǒng)、樓宇控制(門禁)系統(tǒng)、應(yīng)用軟件系統(tǒng)等方面。當(dāng)然這只是傳統(tǒng)意義上的概念,當(dāng)我們結(jié)合虛擬現(xiàn)實(shí)時又會產(chǎn)生出另外一種意義的數(shù)字校園,也就是我們在課程設(shè)計中需要完成的三維數(shù)字化校園。2.1數(shù)字化校園的概念傳統(tǒng)上說,數(shù)字化校園是在72.2數(shù)字化校園的建設(shè)目標(biāo)2.2.1在教學(xué)方面充分利用網(wǎng)絡(luò)技術(shù)、多媒體技術(shù)等實(shí)現(xiàn)高質(zhì)量教學(xué)資源、信息資源和智力資源的共享與傳播,促進(jìn)高水平的師生互動,促進(jìn)主動式、協(xié)作式、研究型的學(xué)習(xí),從而形成開放的、高效的、個性化的教學(xué)模式,更好地培養(yǎng)學(xué)生的分析問題能力、解決問題能力和創(chuàng)新能力;2.2數(shù)字化校園的建設(shè)目標(biāo)2.2.1在教學(xué)方面82.2.2在科研方面充分利用校園網(wǎng)、互聯(lián)網(wǎng),促進(jìn)科研資源和設(shè)備的共享,加快科研信息傳播,促進(jìn)國際性學(xué)術(shù)交流,開展網(wǎng)上合作研究,并且利用網(wǎng)絡(luò)促進(jìn)最新科研成果向教學(xué)領(lǐng)域的轉(zhuǎn)化,以及科研成果的產(chǎn)業(yè)化和市場化,從而大大提高科研的創(chuàng)新水平和輻射力;2.2.2在科研方面充分利用校園網(wǎng)、互聯(lián)網(wǎng),促進(jìn)科研資源和92.2.3在管理方面充分利用現(xiàn)代信息技術(shù)實(shí)現(xiàn)職能管理的自動化、信息化,實(shí)現(xiàn)各部門之間的數(shù)據(jù)共享與協(xié)調(diào),提高決策的科學(xué)性和民主性,提高管理的質(zhì)量和效率,形成充滿活力的現(xiàn)代新型管理體制;2.2.3在管理方面充分利用現(xiàn)代信息技術(shù)實(shí)現(xiàn)職能管理的自102.2.4在公共服務(wù)體系方面建立覆蓋全校的、主干千兆的高速網(wǎng)絡(luò),提高面向全校師生的基本網(wǎng)絡(luò)服務(wù)、正版軟件服務(wù)、技術(shù)支持服務(wù)等等;建立高質(zhì)量的數(shù)字化的圖書館、多媒體教室、語音室、會議室等;在校園內(nèi)建立統(tǒng)一的電子身份認(rèn)證系統(tǒng),從而為學(xué)校高水平的教學(xué)、科研和管理等提供強(qiáng)有力的支撐;2.2.4在公共服務(wù)體系方面建立覆蓋全校的、主干千兆的112.2.5在學(xué)校社區(qū)服務(wù)方面

結(jié)合后勤社會化改革的需要,建立電子化的社區(qū)服務(wù)環(huán)境,網(wǎng)絡(luò)、電話、有線電視進(jìn)入社區(qū),并開展各種網(wǎng)絡(luò)化、電子化的服務(wù)項目,如一卡通電子商務(wù)、電子醫(yī)療、電子監(jiān)控等,為師生員工提供便捷、高效、集成、健康的生活和休閑娛樂服務(wù),形成智能型的社區(qū)服務(wù)系統(tǒng)。2.2.5在學(xué)校社區(qū)服務(wù)方面結(jié)合后勤社會化改革的需12小結(jié)其實(shí),數(shù)字化校園是一個過程、一種境界。它隨著技術(shù)的發(fā)展而發(fā)展,隨著人們辦公方式和習(xí)慣以及管理思想變化而變化。

小結(jié)其實(shí),數(shù)字化校園是一個過程、一種境界。它隨著技術(shù)的發(fā)13第三章功能展示3.1模型的建立3.1.1樹模型的建立3.1.2湖面模型3.1.3路燈模型3.1.4光線設(shè)置3.2算法功能展示3.2.1三維模型的導(dǎo)入3.2.2音效的添加3.2.3霧效果3.2.4漫游3.2.5線框模型3.2.6天空包圍盒第三章功能展示3.1模型的建立14第四章數(shù)據(jù)來源

空間數(shù)據(jù)獲取技術(shù)主要有遙感、遙測、GPS等技術(shù),屬性數(shù)據(jù)的獲取技術(shù)主要有傳統(tǒng)測量、統(tǒng)計資料等。在數(shù)字校園系統(tǒng)中,數(shù)據(jù)的存儲管理方式尤為重要,它決定了數(shù)據(jù)處理及空間查詢等諸多功能的運(yùn)行效率。通過數(shù)字地球技術(shù)獲取華北水利水電大學(xué)的空間信息,比如地理位置,建筑物情況,學(xué)校道路等,加以儲存和組織,以此建設(shè)虛擬校園,更為建設(shè)“數(shù)字校園”作鋪墊。

通過將實(shí)際測量的數(shù)據(jù)導(dǎo)入到計算機(jī),然后基于AutoCAD利用南方CASE進(jìn)行繪圖,繪制出校園的基本地形圖平面模型,為后期的基礎(chǔ)建模準(zhǔn)備數(shù)據(jù)。第四章數(shù)據(jù)來源空間數(shù)據(jù)獲取技術(shù)主要有遙感、遙15第五章數(shù)字校園的關(guān)鍵技術(shù)及方法虛擬現(xiàn)實(shí)技術(shù)建模技術(shù)數(shù)據(jù)庫技術(shù)網(wǎng)絡(luò)信息技術(shù)算法設(shè)計第五章數(shù)字校園的關(guān)鍵技術(shù)及方法虛擬現(xiàn)實(shí)技術(shù)16虛擬現(xiàn)實(shí)技術(shù)的概念虛擬現(xiàn)實(shí)(VirtualReality)是指運(yùn)用計算機(jī)技術(shù)生成一個逼真的、并具有視覺、聽覺、觸覺等效果的可交互、動態(tài)世界,人們可以對該虛擬世界中的虛擬實(shí)體進(jìn)行操縱和考察。它的基礎(chǔ)是高級的三維圖形技術(shù)、問題求解工具、多媒體技術(shù)、網(wǎng)絡(luò)通信技術(shù)、數(shù)據(jù)庫、信息系統(tǒng)、專家系統(tǒng)、面向?qū)ο蠹夹g(shù)和智能決策支持系統(tǒng)等技術(shù)的集成。虛擬現(xiàn)實(shí)技術(shù)的概念虛擬現(xiàn)實(shí)(VirtualRe17虛擬現(xiàn)實(shí)技術(shù)特征(1)沉浸性使之所創(chuàng)造的虛擬環(huán)境能使學(xué)生產(chǎn)生“身臨其境”感覺,使其相信在虛擬環(huán)境中人也是確實(shí)存在的,而且在操作過程中它可以自始至終的發(fā)揮作用,就像真正的客觀世界一樣。(2)交互性是在虛擬環(huán)境中,學(xué)生如同在真實(shí)的環(huán)境中一樣與虛擬環(huán)境中的任務(wù)、事物發(fā)生交互關(guān)系,其中學(xué)生是交互的主體,虛擬對象是交互的客體,主體和客體之間的交互是全方位的。(3)構(gòu)想性是虛擬現(xiàn)實(shí)是要能啟發(fā)人的創(chuàng)造性的活動,不僅要能使沉浸于此環(huán)境中的學(xué)生獲取新的指示,提高感性和理性認(rèn)識,而且要能使學(xué)生產(chǎn)生新的構(gòu)思。(4)動作性是指學(xué)生能以客觀世界的實(shí)際動作或以人類實(shí)際的方式來操作虛擬系統(tǒng),讓學(xué)生感覺到他面對的是一個真實(shí)的環(huán)境。(5)自主性是虛擬世界中物體可按各自的模型和規(guī)則自主運(yùn)動。虛擬現(xiàn)實(shí)技術(shù)特征(1)沉浸性使之所創(chuàng)造的虛擬環(huán)境能使學(xué)生產(chǎn)生18網(wǎng)絡(luò)信息技術(shù)該技術(shù)主要是建設(shè)新一代高速通信網(wǎng)絡(luò),實(shí)現(xiàn)電話網(wǎng)、有線電視網(wǎng)和互聯(lián)網(wǎng)的互聯(lián),建成綜合業(yè)務(wù)數(shù)字網(wǎng)(ISDN)。由于數(shù)字校園覆蓋的面積相對不大,可采用藍(lán)牙技術(shù)實(shí)現(xiàn)短程無線上網(wǎng),近幾年來,華北水利水電大學(xué)大學(xué)對校園網(wǎng)絡(luò)進(jìn)行了全面改造,取得了可喜的成績,實(shí)現(xiàn)了辦公樓、學(xué)生宿舍寬帶上網(wǎng),盡管有時網(wǎng)速比較差,但總體來說還是相當(dāng)不錯的。特別是最近,在校園內(nèi)也實(shí)現(xiàn)了短程無線網(wǎng)絡(luò)覆蓋,這是很令人興奮的,同學(xué)們可在校園內(nèi)隨時隨地上網(wǎng)。網(wǎng)絡(luò)信息技術(shù)該技術(shù)主要是建設(shè)新一代高速通信網(wǎng)絡(luò),實(shí)現(xiàn)電話19建模技術(shù)該技術(shù)是利用當(dāng)前比較流行的建模軟件,比如說大家經(jīng)常用的CAD、3dmax,還有就是Maya來建立出真實(shí)世界的簡化模型,然后根據(jù)現(xiàn)實(shí)的色彩、光線、視覺效果來進(jìn)行真實(shí)模型的后期渲染,這是虛擬現(xiàn)實(shí)技術(shù)的可視化表達(dá)的第一步,也是最基本的一步。在基本模型建立過程中,需要處理好各個模型的比例問題,以及拓?fù)潢P(guān)系,以便于是整個場景看起來更加協(xié)調(diào),真實(shí),美觀。建模技術(shù)該技術(shù)是利用當(dāng)前比較流行的建模軟件,比如說大家20算法設(shè)計首先是對現(xiàn)實(shí)世界的TIN約束,還有對模型的簡化剖分,這些都是需要在算法中實(shí)現(xiàn)的功能。在碰撞檢測算法中需要建立模型的格網(wǎng)索引,但是比較優(yōu)的應(yīng)該是四叉樹、八叉樹、哈希索引等方法。漫游中需要設(shè)計矩陣的變換,向量的乘法,優(yōu)化的算法會帶來更高的運(yùn)行效率和內(nèi)存的節(jié)省。算法設(shè)計首先是對現(xiàn)實(shí)世界的TIN約束,還有對模型的簡化剖21然后是實(shí)現(xiàn)三維模型在窗體中的導(dǎo)入,在導(dǎo)入的時候綜合考慮到我們的模型以及所加材質(zhì)的協(xié)調(diào)性,最關(guān)鍵的是如何將模型中已經(jīng)建立好的有一定坐標(biāo)值得模型導(dǎo)入到我們的程序去,這里涉及到坐標(biāo)轉(zhuǎn)換和相關(guān)的矩陣的運(yùn)算,向量的積。然后是實(shí)現(xiàn)三維模型在窗體中的導(dǎo)入,在導(dǎo)入的時候綜合考慮22在模型導(dǎo)入以后是最終的也是最重要的就是碰撞檢測以及漫游算法的實(shí)現(xiàn),在碰撞檢測中主要就是實(shí)現(xiàn)觀察者位置坐標(biāo)與物體坐標(biāo)的求交運(yùn)算,判斷觀察者的位置是在物體的里面還是外邊(當(dāng)然如果實(shí)現(xiàn)了碰撞檢測的話,不可能出現(xiàn)在物體的內(nèi)部),如果觀察者與物體接近時只需要將觀察者的位置沿著邊面進(jìn)行向左右或者向后面做平移,最簡單的就是不做任何處理,也不讓觀察者的位置繼續(xù)前移。漫游就是在場景中實(shí)現(xiàn)前后左右的移動,通過鍵盤來控制漫游。在模型導(dǎo)入以后是最終的也是最重要的就是碰撞檢測以及漫游算法23后期的算法是對整個系統(tǒng)的一個裝飾,比如說音效的調(diào)用,還有霧效果的添加,天空包圍盒是為了讓場景看起來更加真實(shí),同時也是對整個場景的一個外殼限制,主要的天空類型可以有正方形、球形或者是僅僅一張平面圖。后期的算法是對整個系統(tǒng)的一個裝飾,比如說音效的調(diào)用,還24第六章基礎(chǔ)建模6.1樹模型的建立6.2湖面的制作6.3路燈模型的建立6.4建筑群的制作6.5光線的處理第六章基礎(chǔ)建模6.1樹模型的建立256.1樹模型的建立在建立樹模型的時候,我們首先想到的是模型中自帶的ACE擴(kuò)展模型,顯示效果也可以,但是這些遠(yuǎn)遠(yuǎn)不能滿足我們在現(xiàn)實(shí)世界建模的需要,因此必須要實(shí)現(xiàn)自己的模型建立,另外一種方法就是我們利用軟件的毛發(fā)系統(tǒng)建立的樹模型,但是該模型也存在一定的問題,就是我們建立的模型越精細(xì),模型所占的內(nèi)存就會越大,所以這種樹模型我們不能用太多,其中最簡單的樹模型的表示方法就是直接利用樹的圖片來表示,首先利用photoshopcs6制作出黑白圖6.1樹模型的建立在建立樹模型的時候,我們首26虛擬現(xiàn)實(shí)課程設(shè)計27虛擬現(xiàn)實(shí)課程設(shè)計28虛擬現(xiàn)實(shí)課程設(shè)計29虛擬現(xiàn)實(shí)課程設(shè)計30虛擬現(xiàn)實(shí)課程設(shè)計31虛擬現(xiàn)實(shí)課程設(shè)計32虛擬現(xiàn)實(shí)課程設(shè)計33虛擬現(xiàn)實(shí)課程設(shè)計34然后在材質(zhì)球里面設(shè)置漫反射和不透明的屬性,建立出平面樹的模型最終樹的表示效果為:然后在材質(zhì)球里面設(shè)置漫反射和不透明的屬性,建立出平面樹的模型35虛擬現(xiàn)實(shí)課程設(shè)計36虛擬現(xiàn)實(shí)課程設(shè)計37虛擬現(xiàn)實(shí)課程設(shè)計38虛擬現(xiàn)實(shí)課程設(shè)計39虛擬現(xiàn)實(shí)課程設(shè)計40虛擬現(xiàn)實(shí)課程設(shè)計41虛擬現(xiàn)實(shí)課程設(shè)計426.2湖面的制作湖面的制作主要采用NUBRS曲面,通過修改點(diǎn)的位置來調(diào)整整個曲面的形狀6.2湖面的制作湖面的制作主要采用NUBRS曲面,通過修改43建立之后,利用材質(zhì)編輯球為湖面加上相應(yīng)的材質(zhì),最終的制作效果如圖所示:建立之后,利用材質(zhì)編輯球為湖面加上相應(yīng)的材質(zhì),最終的制作效果44虛擬現(xiàn)實(shí)課程設(shè)計45虛擬現(xiàn)實(shí)課程設(shè)計46虛擬現(xiàn)實(shí)課程設(shè)計476.3路燈模型的建立路燈的柱子是看似圓形的不規(guī)則圖形,但是也有一定的規(guī)律,所以可以利用軟件中的車削這一工具來制作燈柱,而對于路燈的試題本身可以是由四個平面來圍成,中間利用半徑比較小的圓柱來連接,而最上面的蓋子也可以利用NUBRS曲面來制作6.3路燈模型的建立路燈的柱子是看似圓形的不規(guī)則圖形,但是48燈柱的制作燈柱的制作49虛擬現(xiàn)實(shí)課程設(shè)計50虛擬現(xiàn)實(shí)課程設(shè)計51虛擬現(xiàn)實(shí)課程設(shè)計52虛擬現(xiàn)實(shí)課程設(shè)計53虛擬現(xiàn)實(shí)課程設(shè)計54虛擬現(xiàn)實(shí)課程設(shè)計556.4建筑群的制作在設(shè)計建筑時為了節(jié)省空間,我們主要采用了擠出的方法,但是為了更加真實(shí),需要為建筑賦予比較真實(shí)的材質(zhì),然后對于一些需要特殊處理的建筑,利用布爾或者塌陷將他們做成比較真實(shí)的外觀,本來想著利用photoshopcs6制作出比較精細(xì)的圖片,然后為建筑群賦予特別外觀,但是由于時間問題,只能做到這一步,后來有時間的話,在最后整一下吧。6.4建筑群的制作在設(shè)計建筑時為了節(jié)省空間,我們主要采用56虛擬現(xiàn)實(shí)課程設(shè)計57虛擬現(xiàn)實(shí)課程設(shè)計58虛擬現(xiàn)實(shí)課程設(shè)計59虛擬現(xiàn)實(shí)課程設(shè)計60虛擬現(xiàn)實(shí)課程設(shè)計61虛擬現(xiàn)實(shí)課程設(shè)計62虛擬現(xiàn)實(shí)課程設(shè)計63虛擬現(xiàn)實(shí)課程設(shè)計646.5光線的處理良好的光線可以讓模型的色彩不可折扣的表現(xiàn)出來,因此需要對整個場景的光線進(jìn)行設(shè)置,按數(shù)字鍵8可以調(diào)出我們的環(huán)境設(shè)置器,進(jìn)行環(huán)境光的設(shè)置當(dāng)然在場景中的所有景物、建筑都是采用對應(yīng)的工具來設(shè)置的,在此不能一一介紹,相信學(xué)過軟件的同學(xué),也都知道如何去建立這些簡單的模型。6.5光線的處理良好的光線可以讓模型的色彩不可折扣的表現(xiàn)出65最終結(jié)果展示最終結(jié)果展示66虛擬現(xiàn)實(shí)課程設(shè)計67虛擬現(xiàn)實(shí)課程設(shè)計68虛擬現(xiàn)實(shí)課程設(shè)計69虛擬現(xiàn)實(shí)課程設(shè)計70虛擬現(xiàn)實(shí)課程設(shè)計71虛擬現(xiàn)實(shí)課程設(shè)計72第七章算法設(shè)計關(guān)鍵代碼展示音效的添加模型的導(dǎo)入設(shè)置天空包圍盒漫游向量的運(yùn)算線框模式第七章算法設(shè)計關(guān)鍵代碼展示音效的添加737.1音效的添加

InitFMOD(); //初始化音頻文件FSOUND_Stream_Play(FSOUND_FREE,mp3back);//播放背景音樂returnTRUE;

//初始化成功TRUE 函數(shù)定義GLvoidInitFMOD(void){ if(FSOUND_Init(44100,32,0)) {mp3=FSOUND_Sample_Load(0,"Data/Mssj.mp3",FSOUND_2D,0); }}GLvoidFreeFMOD(void){if(mp3!=NULL) { FSOUND_Sample_Free(mp3); }}7.1音效的添加InitFMOD(); 747.2模型的導(dǎo)入打開文件 m_FilePtr=fopen(strFileName,"rb");如果文件打開失敗 if(!m_FilePtr) { sprintf(strMessage,"3DS文件不存在!",strFileName); MessageBox(NULL,strMessage,"Error",MB_OK); returnfalse; }7.2模型的導(dǎo)入打開文件75讀取3ds文件的第一個Chunk ReadChunk(&chunk);檢查是否是3ds文件 if(chunk.ID!=PRIMARY) { sprintf(strMessage,"讀取文件t失敗!",strFileName); MessageBox(NULL,strMessage,"Error",MB_OK); fclose(m_FilePtr); returnfalse; }讀取3ds文件的第一個Chunk76開始讀取3ds文件 ReadPrimary(chunk.length-6);計算每個頂點(diǎn)的法線量 ComputeNormals();關(guān)閉打開的文件 fclose(m_FilePtr); m_FilePtr=NULL;開始讀取3ds文件77對有紋理的材質(zhì)載入該紋理 for(inti=0;i<m_3DModel.numOfMaterials;i++) { if(m_3DModel.pMaterials[i].isTexMat) { if(!BuildTexture(m_3DModel.pMaterials[i].mapName.string,m_3DModel.pMaterials[i].texureId)) { //紋理載入失敗 sprintf(strMessage,"3DS紋理文件載入失??!",m_3DModel.pMaterials[i].mapName.string); MessageBox(NULL,strMessage,"Error",MB_OK); } } }對有紋理的材質(zhì)載入該紋理787.3設(shè)置天空包圍盒設(shè)置天空盒中心為a(cx,cy,cz) floatx=cx-width/2.0f; floaty=cy-height/2.0f; floatz=cz-length/2.0f;選擇天空盒背面紋理 glBindTexture(GL_TEXTURE_2D,skyTexture[0]);設(shè)置紋理的邊界的填充方式 glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_CLAMP_TO_EDGE);7.3設(shè)置天空包圍盒設(shè)置天空盒中心為a(cx,cy79開始繪制四邊形 glBegin(GL_QUADS);設(shè)置紋理坐標(biāo)和背面四邊形的四個點(diǎn)位置 glTexCoord2f(1.0f,0.0f);glVertex3f(x+width,y, z); glTexCoord2f(1.0f,1.0f);glVertex3f(x+width,y+height,z); glTexCoord2f(0.0f,1.0f);glVertex3f(x, y+height,z); glTexCoord2f(0.0f,0.0f);glVertex3f(x, y, z); glEnd();開始繪制四邊形80選擇天空盒面紋理 glBindTexture(GL_TEXTURE_2D,skyTexture[1]); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_CLAMP_TO_EDGE);選擇天空盒面紋理817.4漫游左右移動CameravoidCCamera::StrafeCamera(floatspeed){ m_vPosition.x+=m_vStrafe.x*speed; m_vPosition.z+=m_vStrafe.z*speed; m_vView.x+=m_vStrafe.x*speed; m_vView.z+=m_vStrafe.z*speed;}7.4漫游左右移動Camera82前后移動CameravoidCCamera::MoveCamera(floatspeed){ CVector3vView=m_vView-m_vPosition; m_vPosition.x+=vView.x*speed; m_vPosition.z+=vView.z*speed; m_vView.x+=vView.x*speed; m_vView.z+=vView.z*speed;}前后移動Camera83確認(rèn)鍵盤控制的移動判斷是否按下向上鍵或‘W'鍵 if(GetKeyState(VK_UP)&0x80||GetKeyState('W')&0x80) { MoveCamera(MOVESPEED); //向前移動Camera }判斷是否按下向下鍵或'S'鍵 if(GetKeyState(VK_DOWN)&0x80||GetKeyState('S')&0x80) { MoveCamera(-MOVESPEED); //向后移動Camera }確認(rèn)鍵盤控制的移動判斷是否按下向上鍵或‘W'鍵84判斷是否按下向左鍵或'A'鍵 if(GetKeyState(VK_LEFT)&0x80||GetKeyState('A')&0x80) { StrafeCamera(-MOVESPEED); //向左移動Camera }判斷是否按下向右鍵或'D'鍵 if(GetKeyState(VK_RIGHT)&0x80||GetKeyState('D')&0x80) { StrafeCamera(MOVESPEED); //向右移動Camera }判斷是否按下向左鍵或'A'鍵85向量的運(yùn)算計算向量的叉乘CVector3CVector3::CrossProduct(constCVector3&rhs)const{ returnCVector3(y*rhs.z-z*rhs.y,z*rhs.x-x*rhs.z,x*rhs.y-y*rhs.x);}計算向量的點(diǎn)乘floatCVector3::DotProduct(constCVector3&rhs)const{ returnx*rhs.x+y*rhs.y+z*rhs.z;}向量的運(yùn)算計算向量的叉乘86計算向量的長度floatCVector3::GetLength()const{ return(float)sqrt((x*x)+(y*y)+(z*z));}計算向量的長度的平方floatCVector3::GetSquaredLength()const{ return(x*x)+(y*y)+(z*z);}計算向量的長度87向量的旋轉(zhuǎn)繞X軸旋轉(zhuǎn)向量,返回旋轉(zhuǎn)后的向量CVector3CVector3::GetRotatedX(doubleangle)const{ if(angle==0.0) return(*this); floatsinAngle=(float)sin(M_PI*angle/180); floatcosAngle=(float)cos(M_PI*angle/180); returnCVector3(x,y*cosAngle-z*sinAngle,y*sinAngle+z*cosAngle);}繞X軸旋轉(zhuǎn)向量voidCVector3::RotateX(doubleangle){ (*this)=GetRotatedX(angle);}向量的旋轉(zhuǎn)繞X軸旋轉(zhuǎn)向量,返回旋轉(zhuǎn)后的向量887.5線框模式If(linemodel){glPolygonMode(GL_FRONT_AND_BACK,GL_LINE);}Else{glPolygonMode(GL_FRONT_AND_BACK,GL_FULL);}7.5線框模式If(linemodel)89第八章主要技術(shù)難題及解決方案模型建立之平面樹的建立模型建立之模型過大模型渲染之材質(zhì)的顯示與隱藏算法設(shè)計之3dmax文檔的導(dǎo)入、碰撞檢測、漫游算法設(shè)計之天空包圍盒第八章主要技術(shù)難題及解決方案模型建立之平面樹的建立90模型建立之平面樹的建立在建立樹模型的時候可以有以下幾種方法:

一是:就是最簡單的利用軟件中自帶的已經(jīng)建立好的模型;

二是:利用建模軟件的毛發(fā)系統(tǒng),可以制作出比較精細(xì)的樹模,尤其對于柳樹這一類線條比較明顯的樹木,效果比較好;

三是:對于一些有葉子的樹木,我們可以首先制作出葉子和樹干以及樹枝這些基本的模型,然后利用合并將葉子有序的加載到樹枝上,制作出精美的樹木來;四是:也是最簡單的樹模型,就是直接用一張簡單的樹木的照片來表示樹木,實(shí)際卻是一張照片。

當(dāng)然還有最最最為簡單的一種就是你什么都不用想,直接去找“度娘”,然后點(diǎn)擊下載按鈕就可以了。模型建立之平面樹的建立在建立樹模型的時候可以有以下幾種方法:91

對于用照片來顯示樹模型的方法來說,首先需要利用PS軟件來制作出需要顯示的樹木的照片的黑白兩色的照片副本來,然后同時保留著兩張照片,打開材質(zhì)編輯器,在其中一個未用的材質(zhì)編輯球里面加載一張彩色的樹的照片,然后在不透明度上設(shè)置為圖片的黑白副本的照片。然后將材質(zhì)加載到一個平面上,就可以制作出和照片中一模一樣的樹模型,設(shè)置為黑白圖片是因為在有些軟件中默認(rèn)為不可見,而白色是可見區(qū)域,比如說在3dmax中。對于用照片來顯示樹模型的方法來說,首先需要利用PS軟件92虛擬現(xiàn)實(shí)課程設(shè)計938.2模型建立之模型過大建立模型也是在模型中增加內(nèi)容的過程,也是內(nèi)存增加的過程,隨著模型的建立,內(nèi)容會越來越多,機(jī)器會越來越慢,甚至?xí)?dǎo)致死機(jī),軟件崩潰等問題,因此提前做好備份時必須的,另外就是選擇比較好的方法去優(yōu)化我們的模型,在軟件中有相關(guān)的設(shè)置,可以幫助我們來優(yōu)化模型,對于其中的設(shè)置我們選擇最初的默認(rèn)就可以了。8.2模型建立之模型過大建立模型也是在模型中增加內(nèi)容的948.3模型渲染之材質(zhì)的顯示與隱藏為了讓整個場景看起來更加真實(shí),我們選擇在加材質(zhì)的時候就讓其顯示在模型上面,但是對于其中一些是無法顯示的,只有在渲染的時候才可以在場景中看到我們最為真實(shí)的模型,這是我們不想發(fā)生的,因此需要尋找一定的方法來顯示我們所有材質(zhì),比如說通過調(diào)整坐標(biāo),對象坐標(biāo)、世界坐標(biāo)、實(shí)際通道等。尤其在平面樹的建立過程中,該問題特別棘手。因為物體的才是有涉及到透明問題。8.3模型渲染之材質(zhì)的顯示與隱藏為了讓整個場景看起958.4算法設(shè)計之3dmax文檔的導(dǎo)入、碰撞檢測、漫游首先在到導(dǎo)入模型的時候要考慮模型過大的問題,為此我們已經(jīng)在模型建立的過程中對模型進(jìn)行了優(yōu)化;在添加碰撞檢測的時候,其實(shí)就是最基本的求交運(yùn)算,在前面我們已經(jīng)提到對我們的模型進(jìn)行三角剖分,或者四邊形剖分,以及建立TIN約束在漫游算法中,是有一個觀察點(diǎn)的位置,有一個觀察方向,然后給觀察這一個前進(jìn)的速度就可以實(shí)現(xiàn)前進(jìn)或者后退8.4算法設(shè)計之3dmax文檔的導(dǎo)入、碰撞檢測、漫游首先968.5算法設(shè)計之天空包圍盒天空可以讓整個場景都變得更加真實(shí),更加清晰。在天空設(shè)計的時候,我們可以制作成方塊形狀,也可以制作成球形的天空包圍盒。8.5算法設(shè)計之天空包圍盒天空可以讓整個場景都變得更加97第九章結(jié)束語通過此次課程設(shè)計,我們學(xué)到了許多知識,其中最重要的就是團(tuán)隊合作精神的確立,這是做一項團(tuán)體工作的基礎(chǔ),另外在設(shè)計的過程中,我們一邊自學(xué)完成vc++6.0,一邊復(fù)習(xí)使用一起拿學(xué)過的3dmax軟件進(jìn)行建模,同時使用了photoshopcs6來處理一些照片,以備以后材質(zhì)和基礎(chǔ)模型的建立使用。第九章結(jié)束語通過此次課程設(shè)計,我們學(xué)到了許多知識,其98附錄小組分工:本小組共有6名成員,三個負(fù)責(zé)程序方面的設(shè)計,三個負(fù)責(zé)建模和文檔的書寫,最重成果由本小組所有成員經(jīng)過兩周的不懈努力設(shè)計而成,每個人都作出了自己不可磨滅的貢獻(xiàn),若不是本小組所有成員的努力,我們的最重成果不會如此完美,希望在以后的學(xué)習(xí)中,本小組成員能夠更加努力,精誠合作,為制作出一個完整的項目貢獻(xiàn)自己的力量。附錄小組分工:本小組共有6名成員,三個負(fù)責(zé)程序方面的設(shè)計,三99小組成員姓名(按學(xué)號):

岳湑爽201101021

羅鵬201101022

賈士琛201101024

高克陽201101025

高騫201101026

蒲軍政201101029所在院系:資源與環(huán)境學(xué)院

專業(yè):地理信息系統(tǒng)小組成員姓名(按學(xué)號):100

指導(dǎo)老師:楊成杰老師劉文玉老師

101注意事項1、數(shù)字化校園的建設(shè)是一個龐大的系統(tǒng)工程,需要有一個整體解決方案,需要統(tǒng)一的互操作標(biāo)準(zhǔn),要消除“信息孤島”;2、要處理好管理應(yīng)用與教學(xué)應(yīng)用的關(guān)系:以管理應(yīng)用為切入點(diǎn),以教學(xué)應(yīng)用為基本目標(biāo);3、在數(shù)字校園建設(shè)中,需要“三分技術(shù)、七分管理、十二分?jǐn)?shù)據(jù)”,需要管理、技術(shù)、觀念三個到位,更需要管理、技術(shù)和觀念不斷更新,而且三者要有機(jī)的結(jié)合;管理是基礎(chǔ),觀念是關(guān)鍵,技術(shù)是保障;4、數(shù)字化校園的建設(shè)會引起管理組織結(jié)構(gòu)的重組;數(shù)字化校園的建設(shè)需要人們觀念的變化,素質(zhì)的提高;注意事項1、數(shù)字化校園的建設(shè)是一個龐大的系統(tǒng)工程,需要有一個102參考文獻(xiàn):[1]陳浩磊,鄒湘軍,陳燕,劉天湖,虛擬現(xiàn)實(shí)技術(shù)的最新發(fā)展與展望[J]中國科技論文在線,2011[2]李湘德,彭斌,《虛擬現(xiàn)實(shí)技術(shù)發(fā)展綜述》,創(chuàng)新論壇,2004[3]梁華勇,《虛擬現(xiàn)實(shí)技術(shù)及其在高校中的應(yīng)用》,2005[4]吳迪,黃文騫,《虛擬現(xiàn)實(shí)技術(shù)的發(fā)展過程及研究現(xiàn)狀》,2002[5]孫倩娜,《虛擬現(xiàn)實(shí)技術(shù)的發(fā)展及其在教育中的應(yīng)用》,2011[6]陳琦麗等,《虛擬現(xiàn)實(shí)技術(shù)及其應(yīng)用》,2010[7]張菁張?zhí)祚Y陳懷友,《虛擬現(xiàn)實(shí)技術(shù)及應(yīng)用》,2011[8]郭冬青,《OpenGL高級編程與可視化系統(tǒng)開發(fā)——高級編程篇》,2006參考文獻(xiàn):[1]陳浩磊,鄒湘軍,陳燕,劉天湖,虛擬現(xiàn)實(shí)103

謝謝大家?。?!

104虛擬現(xiàn)實(shí)三維建模課程設(shè)計

——虛擬校園虛擬現(xiàn)實(shí)三維建模課程設(shè)計

——虛擬校園105目錄摘要課程設(shè)計目的虛擬校園概念及建設(shè)目標(biāo)功能展示數(shù)據(jù)來源關(guān)鍵技術(shù)小結(jié)目錄摘要106系統(tǒng)設(shè)計架構(gòu)圖系統(tǒng)設(shè)計架構(gòu)圖107摘要為了在計算機(jī)中更好的表現(xiàn)現(xiàn)實(shí)的世界,讓我們能夠更加真實(shí)地在計算機(jī)世界中展現(xiàn)出現(xiàn)實(shí)世界的魅力,也為了讓更多的人們看到我們在現(xiàn)實(shí)世界中不可能見到的場景,我們利用虛擬現(xiàn)實(shí)技術(shù)和可視化技術(shù)更好的實(shí)現(xiàn)了這一點(diǎn)。與此同時高校的數(shù)字化校園建設(shè)是一個涵蓋范圍很廣的領(lǐng)域,其建設(shè)過程所需要解決的問題也相當(dāng)復(fù)雜。本文針對華北水利水電大學(xué)的校園的具體情況,分析建設(shè)數(shù)字校園的目的,選擇建設(shè)數(shù)字校園的關(guān)鍵技術(shù)及方法,提出數(shù)字校園應(yīng)該具備那些基本功能,并詳細(xì)討論實(shí)現(xiàn)相關(guān)功能的過程和手段。摘要為了在計算機(jī)中更好的表現(xiàn)現(xiàn)實(shí)的世界,讓我們能108課程設(shè)計開發(fā)目的我國高校信息系統(tǒng)建設(shè)始于20世紀(jì)80年代,當(dāng)時主要是單機(jī)版應(yīng)用,解決重點(diǎn)業(yè)務(wù)環(huán)節(jié)的電算化,替代高強(qiáng)度的手工勞動,如排課系統(tǒng)、賬務(wù)管理系統(tǒng)、人員管理系統(tǒng)等。當(dāng)前許多高校都在積極研究虛擬現(xiàn)實(shí)技術(shù)及其應(yīng)用,并相繼建起了虛擬現(xiàn)實(shí)與系統(tǒng)仿真的研究室,將科研成果迅速轉(zhuǎn)化實(shí)用技術(shù),如北京航天航空大學(xué)在分布式飛行模擬方面的應(yīng)用;浙江大學(xué)在建筑方面進(jìn)行虛擬規(guī)劃、虛擬設(shè)計的應(yīng)用;哈爾濱工業(yè)大學(xué)在人機(jī)交互方面的應(yīng)用;清華大學(xué)對臨場感的研究等都頗具特色。有的研究室甚至已經(jīng)具備獨(dú)立承接大型虛擬現(xiàn)實(shí)項目的實(shí)力。虛擬學(xué)習(xí)環(huán)境虛擬現(xiàn)實(shí)技術(shù)能夠為學(xué)生提供生動、逼真的學(xué)習(xí)環(huán)境,如建造人體模型、電腦太空旅行、化合物分子結(jié)構(gòu)顯示等,在廣泛的科目領(lǐng)域提供無限的虛擬體驗,從而加速和鞏固學(xué)生學(xué)習(xí)知識的過程。親身去經(jīng)歷、親身去感受比空洞抽象的說教更具說服力,主動地去交互與被動的灌輸,有本質(zhì)的差別。虛擬實(shí)驗利用虛擬現(xiàn)實(shí)技術(shù),可以建立各種虛擬實(shí)驗室,如地理、物理、化學(xué)、生物實(shí)驗室等等,擁有傳統(tǒng)實(shí)驗室難以比擬的優(yōu)勢。課程設(shè)計開發(fā)目的我國高校信息系統(tǒng)建設(shè)始于20世109第二章數(shù)字化校園的概念、建設(shè)目標(biāo)2.1數(shù)字化校園的概念2.2數(shù)字化校園的建設(shè)目標(biāo)2.2.1在教學(xué)方面2.2.2在科研方面2.2.3在管理方面2.2.4在公共服務(wù)體系方面2.2.5在學(xué)校社區(qū)服務(wù)方面第二章數(shù)字化校園的概念、建設(shè)目標(biāo)2.1數(shù)字化校園的概念1102.1數(shù)字化校園的概念傳統(tǒng)上說,數(shù)字化校園是在傳統(tǒng)校園的基礎(chǔ)上,利用先進(jìn)的信息化手段和工具,以統(tǒng)一的管理和安全策略,將校園各項資源數(shù)字化,形成的一個數(shù)字空間,使得現(xiàn)實(shí)校園在空間和時間上延伸開來。包括網(wǎng)絡(luò)基礎(chǔ)設(shè)施、數(shù)據(jù)中心、網(wǎng)絡(luò)基本服務(wù)系統(tǒng)、一卡通系統(tǒng)、電話系統(tǒng)、有線電視系統(tǒng)、廣播系統(tǒng)、會議系統(tǒng)、計算中心、數(shù)字圖書館、數(shù)字多媒體教室、數(shù)字語音室、電子公告屏、安防系統(tǒng)、樓宇控制(門禁)系統(tǒng)、應(yīng)用軟件系統(tǒng)等方面。當(dāng)然這只是傳統(tǒng)意義上的概念,當(dāng)我們結(jié)合虛擬現(xiàn)實(shí)時又會產(chǎn)生出另外一種意義的數(shù)字校園,也就是我們在課程設(shè)計中需要完成的三維數(shù)字化校園。2.1數(shù)字化校園的概念傳統(tǒng)上說,數(shù)字化校園是在1112.2數(shù)字化校園的建設(shè)目標(biāo)2.2.1在教學(xué)方面充分利用網(wǎng)絡(luò)技術(shù)、多媒體技術(shù)等實(shí)現(xiàn)高質(zhì)量教學(xué)資源、信息資源和智力資源的共享與傳播,促進(jìn)高水平的師生互動,促進(jìn)主動式、協(xié)作式、研究型的學(xué)習(xí),從而形成開放的、高效的、個性化的教學(xué)模式,更好地培養(yǎng)學(xué)生的分析問題能力、解決問題能力和創(chuàng)新能力;2.2數(shù)字化校園的建設(shè)目標(biāo)2.2.1在教學(xué)方面1122.2.2在科研方面充分利用校園網(wǎng)、互聯(lián)網(wǎng),促進(jìn)科研資源和設(shè)備的共享,加快科研信息傳播,促進(jìn)國際性學(xué)術(shù)交流,開展網(wǎng)上合作研究,并且利用網(wǎng)絡(luò)促進(jìn)最新科研成果向教學(xué)領(lǐng)域的轉(zhuǎn)化,以及科研成果的產(chǎn)業(yè)化和市場化,從而大大提高科研的創(chuàng)新水平和輻射力;2.2.2在科研方面充分利用校園網(wǎng)、互聯(lián)網(wǎng),促進(jìn)科研資源和1132.2.3在管理方面充分利用現(xiàn)代信息技術(shù)實(shí)現(xiàn)職能管理的自動化、信息化,實(shí)現(xiàn)各部門之間的數(shù)據(jù)共享與協(xié)調(diào),提高決策的科學(xué)性和民主性,提高管理的質(zhì)量和效率,形成充滿活力的現(xiàn)代新型管理體制;2.2.3在管理方面充分利用現(xiàn)代信息技術(shù)實(shí)現(xiàn)職能管理的自1142.2.4在公共服務(wù)體系方面建立覆蓋全校的、主干千兆的高速網(wǎng)絡(luò),提高面向全校師生的基本網(wǎng)絡(luò)服務(wù)、正版軟件服務(wù)、技術(shù)支持服務(wù)等等;建立高質(zhì)量的數(shù)字化的圖書館、多媒體教室、語音室、會議室等;在校園內(nèi)建立統(tǒng)一的電子身份認(rèn)證系統(tǒng),從而為學(xué)校高水平的教學(xué)、科研和管理等提供強(qiáng)有力的支撐;2.2.4在公共服務(wù)體系方面建立覆蓋全校的、主干千兆的1152.2.5在學(xué)校社區(qū)服務(wù)方面

結(jié)合后勤社會化改革的需要,建立電子化的社區(qū)服務(wù)環(huán)境,網(wǎng)絡(luò)、電話、有線電視進(jìn)入社區(qū),并開展各種網(wǎng)絡(luò)化、電子化的服務(wù)項目,如一卡通電子商務(wù)、電子醫(yī)療、電子監(jiān)控等,為師生員工提供便捷、高效、集成、健康的生活和休閑娛樂服務(wù),形成智能型的社區(qū)服務(wù)系統(tǒng)。2.2.5在學(xué)校社區(qū)服務(wù)方面結(jié)合后勤社會化改革的需116小結(jié)其實(shí),數(shù)字化校園是一個過程、一種境界。它隨著技術(shù)的發(fā)展而發(fā)展,隨著人們辦公方式和習(xí)慣以及管理思想變化而變化。

小結(jié)其實(shí),數(shù)字化校園是一個過程、一種境界。它隨著技術(shù)的發(fā)117第三章功能展示3.1模型的建立3.1.1樹模型的建立3.1.2湖面模型3.1.3路燈模型3.1.4光線設(shè)置3.2算法功能展示3.2.1三維模型的導(dǎo)入3.2.2音效的添加3.2.3霧效果3.2.4漫游3.2.5線框模型3.2.6天空包圍盒第三章功能展示3.1模型的建立118第四章數(shù)據(jù)來源

空間數(shù)據(jù)獲取技術(shù)主要有遙感、遙測、GPS等技術(shù),屬性數(shù)據(jù)的獲取技術(shù)主要有傳統(tǒng)測量、統(tǒng)計資料等。在數(shù)字校園系統(tǒng)中,數(shù)據(jù)的存儲管理方式尤為重要,它決定了數(shù)據(jù)處理及空間查詢等諸多功能的運(yùn)行效率。通過數(shù)字地球技術(shù)獲取華北水利水電大學(xué)的空間信息,比如地理位置,建筑物情況,學(xué)校道路等,加以儲存和組織,以此建設(shè)虛擬校園,更為建設(shè)“數(shù)字校園”作鋪墊。

通過將實(shí)際測量的數(shù)據(jù)導(dǎo)入到計算機(jī),然后基于AutoCAD利用南方CASE進(jìn)行繪圖,繪制出校園的基本地形圖平面模型,為后期的基礎(chǔ)建模準(zhǔn)備數(shù)據(jù)。第四章數(shù)據(jù)來源空間數(shù)據(jù)獲取技術(shù)主要有遙感、遙119第五章數(shù)字校園的關(guān)鍵技術(shù)及方法虛擬現(xiàn)實(shí)技術(shù)建模技術(shù)數(shù)據(jù)庫技術(shù)網(wǎng)絡(luò)信息技術(shù)算法設(shè)計第五章數(shù)字校園的關(guān)鍵技術(shù)及方法虛擬現(xiàn)實(shí)技術(shù)120虛擬現(xiàn)實(shí)技術(shù)的概念虛擬現(xiàn)實(shí)(VirtualReality)是指運(yùn)用計算機(jī)技術(shù)生成一個逼真的、并具有視覺、聽覺、觸覺等效果的可交互、動態(tài)世界,人們可以對該虛擬世界中的虛擬實(shí)體進(jìn)行操縱和考察。它的基礎(chǔ)是高級的三維圖形技術(shù)、問題求解工具、多媒體技術(shù)、網(wǎng)絡(luò)通信技術(shù)、數(shù)據(jù)庫、信息系統(tǒng)、專家系統(tǒng)、面向?qū)ο蠹夹g(shù)和智能決策支持系統(tǒng)等技術(shù)的集成。虛擬現(xiàn)實(shí)技術(shù)的概念虛擬現(xiàn)實(shí)(VirtualRe121虛擬現(xiàn)實(shí)技術(shù)特征(1)沉浸性使之所創(chuàng)造的虛擬環(huán)境能使學(xué)生產(chǎn)生“身臨其境”感覺,使其相信在虛擬環(huán)境中人也是確實(shí)存在的,而且在操作過程中它可以自始至終的發(fā)揮作用,就像真正的客觀世界一樣。(2)交互性是在虛擬環(huán)境中,學(xué)生如同在真實(shí)的環(huán)境中一樣與虛擬環(huán)境中的任務(wù)、事物發(fā)生交互關(guān)系,其中學(xué)生是交互的主體,虛擬對象是交互的客體,主體和客體之間的交互是全方位的。(3)構(gòu)想性是虛擬現(xiàn)實(shí)是要能啟發(fā)人的創(chuàng)造性的活動,不僅要能使沉浸于此環(huán)境中的學(xué)生獲取新的指示,提高感性和理性認(rèn)識,而且要能使學(xué)生產(chǎn)生新的構(gòu)思。(4)動作性是指學(xué)生能以客觀世界的實(shí)際動作或以人類實(shí)際的方式來操作虛擬系統(tǒng),讓學(xué)生感覺到他面對的是一個真實(shí)的環(huán)境。(5)自主性是虛擬世界中物體可按各自的模型和規(guī)則自主運(yùn)動。虛擬現(xiàn)實(shí)技術(shù)特征(1)沉浸性使之所創(chuàng)造的虛擬環(huán)境能使學(xué)生產(chǎn)生122網(wǎng)絡(luò)信息技術(shù)該技術(shù)主要是建設(shè)新一代高速通信網(wǎng)絡(luò),實(shí)現(xiàn)電話網(wǎng)、有線電視網(wǎng)和互聯(lián)網(wǎng)的互聯(lián),建成綜合業(yè)務(wù)數(shù)字網(wǎng)(ISDN)。由于數(shù)字校園覆蓋的面積相對不大,可采用藍(lán)牙技術(shù)實(shí)現(xiàn)短程無線上網(wǎng),近幾年來,華北水利水電大學(xué)大學(xué)對校園網(wǎng)絡(luò)進(jìn)行了全面改造,取得了可喜的成績,實(shí)現(xiàn)了辦公樓、學(xué)生宿舍寬帶上網(wǎng),盡管有時網(wǎng)速比較差,但總體來說還是相當(dāng)不錯的。特別是最近,在校園內(nèi)也實(shí)現(xiàn)了短程無線網(wǎng)絡(luò)覆蓋,這是很令人興奮的,同學(xué)們可在校園內(nèi)隨時隨地上網(wǎng)。網(wǎng)絡(luò)信息技術(shù)該技術(shù)主要是建設(shè)新一代高速通信網(wǎng)絡(luò),實(shí)現(xiàn)電話123建模技術(shù)該技術(shù)是利用當(dāng)前比較流行的建模軟件,比如說大家經(jīng)常用的CAD、3dmax,還有就是Maya來建立出真實(shí)世界的簡化模型,然后根據(jù)現(xiàn)實(shí)的色彩、光線、視覺效果來進(jìn)行真實(shí)模型的后期渲染,這是虛擬現(xiàn)實(shí)技術(shù)的可視化表達(dá)的第一步,也是最基本的一步。在基本模型建立過程中,需要處理好各個模型的比例問題,以及拓?fù)潢P(guān)系,以便于是整個場景看起來更加協(xié)調(diào),真實(shí),美觀。建模技術(shù)該技術(shù)是利用當(dāng)前比較流行的建模軟件,比如說大家124算法設(shè)計首先是對現(xiàn)實(shí)世界的TIN約束,還有對模型的簡化剖分,這些都是需要在算法中實(shí)現(xiàn)的功能。在碰撞檢測算法中需要建立模型的格網(wǎng)索引,但是比較優(yōu)的應(yīng)該是四叉樹、八叉樹、哈希索引等方法。漫游中需要設(shè)計矩陣的變換,向量的乘法,優(yōu)化的算法會帶來更高的運(yùn)行效率和內(nèi)存的節(jié)省。算法設(shè)計首先是對現(xiàn)實(shí)世界的TIN約束,還有對模型的簡化剖125然后是實(shí)現(xiàn)三維模型在窗體中的導(dǎo)入,在導(dǎo)入的時候綜合考慮到我們的模型以及所加材質(zhì)的協(xié)調(diào)性,最關(guān)鍵的是如何將模型中已經(jīng)建立好的有一定坐標(biāo)值得模型導(dǎo)入到我們的程序去,這里涉及到坐標(biāo)轉(zhuǎn)換和相關(guān)的矩陣的運(yùn)算,向量的積。然后是實(shí)現(xiàn)三維模型在窗體中的導(dǎo)入,在導(dǎo)入的時候綜合考慮126在模型導(dǎo)入以后是最終的也是最重要的就是碰撞檢測以及漫游算法的實(shí)現(xiàn),在碰撞檢測中主要就是實(shí)現(xiàn)觀察者位置坐標(biāo)與物體坐標(biāo)的求交運(yùn)算,判斷觀察者的位置是在物體的里面還是外邊(當(dāng)然如果實(shí)現(xiàn)了碰撞檢測的話,不可能出現(xiàn)在物體的內(nèi)部),如果觀察者與物體接近時只需要將觀察者的位置沿著邊面進(jìn)行向左右或者向后面做平移,最簡單的就是不做任何處理,也不讓觀察者的位置繼續(xù)前移。漫游就是在場景中實(shí)現(xiàn)前后左右的移動,通過鍵盤來控制漫游。在模型導(dǎo)入以后是最終的也是最重要的就是碰撞檢測以及漫游算法127后期的算法是對整個系統(tǒng)的一個裝飾,比如說音效的調(diào)用,還有霧效果的添加,天空包圍盒是為了讓場景看起來更加真實(shí),同時也是對整個場景的一個外殼限制,主要的天空類型可以有正方形、球形或者是僅僅一張平面圖。后期的算法是對整個系統(tǒng)的一個裝飾,比如說音效的調(diào)用,還128第六章基礎(chǔ)建模6.1樹模型的建立6.2湖面的制作6.3路燈模型的建立6.4建筑群的制作6.5光線的處理第六章基礎(chǔ)建模6.1樹模型的建立1296.1樹模型的建立在建立樹模型的時候,我們首先想到的是模型中自帶的ACE擴(kuò)展模型,顯示效果也可以,但是這些遠(yuǎn)遠(yuǎn)不能滿足我們在現(xiàn)實(shí)世界建模的需要,因此必須要實(shí)現(xiàn)自己的模型建立,另外一種方法就是我們利用軟件的毛發(fā)系統(tǒng)建立的樹模型,但是該模型也存在一定的問題,就是我們建立的模型越精細(xì),模型所占的內(nèi)存就會越大,所以這種樹模型我們不能用太多,其中最簡單的樹模型的表示方法就是直接利用樹的圖片來表示,首先利用photoshopcs6制作出黑白圖6.1樹模型的建立在建立樹模型的時候,我們首130虛擬現(xiàn)實(shí)課程設(shè)計131虛擬現(xiàn)實(shí)課程設(shè)計132虛擬現(xiàn)實(shí)課程設(shè)計133虛擬現(xiàn)實(shí)課程設(shè)計134虛擬現(xiàn)實(shí)課程設(shè)計135虛擬現(xiàn)實(shí)課程設(shè)計136虛擬現(xiàn)實(shí)課程設(shè)計137虛擬現(xiàn)實(shí)課程設(shè)計138然后在材質(zhì)球里面設(shè)置漫反射和不透明的屬性,建立出平面樹的模型最終樹的表示效果為:然后在材質(zhì)球里面設(shè)置漫反射和不透明的屬性,建立出平面樹的模型139虛擬現(xiàn)實(shí)課程設(shè)計140虛擬現(xiàn)實(shí)課程設(shè)計141虛擬現(xiàn)實(shí)課程設(shè)計142虛擬現(xiàn)實(shí)課程設(shè)計143虛擬現(xiàn)實(shí)課程設(shè)計144虛擬現(xiàn)實(shí)課程設(shè)計145虛擬現(xiàn)實(shí)課程設(shè)計1466.2湖面的制作湖面的制作主要采用NUBRS曲面,通過修改點(diǎn)的位置來調(diào)整整個曲面的形狀6.2湖面的制作湖面的制作主要采用NUBRS曲面,通過修改147建立之后,利用材質(zhì)編輯球為湖面加上相應(yīng)的材質(zhì),最終的制作效果如圖所示:建立之后,利用材質(zhì)編輯球為湖面加上相應(yīng)的材質(zhì),最終的制作效果148虛擬現(xiàn)實(shí)課程設(shè)計149虛擬現(xiàn)實(shí)課程設(shè)計150虛擬現(xiàn)實(shí)課程設(shè)計1516.3路燈模型的建立路燈的柱子是看似圓形的不規(guī)則圖形,但是也有一定的規(guī)律,所以可以利用軟件中的車削這一工具來制作燈柱,而對于路燈的試題本身可以是由四個平面來圍成,中間利用半徑比較小的圓柱來連接,而最上面的蓋子也可以利用NUBRS曲面來制作6.3路燈模型的建立路燈的柱子是看似圓形的不規(guī)則圖形,但是152燈柱的制作燈柱的制作153虛擬現(xiàn)實(shí)課程設(shè)計154虛擬現(xiàn)實(shí)課程設(shè)計155虛擬現(xiàn)實(shí)課程設(shè)計156虛擬現(xiàn)實(shí)課程設(shè)計157虛擬現(xiàn)實(shí)課程設(shè)計158虛擬現(xiàn)實(shí)課程設(shè)計1596.4建筑群的制作在設(shè)計建筑時為了節(jié)省空間,我們主要采用了擠出的方法,但是為了更加真實(shí),需要為建筑賦予比較真實(shí)的材質(zhì),然后對于一些需要特殊處理的建筑,利用布爾或者塌陷將他們做成比較真實(shí)的外觀,本來想著利用photoshopcs6制作出比較精細(xì)的圖片,然后為建筑群賦予特別外觀,但是由于時間問題,只能做到這一步,后來有時間的話,在最后整一下吧。6.4建筑群的制作在設(shè)計建筑時為了節(jié)省空間,我們主要采用160虛擬現(xiàn)實(shí)課程設(shè)計161虛擬現(xiàn)實(shí)課程設(shè)計162虛擬現(xiàn)實(shí)課程設(shè)計163虛擬現(xiàn)實(shí)課程設(shè)計164虛擬現(xiàn)實(shí)課程設(shè)計165虛擬現(xiàn)實(shí)課程設(shè)計166虛擬現(xiàn)實(shí)課程設(shè)計167虛擬現(xiàn)實(shí)課程設(shè)計1686.5光線的處理良好的光線可以讓模型的色彩不可折扣的表現(xiàn)出來,因此需要對整個場景的光線進(jìn)行設(shè)置,按數(shù)字鍵8可以調(diào)出我們的環(huán)境設(shè)置器,進(jìn)行環(huán)境光的設(shè)置當(dāng)然在場景中的所有景物、建筑都是采用對應(yīng)的工具來設(shè)置的,在此不能一一介紹,相信學(xué)過軟件的同學(xué),也都知道如何去建立這些簡單的模型。6.5光線的處理良好的光線可以讓模型的色彩不可折扣的表現(xiàn)出169最終結(jié)果展示最終結(jié)果展示170虛擬現(xiàn)實(shí)課程設(shè)計171虛擬現(xiàn)實(shí)課程設(shè)計172虛擬現(xiàn)實(shí)課程設(shè)計173虛擬現(xiàn)實(shí)課程設(shè)計174虛擬現(xiàn)實(shí)課程設(shè)計175虛擬現(xiàn)實(shí)課程設(shè)計176第七章算法設(shè)計關(guān)鍵代碼展示音效的添加模型的導(dǎo)入設(shè)置天空包圍盒漫游向量的運(yùn)算線框模式第七章算法設(shè)計關(guān)鍵代碼展示音效的添加1777.1音效的添加

InitFMOD(); //初始化音頻文件FSOUND_Stream_Play(FSOUND_FREE,mp3back);//播放背景音樂returnTRUE;

//初始化成功TRUE 函數(shù)定義GLvoidInitFMOD(void){ if(FSOUND_Init(44100,32,0)) {mp3=FSOUND_Sample_Load(0,"Data/Mssj.mp3",FSOUND_2D,0); }}GLvoidFreeFMOD(void){if(mp3!=NULL) { FSOUND_Sample_Free(mp3); }}7.1音效的添加InitFMOD(); 1787.2模型的導(dǎo)入打開文件 m_FilePtr=fopen(strFileName,"rb");如果文件打開失敗 if(!m_FilePtr) { sprintf(strMessage,"3DS文件不存在!",strFileName); MessageBox(NULL,strMessage,"Error",MB_OK); returnfalse; }7.2模型的導(dǎo)入打開文件179讀取3ds文件的第一個Chunk ReadChunk(&chunk);檢查是否是3ds文件 if(chunk.ID!=PRIMARY) { sprintf(strMessage,"讀取文件t失敗!",strFileName); MessageBox(NULL,strMessage,"Error",MB_OK); fclose(m_FilePtr); returnfalse; }讀取3ds文件的第一個Chunk180開始讀取3ds文件 ReadPrimary(chunk.length-6);計算每個頂點(diǎn)的法線量 ComputeNormals();關(guān)閉打開的文件 fclose(m_FilePtr); m_FilePtr=NULL;開始讀取3ds文件181對有紋理的材質(zhì)載入該紋理 for(inti=0;i<m_3DModel.numOfMaterials;i++) { if(m_3DModel.pMaterials[i].isTexMat) { if(!BuildTexture(m_3DModel.pMaterials[i].mapName.string,m_3DModel.pMaterials[i].texureId)) { //紋理載入失敗 sprintf(strMessage,"3DS紋理文件載入失??!",m_3DModel.pMaterials[i].mapName.string); MessageBox(NULL,strMessage,"Error",MB_OK); } } }對有紋理的材質(zhì)載入該紋理1827.3設(shè)置天空包圍盒設(shè)置天空盒中心為a(cx,cy,cz) floatx=cx-width/2.0f; floaty=cy-height/2.0f; floatz=cz-length/2.0f;選擇天空盒背面紋理 glBindTexture(GL_TEXTURE_2D,skyTexture[0]);設(shè)置紋理的邊界的填充方式 glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_CLAMP_TO_EDGE);7.3設(shè)置天空包圍盒設(shè)置天空盒中心為a(cx,cy183開始繪制四邊形 glBegin(GL_QUADS);設(shè)置紋理坐標(biāo)和背面四邊形的四個點(diǎn)位置 glTexCoord2f(1.0f,0.0f);glVertex3f(x+width,y, z); glTexCoord2f(1.0f,1.0f);glVertex3f(x+width,y+height,z); glTexCoord2f(0.0f,1.0f);glVertex3f(x, y+height,z); glTexCoord2f(0.0f,0.0f);glVertex3f(x, y, z); glEnd();開始繪制四邊形184選擇天空盒面紋理 glBindTexture(GL_TEXTURE_2D,skyTexture[1]); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_CLAMP_TO_EDGE);選擇天空盒面紋理1857.4漫游左右移動CameravoidCCamera::StrafeCamera(floatspeed){ m_vPosition.x+=m_vStrafe.x*speed; m_vPosition.z+=m_vStrafe.z*speed; m_vView.x+=m_vStrafe.x*speed; m_vView.z+=m_vStrafe.z*speed;}7.4漫游左右移動Camera186前后移動CameravoidCCamera::MoveCamera(floatspeed){ CVector3vView=m_vView-m_vPosition; m_vPosition.x+=vView.x*speed; m_vPosition.z+=vView.z*speed; m_vView.x+=vView.x*speed; m_vView.z+=vView.z*speed;}前后移動Camera187確認(rèn)鍵盤控制的移動判斷是否按下向上鍵或‘W'鍵 if(GetKeyState(VK_UP)&0x80||GetKeyState('W')&0x80) { MoveCamera(MOVESPEED); //向前移動Camera }判斷是否按下向下鍵或'S'鍵 if(GetKeyState(VK_DOWN)&0x80||GetKeyState('S')&0x80) { MoveCamera(-MOVESPEED); //向后移動Camera }確認(rèn)鍵盤控制的移動判斷是否按下向上鍵或‘W'鍵188判斷是否按下向左鍵或'A'鍵 if(GetKeyState(VK_LEFT)&0x80||GetKeyState('A')&0x80) { StrafeCamera(-MOVESPEED); //向左移動Camera }判斷是否按下向右鍵或'D'鍵 if(GetKeyState(VK_RIGHT)&0x80||GetKeyState('D')&0x80) { StrafeCamera(MOVESPEED); //向右移動Camera }判斷是否按下向左鍵或'A'鍵189向量的運(yùn)算計算向量的叉乘CVector3CVector3::CrossProduct(constCVector3&rhs)const{ returnCVector3(y*rhs.z-z*rhs.y,z*rhs.x-x*rhs.z,x*rhs.y-y*rhs.x);}計算向量的點(diǎn)乘floatCVector3::DotProduct(constCVector3&rhs)const{ returnx*rhs.x+y*rhs.y+z*rhs.z;}向量的運(yùn)算計算向量的叉乘190計算向量的長度floatCVector3::GetLength()const{ return(float)sqrt((x*x)+(y*y)+(z*z));}計算向量的長度的平方floatCVector3::GetSquaredLength()const{ return(x*x)+(y*y)+(z*z);}計算向量的長度191向量的旋轉(zhuǎn)繞X軸旋轉(zhuǎn)向量,返回旋轉(zhuǎn)后的向量CVector3CVector3::GetRotatedX(doubleangle)const{ if(angle==0.0) return(*this); floatsinAngle=(float)sin(M_PI*angle/180); floatcosAngle=(float)cos(M_PI*angle/180); returnCVector3(x,y*cosAngle-z*sinAngle,y*sinAngle+z*cosAngle);}繞X軸旋轉(zhuǎn)向量voidCVector3::RotateX(doubleangle){ (*this)=GetRotatedX(angle);}向量的旋轉(zhuǎn)繞X軸旋轉(zhuǎn)向量,返回旋轉(zhuǎn)后的向量1927.5線框模式If(linemodel){glPolygonMode(GL_FRONT_AND_BACK,GL_LINE);}Else{glPolygonMode(GL_FRONT_AND_BACK,GL_FULL);}7.5線框模式If(linemodel)193第八章主要技術(shù)難題及解決方案模型建立之平面樹的建立模型建立之模型過大模型渲染之材質(zhì)的顯示與隱藏算法設(shè)計之3dmax文檔的導(dǎo)入、碰撞檢測、漫游算法設(shè)計之天空包圍盒第八章主要技術(shù)難題及解決方案模型建立之平面樹的建立194模型建立之平面樹的建立在建立樹模型的時候可以有以下幾種方法:

一是:就是最簡單的利

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論