實時圖形課程設計報告格式_第1頁
實時圖形課程設計報告格式_第2頁
實時圖形課程設計報告格式_第3頁
實時圖形課程設計報告格式_第4頁
實時圖形課程設計報告格式_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、實時圖形設計課程設計報告姓名 學號 專業(yè) 班級 任課教師 XX大學計算機科學與技術學院2012 年 月 日一、課程設計內容課程設計的主要內容為開發(fā)一個實時繪制大規(guī)模三維場景的程序系統(tǒng)(運行界面可以參考圖1),包括必做部分和選做部分(其中,選做部分要求實現(xiàn)23項以上功能)。必做部分:1、學習3DS Max 的基本功能,并采用3DS Max 對三維場景進行建模,要求場景中包含建筑物、道路、天空等基本元素,實現(xiàn)場景的紋理貼圖功能。2、通過3DS Loader 讀取場景數(shù)據(jù)。3、學習并使用OpenGL 或DirectX 3D 實時繪制上述場景。4、提供用戶界面,并實現(xiàn)場景的交互漫游功能。選做部分:1、

2、實現(xiàn)Level of Detail (LOD)技術。2、在場景中添加三維地形。3、采用流體模擬技術,實現(xiàn)動態(tài)水面的實時繪制。4、學習紋理合成技術,實現(xiàn)大規(guī)模紋理的實時合成。5、學習GPU(Graphics Processing Units)編程語言Cg,采用圖形硬件技術對程序進行加速繪制。6、實現(xiàn)云、雨等不同氣象條件的實時繪制。7、實現(xiàn)實時碰撞檢測技術。8、實現(xiàn)一種計算機動畫技術如物體形變、人物動畫、布料動畫等。9、在場景中添加噴泉、瀑布等元素。10、實現(xiàn)Billboard 繪制技術。11、實現(xiàn)陰影的實時繪制。二、主要技術介紹1、3d smax建模3ds Max是3D Studio Max的簡

3、稱,它是在3D Studio的基礎上發(fā)展的三維實體造型及動畫制作系統(tǒng)。在其圖形化的界面中,可以完成建模、渲染、動畫制作等操作。同時,它也是一個面向對象的智能化應用軟件,用戶可以通過菜單選項、命令、按鈕等操作方式輕松實現(xiàn)對象的創(chuàng)建與編輯。3ds Max廣泛應用于影視制作、產品設計、建筑設計、多媒體制作、游戲開發(fā)、輔助教學、工程展示等諸多領域。2、3ds loader程序讀入場景數(shù)據(jù)一個3ds文件包含一系列的信息用于描述由一個或多個物體組成的3D場景的所有細節(jié)。一個3ds文件包含了一系列的塊,稱之為chunks。Chunks中包含描述場景的所有信息:每個物體的名稱,頂點坐標,映射坐標,多邊形列表,

4、表面的顏色,動畫關鍵幀等等. 這些chunks沒有一個線性的結構。這意味著一些chunks依賴于其他的chunks,并只有在它們的父chunks被讀入后才能讀入。我們加載3ds物體并保存到我們的引擎所定義的格式需要的步驟是:實現(xiàn)一個”while”循環(huán)(正如我們?yōu)榧y理加載器所做的),不斷地執(zhí)行直到到達文件的結束。每個循環(huán)的反復讀入chunk id和chunk length。使用一個switch分析chunk id的內容。如果chunk是我們不需要讀入的樹的一部分,我們移動文件指針到一個新的位置來跳過那個chunk長度,即通過將當前位置加上當前chunk的長度。這使得我們可以跳過任何我們不需要讀入

5、的chunk和子chunk。如果chunk允許到達我們需要的其他chunk,或是包含了我們需要的數(shù)據(jù),那么我們就根據(jù)需要來讀取數(shù)據(jù),然后我們移動到下一個chunk。3、天空盒技術所謂天空盒,就是用一個矩形方盒作為形容遠景貼圖的物體。  在長方體的前后左右上下6個面貼有天空遠景的6幅圖形(需要時底面也可以帖)。這6幅圖形必須有以下規(guī)律:  1、頂圖的4邊與前后左右圖的上邊相連;  2、前后左右的4幅圖形必須首尾相連。  對于每個面的貼圖,就圖的方向而言,長方體的面的頂點是順時針還是逆時針排列都沒有關系,重要的是圖形的

6、頂點要與長方體面的相應頂點相對應,這就要求在設置紋理坐標時要特別小心。天空盒技術可以通過opengl實現(xiàn),也可以在3ds max中實現(xiàn),在本次課程設計中采用的是在opengl中通過在六個面上貼圖實現(xiàn)天空盒。4、在三維場景中添加地形在三維場景中添加地形采用的方法為讀取.raw類型的文件。首先以二進制形式打開文件,然后導入.raw 文件到 pHeightMap數(shù)組,根據(jù)高度圖的返回高度值X,Y, 應用公式: index = (x + (y * arrayWidth) ) 來取得當前高度, 設置高度圖的當前紋理坐標,然后綁定紋理并開始繪制地形。繪制地形時遍歷高度圖,在每個X坐標上渲染地形。5、紋理合

7、成技術紋理合成是為了解決紋理映射中存在的接縫走樣等問題而提出的,目前紋理合成方法可分為兩類:一類為過程紋理合成(PTS),另一類為基于樣圖的紋理合成(TSFS)。過程紋理合成通過對物理生成過程的仿真直接在曲面上生成紋理,如毛發(fā)、云霧、木紋等,從而避免了紋理映射帶來的失真。這種方法可以獲得非常逼真的紋理,但對每一種新的紋理,卻需要調整參數(shù)反復測試,非常不便,有的甚至無法得到有效的參數(shù)。自然界中存在大量的紋理,這些紋理往往具有自相似性,即一小塊紋理就能反映整體紋理的特點。這就促使人們著手研究基于樣圖的紋理合成方法以取得更有效的成果:給定一小塊紋理,生成大塊相似的紋理?;跇訄D的紋理合成(textu

8、re synthesis from samples,TSFS)技術是近幾年迅速發(fā)展起來的一種新的紋理拼接技術,它基于給定的小區(qū)域紋理樣本,按照表面的幾何形狀,拼合生成整個曲面的紋理,它在視覺上是相似而連續(xù)的。TSFS技術可以克服傳統(tǒng)紋理映射方法的缺點,又避免了過程紋理合成調整參數(shù)的繁瑣,因而受到越來越多研究人員的關注,成為計算機圖形學、計算機視覺和圖像處理領域的研究熱點之一。利用TSFS技術還可以進行紋理填充(如修補破損的圖片,重現(xiàn)原有圖片效果),紋理傳輸,擴展到時域則可以用一短段視頻圖像,生成任意長度的非重復的視頻動畫等。所以紋理合成技術在圖像編輯、數(shù)據(jù)壓縮、網(wǎng)絡數(shù)據(jù)的快速傳輸、大規(guī)模場景的

9、生成以及真實感和非真實感繪制等方面具有廣泛的應用前景。6、Billboard 繪制技術公告牌技術,即billboard技術,在3D游戲中有著廣泛的應用.它的本質就是用預先做好的幾幅位圖來代替3D物體,極大地節(jié)省資源和提高速度.仔細觀察<<魔法門>>系列游戲,它的精靈,樹木,物品都是二維圖象,但由于它始終朝向觀察者,你根本看不到它"扁"的一面,所以給人一種立體的感覺.這種技術最大的優(yōu)點是快.試想一個多邊形構成的3D精靈,至少百余個多邊形,而用billboard技術,只需處理兩個多邊形,優(yōu)勢不言而喻.其他3D游戲的爆炸效果,<<極品飛車>

10、;>中路旁的樹木,都使用了該技術.7、陰影繪制技術1、通過陰影投射矩陣的推導得到S的四維向量坐標S = HP,其中P為空間某點P的向量坐標,H即為平面陰影投射矩陣。在OpenGL中,有一個4×4的空間平面坐標變換矩陣R,將三維坐標映射為屏幕實際顯示出來的二維圖形。故有S0 = RS = RHP = R'P,其中R' = RH。從而在R'的變換下,圖形將被“壓扁”地繪制到陰影投射平面上。2、陰影投射矩陣的生成算法。設計函數(shù)void GenerateShadow()計算陰影投射矩陣,記錄在二維數(shù)組shadow44中。3、繪制陰影。(1)關閉光照和紋理貼圖,設

11、置陰影顏色。(2)為防止陰影與投射平面重合導致繪圖層次混亂,將陰影繪制平面上移一個小單位。(3)對于四個陰影投射平面,分別計算陰影投射矩陣,并與當前模型視圖矩陣相乘。(4)由于當前模型視圖矩陣被修改,要恢復之前的狀態(tài)必須將運算前的矩陣壓入矩陣棧,陰影繪制結束后彈出。8、霧的實現(xiàn)技術霧也是大自然中最常見的現(xiàn)象之一,有了霧的效果,場景看起來會更加真實。在OpenGL中,很容易實現(xiàn)霧的效果。在OpenGL中,霧的工作模式有兩種:線性模式和指數(shù)模式。這兩種模式是根據(jù)霧的濃度變化來區(qū)分的。在線性模式下,只需要提供一個距離視點的開始位置和結束位置。從開始位置到結束位置之間,霧的濃度越來越高,濃度的變化和距

12、離成正比。在指數(shù)模式下,霧的濃度隨著距離的增加呈指數(shù)增長。這種模式通常用來用于煙霧、煙幕等效果。啟用霧化的效果必須使用glEnable(GL_FOG),同樣,取消霧的效果就是glDisable(GL_FOG)。9、噴泉的實現(xiàn):隨著時間的變化,粒子系統(tǒng)中的粒子都要經(jīng)過產生、運動、消亡三個階段。在這三個階段中粒子的大小和形狀隨時間變化而變化,其他性質如粒子的透明度顏色和運動速度都將隨機變化,從而充分體現(xiàn)出不規(guī)則物體的動態(tài)性和隨機性?;谶@三個階段,因此粒子的初始屬性以及其變化規(guī)律的確定就顯得非常重要。每個粒子都在其生命周期內按一定的方式不斷運動,其速度、位置、顏色、生命值等屬性值也在不斷地發(fā)生變化

13、。噴泉是通過對粒子系統(tǒng)的繪制實現(xiàn)的,首先設定粒子的初始屬性,包括粒子的初始速度,和初始位置。將粒子的初始速度(Vx,Vy,Vz)限制在一個圓柱環(huán)的域內,圓柱的軸平行于Y軸并且長度很短,這樣可以保證粒子以比較穩(wěn)定的狀態(tài)變化。其次是通過函數(shù)UpdateEngine(GLvoid)更新粒子運動,函數(shù)void DrawEngine(GLvoid) 來制粒子(1) 將新生成的粒子加入到粒子系統(tǒng)當中。(2) 為新生成的粒子賦予一定的屬性。(3) 從噴泉粒子系統(tǒng)中刪除那些超過所賦予的生命周期的粒子。(4) 活著的粒子( 沒有到生命終結期的粒子) 都將按照所賦予的粒子動力學規(guī)律進行移動和變換。(5) 采用Op

14、enGL 顯示列表方法和紋理映射技術來繪制和顯示那些沒有死亡的粒子即有生命的粒子。三、實現(xiàn)流程產生新粒子粒子屬性初始化粒子屬性更新判斷粒子是否活著重新賦予粒子生命 是 否粒子繪制繪制結束 圖1.噴泉系統(tǒng)實現(xiàn)的流程圖打開文件 讀取chunk 成功 失敗判斷是否為3ds文件 是 不是輸出錯誤提示載入紋理 從文件中讀取字節(jié)讀取主chunk讀取.3ds對象讀取面信息、讀取材質、漫反射屬性紋理等釋放3ds模型資源結束 圖2.讀取3ds文件的流程圖創(chuàng)建界面定義全局變量定義用戶變量繪制場景實現(xiàn)系統(tǒng)功能Billboard陰影天空盒噴泉系統(tǒng)退出前掃尾結束程序 圖3.程序流程圖四、實驗結果場景:顯示模型的線條:陰

15、影顯示:GL_EXP霧:GL_EXP2霧:GL_LINEAR霧噴泉:Billboard樹:五、實驗分析和總結實驗分析:本次課程設計的主要內容為開發(fā)一個實時繪制大規(guī)模三維場景的程序系統(tǒng),開發(fā)環(huán)境為openGL VC+。首先用3ds max建立模型,可以通過一些素材網(wǎng)站下載一些現(xiàn)有的模型,然后將文件類型為.3ds的文件通過3ds Loader程序讀取三維場景的數(shù)據(jù),當程序調通后就可以向場景中添加其他功能。系統(tǒng)實現(xiàn)了如下功能:可以讀入三維場景并顯示;可以播放背景音樂;可以進行人機交互,通過鼠標或鍵盤實現(xiàn)漫游功能;當在鍵盤上輸入1時可以調整多邊形的顯示方法,顯示線條;在鍵盤上輸入2時可以實現(xiàn)對陰影的實

16、時繪制;在鍵盤上輸入G時可以出現(xiàn)霧,并且用了3種方法顯示霧,并且實現(xiàn)了Billboard技術,Billboard顯示了一棵樹,按下ESC退出場景。試驗中添加了背景音樂,背景音樂可以通過相關代碼載入音頻文件,實現(xiàn)音樂的播放。天空背景是在openGL中繪制出天空盒并在表面貼上天空的圖案,實現(xiàn)天空場景。霧的實現(xiàn)有三種不同的計算方法,使用fogMode來保存三種類型的霧:GL_EXP,GL_EXP2和GL_LINEAR。GL_EXP是充滿整個屏幕的基本渲染的霧GL_EXP2比GL_EXP更進一步,看起來更有深度,GL_LINEAR最好的渲染模式,效果更自然。噴泉的實現(xiàn)通過粒子系統(tǒng),對粒子系統(tǒng)進行初始化,更新粒子的運動狀態(tài),繪制粒子的運動軌跡等過程實現(xiàn)。實驗總結:以前通過圖形學的課程已經(jīng)對opengl有了初步的認識,通過本次課程設計,我對opengl有了更加深入的學習并且學習了3ds Max的基本使用方法,3ds Max 在游戲和建筑設計等方面有著廣泛的運用,相信這對我們將來的發(fā)展是很有作用的

溫馨提示

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

最新文檔

評論

0/150

提交評論