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

下載本文檔

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

文檔簡(jiǎn)介

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

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

第三章功能展現(xiàn)3.1模型的建立3.1.1樹模型的建立3.1.2湖面模型3.1.3路燈模型3.1.4光線設(shè)置3.2算法功能展現(xiàn)3.2.1三維模型的導(dǎo)入3.2.2音效的添加3.2.3霧效果3.2.4遨游3.2.5線框模型3.2.6天空包圍盒第四章數(shù)據(jù)來源空間數(shù)據(jù)獲取技術(shù)主要有遙感、遙測(cè)、GPS等技術(shù),屬性數(shù)據(jù)的獲取技術(shù)主要有傳統(tǒng)丈量、統(tǒng)計(jì)資料等。在數(shù)字校園系統(tǒng)中,數(shù)據(jù)的存儲(chǔ)管理方式尤為重要,它決議了數(shù)據(jù)處置及空間查詢等諸多功能的運(yùn)轉(zhuǎn)效率。經(jīng)過數(shù)字地球技術(shù)獲取華北水利水電大學(xué)的空間信息,比如地理位置,建筑物情況,學(xué)校道路等,加以儲(chǔ)存和組織,以此建立虛擬校園,更為建立“數(shù)字校園〞作鋪墊。

經(jīng)過將實(shí)踐丈量的數(shù)據(jù)導(dǎo)入到計(jì)算機(jī),然后基于AutoCAD利用南方CASE進(jìn)展繪圖,繪制出校園的根本地形圖平面模型,為后期的根底建模預(yù)備數(shù)據(jù)。第五章數(shù)字校園的關(guān)鍵技術(shù)及方法虛擬現(xiàn)實(shí)技術(shù)建模技術(shù)數(shù)據(jù)庫(kù)技術(shù)網(wǎng)絡(luò)信息技術(shù)算法設(shè)計(jì)虛擬現(xiàn)實(shí)技術(shù)的概念虛擬現(xiàn)實(shí)〔VirtualReality〕是指運(yùn)用計(jì)算機(jī)技術(shù)生成一個(gè)逼真的、并具有視覺、聽覺、觸覺等效果的可交互、動(dòng)態(tài)世界,人們可以對(duì)該虛擬世界中的虛擬實(shí)體進(jìn)展支配和調(diào)查。它的根底是高級(jí)的三維圖形技術(shù)、問題求解工具、多媒體技術(shù)、網(wǎng)絡(luò)通訊技術(shù)、數(shù)據(jù)庫(kù)、信息系統(tǒng)、專家系統(tǒng)、面向?qū)ο蠹夹g(shù)和智能決策支持系統(tǒng)等技術(shù)的集成。虛擬現(xiàn)實(shí)技術(shù)特征〔1〕沉浸性使之所發(fā)明的虛擬環(huán)境能使學(xué)消費(fèi)生“身臨其境〞覺得,使其置信在虛擬環(huán)境中人也是確實(shí)存在的,而且在操作過程中它可以自始至終的發(fā)揚(yáng)作用,就像真正的客觀世界一樣?!?〕交互性是在虛擬環(huán)境中,學(xué)生好像在真實(shí)的環(huán)境中一樣與虛擬環(huán)境中的義務(wù)、事物發(fā)生交互關(guān)系,其中學(xué)生是交互的主體,虛擬對(duì)象是交互的客體,主體和客體之間的交互是全方位的?!?〕想象性是虛擬現(xiàn)實(shí)是要能啟發(fā)人的發(fā)明性的活動(dòng),不僅要能使沉浸于此環(huán)境中的學(xué)生獲取新的指示,提高感性和理性認(rèn)識(shí),而且要能使學(xué)消費(fèi)生新的構(gòu)思?!?〕動(dòng)作性是指學(xué)生能以客觀世界的實(shí)踐動(dòng)作或以人類實(shí)踐的方式來操作虛擬系統(tǒng),讓學(xué)生覺得到他面對(duì)的是一個(gè)真實(shí)的環(huán)境?!?〕自主性是虛擬世界中物體可按各自的模型和規(guī)那么自主運(yùn)動(dòng)。網(wǎng)絡(luò)信息技術(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ù)字校園覆蓋的面積相對(duì)不大,可采用藍(lán)牙技術(shù)實(shí)現(xiàn)短程無(wú)線上網(wǎng),近幾年來,華北水利水電大學(xué)大學(xué)對(duì)校園網(wǎng)絡(luò)進(jìn)展了全面改造,獲得了可喜的成果,實(shí)現(xiàn)了辦公樓、學(xué)生宿舍寬帶上網(wǎng),雖然有時(shí)網(wǎng)速比較差,但總體來說還是相當(dāng)不錯(cuò)的。特別是最近,在校園內(nèi)也實(shí)現(xiàn)了短程無(wú)線網(wǎng)絡(luò)覆蓋,這是很令人興奮的,同窗們可在校園內(nèi)隨時(shí)隨地上網(wǎng)。建模技術(shù)該技術(shù)是利用當(dāng)前比較流行的建模軟件,比如說大家經(jīng)常用的CAD、3dmax,還有就是Maya來建立出真實(shí)世界的簡(jiǎn)化模型,然后根據(jù)現(xiàn)實(shí)的顏色、光線、視覺效果來進(jìn)展真實(shí)模型的后期渲染,這是虛擬現(xiàn)實(shí)技術(shù)的可視化表達(dá)的第一步,也是最根本的一步。在根本模型建立過程中,需求處置好各個(gè)模型的比例問題,以及拓?fù)潢P(guān)系,以便于是整個(gè)場(chǎng)景看起來更加協(xié)調(diào),真實(shí),美觀。算法設(shè)計(jì)首先是對(duì)現(xiàn)實(shí)世界的TIN約束,還有對(duì)模型的簡(jiǎn)化剖分,這些都是需求在算法中實(shí)現(xiàn)的功能。在碰撞檢測(cè)算法中需求建立模型的格網(wǎng)索引,但是比較優(yōu)的應(yīng)該是四叉樹、八叉樹、哈希索引等方法。遨游中需求設(shè)計(jì)矩陣的變換,向量的乘法,優(yōu)化的算法會(huì)帶來更高的運(yùn)轉(zhuǎn)效率和內(nèi)存的節(jié)省。然后是實(shí)現(xiàn)三維模型在窗體中的導(dǎo)入,在導(dǎo)入的時(shí)候綜合思索到我們的模型以及所加材質(zhì)的協(xié)調(diào)性,最關(guān)鍵的是如何將模型中曾經(jīng)建立好的有一定坐標(biāo)值得模型導(dǎo)入到我們的程序去,這里涉及到坐標(biāo)轉(zhuǎn)換和相關(guān)的矩陣的運(yùn)算,向量的積。在模型導(dǎo)入以后是最終的也是最重要的就是碰撞檢測(cè)以及遨游算法的實(shí)現(xiàn),在碰撞檢測(cè)中主要就是實(shí)現(xiàn)察看者位置坐標(biāo)與物體坐標(biāo)的求交運(yùn)算,判別察看者的位置是在物體的里面還是外邊〔當(dāng)然假照實(shí)現(xiàn)了碰撞檢測(cè)的話,不能夠出如今物體的內(nèi)部〕,假設(shè)察看者與物體接近時(shí)只需求將察看者的位置沿著邊面進(jìn)展向左右或者向后面做平移,最簡(jiǎn)單的就是不做任何處置,也不讓察看者的位置繼續(xù)前移。遨游就是在場(chǎng)景中實(shí)現(xiàn)前后左右的挪動(dòng),經(jīng)過鍵盤來控制遨游。后期的算法是對(duì)整個(gè)系統(tǒng)的一個(gè)裝飾,比如說音效的調(diào)用,還有霧效果的添加,天空包圍盒是為了讓場(chǎng)景看起來更加真實(shí),同時(shí)也是對(duì)整個(gè)場(chǎng)景的一個(gè)外殼限制,主要的天空類型可以有正方形、球形或者是僅僅一張平面圖。第六章根底建模6.1樹模型的建立6.2湖面的制造6.3路燈模型的建立6.4建筑群的制造6.5光線的處置6.1樹模型的建立在建立樹模型的時(shí)候,我們首先想到的是模型中自帶的ACE擴(kuò)展模型,顯示效果也可以,但是這些遠(yuǎn)遠(yuǎn)不能滿足我們?cè)诂F(xiàn)實(shí)世界建模的需求,因此必需求實(shí)現(xiàn)本人的模型建立,另外一種方法就是我們利用軟件的毛發(fā)系統(tǒng)建立的樹模型,但是該模型也存在一定的問題,就是我們建立的模型越精細(xì),模型所占的內(nèi)存就會(huì)越大,所以這種樹模型我們不能用太多,其中最簡(jiǎn)單的樹模型的表示方法就是直接利用樹的圖片來表示,首先利用photoshopcs6制造出黑白圖然后在材質(zhì)球里面設(shè)置漫反射和不透明的屬性,建立出平面樹的模型最終樹的表示效果為:6.2湖面的制造湖面的制造主要采用NUBRS曲面,經(jīng)過修正點(diǎn)的位置來調(diào)整整個(gè)曲面的外形建立之后,利用材質(zhì)編輯球?yàn)楹婕由舷鄳?yīng)的材質(zhì),最終的制造效果如下圖:6.3路燈模型的建立路燈的柱子是看似圓形的不規(guī)那么圖形,但是也有一定的規(guī)律,所以可以利用軟件中的車削這一工具來制造燈柱,而對(duì)于路燈的試題本身可以是由四個(gè)平面來圍成,中間利用半徑比較小的圓柱來銜接,而最上面的蓋子也可以利用NUBRS曲面來制造燈柱的制造6.4建筑群的制造在設(shè)計(jì)建筑時(shí)為了節(jié)省空間,我們主要采用了擠出的方法,但是為了更加真實(shí),需求為建筑賦予比較真實(shí)的材質(zhì),然后對(duì)于一些需求特殊處置的建筑,利用布爾或者塌陷將他們做成比較真實(shí)的外觀,本來想著利用photoshopcs6制造出比較精細(xì)的圖片,然后為建筑群賦予特別外觀,但是由于時(shí)間問題,只能做到這一步,后來有時(shí)間的話,在最后整一下吧。6.5光線的處置良好的光線可以讓模型的顏色不可折扣的表現(xiàn)出來,因此需求對(duì)整個(gè)場(chǎng)景的光線進(jìn)展設(shè)置,按數(shù)字鍵8可以調(diào)出我們的環(huán)境設(shè)置器,進(jìn)展環(huán)境光的設(shè)置當(dāng)然在場(chǎng)景中的一切景物、建筑都是采用對(duì)應(yīng)的工具來設(shè)置的,在此不能一一引見,置信學(xué)過軟件的同窗,也都知道如何去建立這些簡(jiǎn)單的模型。最終結(jié)果展現(xiàn)第七章算法設(shè)計(jì)關(guān)鍵代碼展現(xiàn)音效的添加模型的導(dǎo)入設(shè)置天空包圍盒遨游向量的運(yùn)算線框方式7.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.2模型的導(dǎo)入翻開文件 m_FilePtr=fopen(strFileName,"rb");假設(shè)文件翻開失敗 if(!m_FilePtr) { sprintf(strMessage,"3DS文件不存在!",strFileName); MessageBox(NULL,strMessage,"Error",MB_OK); returnfalse; }讀取3ds文件的第一個(gè)Chunk ReadChunk(&chunk);檢查能否是3ds文件 if(chunk.ID!=PRIMARY) { sprintf(strMessage,"讀取文件t失??!",strFileName); MessageBox(NULL,strMessage,"Error",MB_OK); fclose(m_FilePtr); returnfalse; }開場(chǎng)讀取3ds文件 ReadPrimary(chunk.length-6);計(jì)算每個(gè)頂點(diǎn)的法線量 ComputeNormals();封鎖翻開的文件 fclose(m_FilePtr); m_FilePtr=NULL;對(duì)有紋理的材質(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); } } }7.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);開場(chǎng)繪制四邊形 glBegin(GL_QUADS);設(shè)置紋理坐標(biāo)和反面四邊形的四個(gè)點(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();選擇天空盒面紋理 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);7.4遨游左右挪動(dòng)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;}前后挪動(dòng)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;}確認(rèn)鍵盤控制的挪動(dòng)判別能否按下向上鍵或‘W'鍵 if(GetKeyState(VK_UP)&0x80||GetKeyState('W')&0x80) { MoveCamera(MOVESPEED); //向前挪動(dòng)Camera }判別能否按下向下鍵或'S'鍵 if(GetKeyState(VK_DOWN)&0x80||GetKeyState('S')&0x80) { MoveCamera(-MOVESPEED); //向后挪動(dòng)Camera }判別能否按下向左鍵或'A'鍵 if(GetKeyState(VK_LEFT)&0x80||GetKeyState('A')&0x80) { StrafeCamera(-MOVESPEED); //向左挪動(dòng)Camera }判別能否按下向右鍵或'D'鍵 if(GetKeyState(VK_RIGHT)&0x80||GetKeyState('D')&0x80) { StrafeCamera(MOVESPEED); //向右挪動(dòng)Camera }向量的運(yùn)算計(jì)算向量的叉乘CVector3CVector3::CrossProduct(constCVector3&rhs)const{ returnCVector3(y*rhs.z-z*rhs.y,z*rhs.x-x*rhs.z,x*rhs.y-y*rhs.x);}計(jì)算向量的點(diǎn)乘floatCVector3::DotProduct(constCVector3&rhs)const{ returnx*rhs.x+y*rhs.y+z*rhs.z;}計(jì)算向量的長(zhǎng)度f(wàn)loatCVector3::GetLength()const{ return(float)sqrt((x*x)+(y*y)+(z*z));}計(jì)算向量的長(zhǎng)度的平方floatCVector3::GetSquaredLength()const{ return(x*x)+(y*y)+(z*z);}向量的旋轉(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);}7.5線框方式If(linemodel){glPolygonMode(GL_FRONT_AND_BACK,GL_LINE);}Else{glPolygonMode(GL_FRONT_AND_BACK,GL_FULL);}第八章主要技術(shù)難題及處理方案模型建立之平面樹的建立模型建立之模型過大模型渲染之材質(zhì)的顯示與隱藏算法設(shè)計(jì)之3dmax文檔的導(dǎo)入、碰撞檢測(cè)、遨游算法設(shè)計(jì)之天空包圍盒模型建立之平面樹的建立在建立樹模型的時(shí)候可以有以下幾種方法:一是:就是最簡(jiǎn)單的利用軟件中自帶的曾經(jīng)建立好的模型;二是:利用建模軟件的毛發(fā)系統(tǒng),可以制造出比較精細(xì)的樹模,尤其對(duì)于柳樹這一類線條比較明顯的樹木,效果比較好;三是:對(duì)于一些有葉子的樹木,我們可以首先制造出葉子和樹干以及樹枝這些根本的模型,然后利用合并將葉子有序的加載到樹枝上,制造出精巧的樹木來;四是:也是最簡(jiǎn)單的樹模型,就是直接用一張簡(jiǎn)單的樹木的照片來表示樹木,實(shí)踐卻是一張照片。當(dāng)然還有最最最為簡(jiǎn)單的一種就是他什么都不用想,直接去找“度娘〞,然后點(diǎn)擊下載按鈕就可以了。對(duì)于用照片來顯示樹模型的方法來說,首先需求利用PS軟件來制造出需求顯示的樹木的照片的黑白兩色的照片副本來,然后同時(shí)保管著兩張照片,翻開材質(zhì)編輯器,在其中一個(gè)未用的材質(zhì)編輯球里面加載一張彩色的樹的照片,然后在不透明度上設(shè)置為圖片的黑白副本的照片。然后將材質(zhì)加載到一個(gè)平面上,就可以制造出和照片中一模一樣的樹模型,設(shè)置為黑白圖片是由于在有些軟件中默以為不可見,而白色是可見區(qū)域,比如說在3dmax中。8.2模型建立之模型過大建立模型也是在模型中添加內(nèi)容的過程,也是內(nèi)存添加的過程,隨著模型的建立,內(nèi)容會(huì)越來越多,機(jī)器會(huì)越來越慢,甚至?xí)?dǎo)致死機(jī),軟件解體等問題,因此提早做好備份時(shí)必需的,另外就是選擇比較好的方法去優(yōu)化我們的模型,在軟件中有相關(guān)的設(shè)置,可以協(xié)助我們來優(yōu)化模型,對(duì)于其中的設(shè)置我們選擇最初的默許就可以了。8.3模型渲染之材質(zhì)的顯示與隱藏為了讓整個(gè)場(chǎng)景看起來更加真實(shí),我們選擇在加材質(zhì)的時(shí)候就讓其顯示在模型上面,但是對(duì)于其中一些是無(wú)法顯示的,只需在渲染的時(shí)候才可以在場(chǎng)景中看到我們最為真實(shí)的模型,這是我們不想發(fā)生的,因此需求尋覓一定的方法來顯示我們一切材質(zhì),比如說經(jīng)過調(diào)整坐標(biāo),對(duì)象坐標(biāo)、世界坐標(biāo)、實(shí)踐通道等。尤其在平面樹的建立過程中,該問題特別棘手。由于物體的才是有涉及到透明問題。8.4算法設(shè)計(jì)之3dmax文檔的導(dǎo)入、碰撞檢測(cè)、遨游首先在到導(dǎo)入模型的時(shí)候要思索模型過大的問題,為此我們?cè)?jīng)在模型建立的過程中對(duì)模型進(jìn)展了優(yōu)化;在添加碰撞檢測(cè)的時(shí)候,其實(shí)就是最根本的求交運(yùn)算,在前面我們?cè)?jīng)提到對(duì)我們的模型進(jìn)展三角剖分,或者四邊形剖分,以及建立TIN約束在遨游算法中,是有一個(gè)察看點(diǎn)的位置,有一個(gè)察看方向,然后給察看這一個(gè)前進(jìn)的速度就可以實(shí)現(xiàn)前進(jìn)或者后退8.5算法設(shè)計(jì)之天空包圍盒天空可以讓整個(gè)場(chǎng)景都變得更加真實(shí),更加明晰。在天空設(shè)計(jì)的時(shí)候,我們可以制形成方塊外形,也可以制形成球形的天空包圍盒。第九章終了語(yǔ)經(jīng)過此次課程設(shè)計(jì),我們學(xué)到了許多知識(shí),其中最重要的就是團(tuán)隊(duì)協(xié)作精神確實(shí)立,這是做一項(xiàng)團(tuán)體任務(wù)的根底,另外在設(shè)計(jì)的過程中,我們一邊自學(xué)完成v

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論