freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設計論文-3d賽車游戲的設計與實現(xiàn)(編輯修改稿)

2025-01-06 16:00 本頁面
 

【文章內(nèi)容簡介】 前實現(xiàn)的功能點包括:頂好文檔 值得下載 點、紋理、光照、材質(zhì)、文字、霧化、天空盒、攝像機、廣告牌、靜態(tài)網(wǎng)格模型、骨骼動畫、粒子特 效、 LOD地形場景、地形多層細節(jié)紋理等。最后,使用 BSP技術實現(xiàn)了碰撞檢測。 該游戲引擎 各模塊之間的協(xié)同操作如圖 22所示 。 圖 22 引擎各模塊之間的協(xié)同操作 輸入系統(tǒng):接受玩家的鍵盤、鼠標等外設的輸入信息,然后引擎對這些信息進行響應作出相應效果 (即游戲邏輯處理 ),實現(xiàn)與玩家的交互。 聲音控制:加載、播放、停止聲音等操作。并提供較逼真的三維音效,使玩家如身臨其境的感覺。 游戲 UI:即游戲的界面。加載圖片實現(xiàn)了圖形化的界面控件。方便玩家對游戲進行操作,提高用戶體驗性。 圖形渲染:是整個引擎的核心模塊, 涉及面較廣,主要功能是繪制渲染三維游戲世界。目前實現(xiàn)的功能點包括:頂點、紋理、光照、材質(zhì)、文字、霧化、天空盒、攝像機、廣告牌、網(wǎng)格模型、粒子特效、地形場景等。 碰撞檢測:主要使用了二叉空間分割技術,把碰撞網(wǎng)格存儲進二叉樹,實現(xiàn)快速的碰撞檢測。 好文檔 值得下載 游戲結構 游戲與其他應用軟件有著一定的區(qū)別,它不是我們的單線、事件驅(qū)動或順序邏輯的程序。一個 3D游戲本質(zhì)上是一個持續(xù)不斷的 while循環(huán),它執(zhí)行邏輯并在屏幕上不間斷的繪制更新圖像 ——通常以 40~60幀每秒或更高的速度不斷的繪制 [5]。這類似于電影放映方式,不同 的是,我們將控制電影的情節(jié)發(fā)展。 本引擎中所使用的 游戲最基本的流程框架如圖 23所示 。 圖 23 3D游戲基本流程框架 初始化:這部分執(zhí)行與其他任何程序類似的標準操作,如內(nèi)存分配、資源獲取、從磁盤加載數(shù)據(jù)等。 進入游戲循環(huán):這部分進入主游戲循環(huán),用戶將在這里不斷地執(zhí)行動作,直到退出主循環(huán)為止。 讀取玩家輸入:這部分處理玩家輸入,或?qū)⑵浯鎯Φ骄彌_區(qū)中,供游戲邏輯使用。 執(zhí)行游戲邏輯:這部分包含游戲代碼的主體部分,將執(zhí)行人工智能、物理系統(tǒng)和通用游戲邏輯,并根據(jù)結果在屏幕上繪制下一幀。 圖形渲染:在這一部分 中,將根據(jù)玩家輸入以及邏輯的執(zhí)行結果,生成下一個游戲動畫幀。在甚于 3D游戲引擎中,將由一個復雜的 3D圖形流水線來渲染構成世界的成千上萬甚至上百萬個多邊形。在基于 Direct3D的 3D硬件加速中,大部分工作都由硬件來承擔。 循環(huán):這部分相當簡單,只需返回到游戲循環(huán)的開頭,然后重新執(zhí)行整個循環(huán)。 好文檔 值得下載 關閉:這是游戲的末尾,意味著用戶退出游戲循環(huán),并返回到操作系統(tǒng)。但是,與其它任何軟件一樣,需要在返回操作系統(tǒng)之前釋放占用的所有資源,并清理系統(tǒng)。 游戲控制臺控制流程如圖 24所示 。 圖 24 游戲控制臺的控制流程 本章小結 本章主要介紹了 DirectX 和游戲引擎,讓我們了解兩者的大概功能和關系。在了解兩者的基礎上,著重介紹了該游戲選用的游戲引擎的各個功能模塊及各模塊是如何協(xié)同工作的,為接下來的游戲制作打下了堅實的基礎。最后介紹了下游戲的基本結構, 一個游戲本質(zhì)上是一個持續(xù)不斷的 while 循環(huán),它執(zhí)行邏輯 ,并根據(jù)邏輯計算出下 一幀圖像,并在屏幕上不間斷的繪制更新圖像。 游戲最終表現(xiàn)出來的就是一幀又一幀連續(xù)的畫面,我們所要作的就是在循環(huán)中,不斷的獲取用戶的輸入,根據(jù)輸入執(zhí)行游戲邏輯,生成下一個游戲動畫幀,最后渲染該動畫 幀。 好文檔 值得下載 3 游戲的汽車類模塊、場景渲染、輸入控制 輸入檢測和響應 每個交互式程序都要為用戶提供一些與其交互的方法。在視頻游戲中,通??梢酝ㄟ^諸如游戲墊、方向盤、操縱桿、鍵盤和鼠標等這類輸入設備實現(xiàn)。輸入檢測不僅要和大量設備打交道,還要能夠?qū)τ诰哂兴俣雀咭蟮囊曨l游戲做出快速反應。在 Windows操作系統(tǒng)中,輸入可以通過 DirectInput API匯總到一起。 DirectInput是 DirectX API的一部分,負責對所有連接到機器上的設備進行輸入檢測。 從對 Win32 API編程的分析可以知道,鍵盤或 鼠標的用戶輸入消息并不是直接傳遞給應用程序來處理的,面是是轉(zhuǎn)發(fā)回 Windows操作系統(tǒng),最后由 Windows回調(diào)應用程序的窗口過程函數(shù)進行相應的消息代碼處理。顯然,如果游戲程序仍采用這種方式來處理用戶的輸入將不會獲得理想的執(zhí)行效率。 DirectInput是 DirectX 的一個組件接口,提供了大量的接口函數(shù)處理用戶在鍵盤、鼠標、游戲桿以及力回饋等游戲裝置上的輸入,而且 DirectInput是直接與硬件驅(qū)動程序打交道,因此 DirectInput可較快地處理用戶的輸入。另一方面,正是由于 DirectInput直接與驅(qū)動程序進行通信,所以在控制面板上所做的任何鍵盤和鼠標的屬性設置,如鍵盤按鍵的延遲重復和鼠標的左右手習慣等,都不會對應用 DirectInput的程序起作用,除非是修改同驅(qū)動程序提供的屬性設置。 游戲引擎封裝了 DirectInput,我們只用初始化游戲引擎的輸入控制類,調(diào)用該類的函數(shù) IsKeyPress()判斷哪個鍵位被敲擊,即可響應該鍵位的事件。 場景渲染 在現(xiàn)實的許多商業(yè)游戲中,場景十分復雜,有著逼真的天空、高低起伏且十分精細的地形、各種天氣效果 (雨、霧等 )以及光照陰影等。 我們的游戲場 景是個簡單的,只由天空,模型 (該模型包含了地形 )和光照組成的,這些組成部分涉及到了許多技術。 好文檔 值得下載 天空盒技術 在虛擬現(xiàn)實和視景仿真應用系統(tǒng)中,天空仿真是必不可少的內(nèi)容之一。天空背景的真實感對用戶來說能大大提高視覺享受和沉浸感。所以,一個活動的、完整的天空是整個虛擬三維系統(tǒng)真實感體現(xiàn)所必須具備的。本文所實現(xiàn)的游戲的天空采用的就是天空盒技術,只要使用好的紋理,就能實現(xiàn)令人信服的畫面。天空盒只不過是一個 6 個面正方形,中心就是視點。上下左右前后分別貼上天空紋理后,基本天空盒就制作完成。如圖31~36。 圖 31 front 圖 32 back 圖 33 left 圖 34 right 圖 35 top 圖 36 bottom 渲染的后的天空效果如圖 37 所示。 需要注意的是玩家在場景中不停的漫游,而天空的大小是有限,我們可以采用一種簡單方法來讓玩家走不出天空盒的范圍,每次渲染時我們始終讓攝像機的坐標位于天空盒的中心,這樣就可以給我們一種感覺,天空是無限大的,怎么走也走不出。最后是渲染天空盒,我們的天空 盒是有大小的,所以我們渲染時禁止 Z緩沖寫入,否則渲染時,天空盒 Z大小都寫了進去,導致超出天空盒大小的場景渲染不了,而且還要最先渲染,否則因為你禁止 Z緩沖寫入,先渲染場景再渲染天空盒,天空盒把整個場景覆蓋了。 好文檔 值得下載 圖 37 天空盒效果 模型運用 我們使用的模型是 X 模型,這種模型是 DirectX 本身的格式,可以通過幾個內(nèi)置函數(shù)直接加載和渲染到 API。 X 模型最大的優(yōu)點就是它們十分易用,可以直接和 Direct3D交互使用。 X 文件格式基于模板格式, Direct3D 有一些內(nèi)置模板,可以用于定義 X 文件中的網(wǎng) 格。這些標準模板包括外觀、紋理坐標和法線。因為 X 文件格式基于模板格式,所以 Direct3D 需要知道一些存儲在文件中用于某種目的的信息。 X 模型可以被保存為文本文件,也可以被保存為二進制文件,這意味著可以在任意的文本編輯器中打開 X 文本文件,并修改其內(nèi)容。 X 文件中的 Material 標準模板用于指定可以施加在單個表面(多邊形)的材質(zhì)。針對材質(zhì)的標準模板定義了環(huán)境顏色、發(fā)射能量、鏡面顏色、反射量、與材質(zhì)相關的紋理圖像文件名。 X 文件中的 Mesh模板定義了 X 文件中的完整網(wǎng)格。 X 模型可以包含多個網(wǎng)格。網(wǎng)格模板結構開始先 定義頂點總數(shù),然后是頂點的 x, y, z坐標。定義完頂點之后,接下來必須定義網(wǎng)格的外觀或多邊形。開始先是網(wǎng)格中的外觀數(shù),后面是每個外觀的三角形好文檔 值得下載 索引。每個三角形索引行開始是代表該外觀使用的三角形數(shù)目,后面才是索引號。定義完頂點和三角形之后,就可以隨意定義其他屬性了,如每一外觀的材質(zhì)、紋理坐標等。 X 文件中的 MeshMaterialList 模板指明網(wǎng)格中的哪個外觀使用哪種材質(zhì)。材質(zhì)鏈表結構開始先定義材質(zhì)數(shù)目,然后是將材質(zhì)施加的外觀總數(shù)。這之后,每個外觀占一行。每行定義一個值,用該值引用要用的材質(zhì)。該結構的最后一行是 涉及到的所有材質(zhì)鏈表。第一個材質(zhì)索引號為 0,第二個為 1,依此類推。 X 文件中的 MeshTextureCoords 模板開始先指定網(wǎng)格中的索引數(shù),然后用逗號隔開,簡單的列出每個頂點的紋理坐標。有了該模板就可以在 Direct3D 中將紋理映射到網(wǎng)格上。 加載和渲染 X 模型很簡單。所有的 X 模型都保存在相同的名為 LPD3DXMESH 的結構中。調(diào)用 D3DXLoadMeshFromX()即可。調(diào)用 LPD3DXMESH 對象的 DrawSubset()函數(shù)可以繪制模型。 我們需要注意的是, X 模型本身所有頂點位置都是基于其自身坐標, 而我們要最終要將模型顯現(xiàn)在外面的屏幕上,這就需要進行些坐標變換。 首先簡要說明一下三維物體的成像過程。三維物體可通過建模的微分方法,把彎曲的表面切分為一個個的三角形面,這樣三維物體表面的繪制,就轉(zhuǎn)化為物體表面中所有三角形面的繪制。要渲染由眾多三維物體組成的三維場景,需要先引入局部坐標系,為場景中的各個三維物體進行三角形頂點的坐標量化。 局部坐標系示例如圖 38所示 。 圖 38 局部坐標系 引入世界坐標系,把整個場景中所有三維物體的各自頂點局部坐標,轉(zhuǎn)換為同一個世界坐標系下的坐標。在同一個世界坐標系中,場 景中各個三角形面的頂點坐標如實地給出了場景中物體間的空間關系。如果需要對場景實施光照處理,還要對頂點的顏色值好文檔 值得下載 進行計算。這個過程最終是輸出具有世界坐標的場景下的所有三維物體的頂點信息。 世界坐標系示例如圖 39 所示: 圖 39 世界坐標系 在三維場景中選定位置和方向架設攝影機,取景范圍由一個棱臺視截體決定。在視截體之內(nèi)部分,應顯示處理;視截體之外的部分則要裁剪掉,而不顯示出來。為了便于裁剪,在攝影機的位置處建立一個攝影坐標系,其 Z軸指向攝影機的視線方向,從而使視截體的 6 個外圍側面具有較為簡單的方程式。此時 ,需要將場景中所有物體的三角形頂點的世界坐標轉(zhuǎn)換為攝影坐標系下的坐標。這個過程最終輸出變換為攝影坐標的頂點信息。取得場景中所有物體的三角形頂點攝影坐標之后,開始進行裁剪和透視投影處理。這個過程最終是輸出位于視覺區(qū)域內(nèi),并且已變換為投影坐標的頂點信息。最后將平面投影的點變換到計算機屏幕的視口中,并根據(jù)投影點的 Z坐標值反映的頂點遠近遮隱關系,確定屏幕視口中每個像素的顏色值 [6], 以此實現(xiàn)三維場景的平面著色顯示。 總之,在加載模型后,要想成功的渲染模型還需要進行坐標轉(zhuǎn)換,在模型文件中所有頂點使用的都是其局部的 3D 坐標,并非渲染函數(shù)能夠直接使用的屏幕坐標。要想將其輸出到屏幕中通常需要經(jīng)過以下三種坐標轉(zhuǎn)換: 1. 全局轉(zhuǎn)換。將所有的物體轉(zhuǎn)換為統(tǒng)一的全局坐標,還可以在這里完成各種對物體位置的操作。 2. 視圖轉(zhuǎn)換。轉(zhuǎn)為從觀察者角度看到的全局坐標。先在全局坐標系的指定位置架一臺攝影機,指定一個注視點和一個參考點。坐標將被轉(zhuǎn)換到以攝影機為原點,從原點到注視點為 Z軸,再加上參考點,所確定的平面為 YZ平面的坐標系中。 3. 透視轉(zhuǎn)換。透視轉(zhuǎn)換將各頂點的 x, Y 值轉(zhuǎn)換為實際的屏幕坐標,而 z值就是ZBufer 里的深度信息。 好文檔 值得下載 基本的坐標轉(zhuǎn)換 (平移、 旋轉(zhuǎn)、放縮 ),在 3D 程序里,都是將該點 (就是一個列向量 )乘以一個 4x4 矩陣。然后調(diào)用相應的三個函數(shù)告訴 D3D:用這個矩陣完成全局轉(zhuǎn)換,然后用那個矩陣完成視圖轉(zhuǎn)換。 光照技術 光照是一門為 3D 場景增加真實感的技術,它以某種方式通過對物體分布不同的亮度和黑暗形成陰影而實現(xiàn)真實感。如同現(xiàn)在許多游戲中見到的一樣,光照可以將場景帶入到一個全新的真實感層次。為場景增加光照會對已渲染的場景產(chǎn)生巨大的影響。在計算機圖形學中就三類光源需要考慮,分別是點光源、聚光光源和方向性光源。每類光源分別描述了日常生活中 見到的不同類型的光。計算機圖形中有許多不同的反射模型,但最常用的模型分別是環(huán)境光反射模型、漫反射模型和鏡面反射模型,反射同物體的材質(zhì)有關。反射模型和光屬性一起確定了 3D 場景中物體的外觀。在本文中,我們只要設置調(diào)用燈光類的 SetLightType()設置光源類型, SetDiffuseColor()設置燈光顏色,在設置光源朝向,分配光源序號,是該序號光源可用即可實現(xiàn)場景中的光照效果。 汽車類模塊 賽車類游戲需要有個比較完善的汽車類,他們基本表達汽車的剛體運動,為此我們針對汽車建模。該汽車具有速度和加速度, 最大速度,剎車加速度和方向盤靈敏度(決定汽車每次轉(zhuǎn)動方向盤拐彎大?。?。同時該汽車可以繞 x軸,繞 y軸,繞 z軸旋轉(zhuǎn),還得有兩個向量值實時記錄汽車的位置和朝向,最后是賽車的渲染。如圖 310 所示: 本章小結 本章主要介紹了輸入檢測和響應
點擊復制文檔內(nèi)容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1