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

正文內容

計算機3d賽車游戲的設計與實現(xiàn)(編輯修改稿)

2025-01-09 01:37 本頁面
 

【文章內容簡介】 接下來的 DirectX 最新產(chǎn)品是 DirectX11, DirectX 11 增加了新的計算 shader 技術,可以允許 GPU 從事更多的通用計算工作,而不僅僅是 3D 運算,這可以鼓勵開發(fā)人員更好地將 GPU 作為并行處理器使用。另外, DirectX 11 還支持 tessellation 鑲嵌化技術,這有助于開發(fā)人員創(chuàng)建更為細膩流暢的模型,實現(xiàn)高質量實時渲染和預渲染場景。多線 程是DirectX 11 的另外一大亮點, DX11 可以更好地利用多線程資源,從而使游戲更有效地利用多核處理器。 游戲引擎 游戲引擎概述 游戲引擎是游戲中與具體的游戲無關的核心技術部分,而游戲的部分就是場景和角色模型、動畫、聲音和代碼等其他控制部分。經(jīng)過游戲業(yè)的不斷的發(fā)展,如今的游戲引擎己經(jīng)發(fā)展為一套由多個子系統(tǒng)共同構成的復雜系統(tǒng)。一般這些引擎都是 3D 游戲引擎,從建模、動畫到光影、粒子特效,從物理系統(tǒng)、碰撞檢測到文件管理、網(wǎng)絡特性,還有專業(yè)的編輯工具和插件,幾乎涵蓋了開發(fā)過程中的所有重要環(huán)節(jié)。 游戲引擎就是游戲開發(fā)者們?yōu)榱私档椭貜蛣趧樱?節(jié)省開發(fā)時間和開發(fā)費用 而誕生的,它封裝了些在游戲制作中常用的功能,讓我們能直接調用這些功能而不用在從頭編寫。 選用的游戲引擎結構 在 3D游戲中,游戲引擎涵蓋的 內容很多 。選用的 該 游戲引擎是一個處理所有事務的系統(tǒng),它是一個控制模塊,向所有的子系統(tǒng)發(fā)出命令。因此,需要與每個游戲子系統(tǒng)聯(lián)系。 該 游戲引擎 也 是一個容器,它容納了其他所有的組件,控制整個系統(tǒng)的各個部分。 目前 該 3D游戲引擎 實現(xiàn)的 功能模塊包括:聲音控制、輸入控制、圖形渲染、游戲界面控制等。其中圖形渲染是引 擎的核心模塊,涉及面較廣,目前實現(xiàn)的功能點包括:頂 湖南大學畢業(yè)論文 第 7頁 點、紋理、光照、材質、文字、霧化、天空盒、攝像機、廣告牌、靜態(tài)網(wǎng)格模型、骨骼動畫、粒子特效、 LOD地形場景、地形多層細節(jié)紋理等。最后,使用 BSP技術實現(xiàn)了碰撞檢測。 該游戲引擎 各模塊之間的協(xié)同操作如圖 22所示 。 圖 22 引擎各模塊之間的協(xié)同操作 輸入系統(tǒng):接受玩家的鍵盤、鼠標等外設的輸入信息,然后引擎對這些信息進行響應作出相應效果 (即游戲邏輯處理 ),實現(xiàn)與玩家的交互。 聲音控制:加載、播放、停止聲音等操作。并提供較逼真的三維音效,使玩家如身臨其境的 感覺。 游戲 UI:即游戲的界面。加載圖片實現(xiàn)了圖形化的界面控件。方便玩家對游戲進行操作,提高用戶體驗性。 圖形渲染:是整個引擎的核心模塊,涉及面較廣,主要功能是繪制渲染三維游戲世界。目前實現(xiàn)的功能點包括:頂點、紋理、光照、材質、文字、霧化、天空盒、攝像機、廣告牌、網(wǎng)格模型、粒子特效、地形場景等。 碰撞檢測:主要使用了二叉空間分割技術,把碰撞網(wǎng)格存儲進二叉樹,實現(xiàn)快速的碰撞檢測。 湖南大學畢業(yè)論文 第 8頁 游戲結構 游戲與其他應用軟件有著一定的區(qū)別,它不是我們的單線、事件驅動或順序邏輯的程序。一個 3D游戲本質上是一個持續(xù)不斷的 while循環(huán),它執(zhí)行邏輯并在屏幕上不間斷的繪制更新圖像 ——通常以 40~60幀每秒或更高的速度不斷的繪制 [5]。這類似于電影放映方式,不同的是,我們將控制電影的情節(jié)發(fā)展。 本引擎中所使用的 游戲最基本的流程框架如圖 23所示 。 圖 23 3D游戲基本流程框架 初始化:這部分執(zhí)行與其他任何程序類似的標準操作,如內存分配、資源獲取、從磁盤加載數(shù)據(jù)等。 進入游戲循環(huán):這部分進入主游戲循環(huán),用戶將在這里不斷地執(zhí)行動作,直到退出主循環(huán)為止。 讀取玩家輸入:這部分處理玩家輸入,或將其存儲到緩沖區(qū)中,供游戲邏輯使用。 執(zhí)行游戲邏輯:這部分包含游戲代碼的主體部分,將執(zhí)行人工智能、物理系統(tǒng)和通用游戲邏輯,并根據(jù)結果在屏幕上繪制下一幀。 圖形渲染:在這一部分中,將根據(jù)玩家輸入以及邏輯的執(zhí)行結果,生成下一個游戲動畫幀。在甚于 3D游戲引擎中,將由一個復雜的 3D圖形流水線來渲染構成世界的成千上萬甚至上百萬個多邊形。在基于 Direct3D的 3D硬件加速中,大部分工作都由硬件來承擔。 循環(huán):這部分相當簡單,只需返回到游戲循環(huán)的開頭,然后重新執(zhí)行整個循環(huán)。 湖南大學畢業(yè)論文 第 9頁 關閉:這是游戲的末尾,意味著用戶退出游戲循環(huán),并返回到操作系統(tǒng)。但是,與其它任何 軟件一樣,需要在返回操作系統(tǒng)之前釋放占用的所有資源,并清理系統(tǒng)。 游戲控制臺控制流程如圖 24所示 。 圖 24 游戲控制臺的控制流程 本章小結 本章主要介紹了 DirectX 和 游戲引擎,讓我們了解兩者的大概功能和關系。在了解兩者的基礎上,著重介紹了該游戲選用的游戲引擎的各個功能模 塊及各模塊是如何協(xié)同工作的,為接下來的游戲制作打下了堅實的基礎。 最后介紹了下游戲的基本結構, 一個游戲本質上是一個持續(xù)不斷的 while 循環(huán),它執(zhí)行邏輯 ,并根據(jù)邏輯計算出下 一幀圖像,并在屏幕上不間斷的繪制更新圖像。 游戲最終表現(xiàn) 出來的就是一幀又一幀連續(xù)的畫面,我們所要作的就是在循環(huán)中,不斷的獲取用戶的輸入,根據(jù)輸入執(zhí)行游戲邏輯,生成下一個游戲動畫幀,最后渲染該動畫幀。 湖南大學畢業(yè)論文 第 10頁 3 游戲的汽車類模塊、場景渲染、輸入控制 輸入檢測和響應 每個交互式程序都要為用戶提供一些與其交互的方法。在視頻游戲中,通??梢酝ㄟ^諸如游戲墊、方向盤、操縱桿、鍵盤和鼠標等這類輸入設備實現(xiàn)。輸入檢測不僅要和大量設備打交道,還要能夠對于具有速度高要求的視頻游戲做出快速反應。在 Windows操作系統(tǒng)中, 輸入可以通過 DirectInput API匯總到一起 。 DirectInput是 DirectX API的一部分,負責對所有連接到機器上的設備進行輸入檢測。 從對 Win32 API編程的分析可以知道,鍵盤或鼠標的用戶輸入消息并不是直接傳遞給應用程序來處理的,面是是轉發(fā)回 Windows操作系統(tǒng),最后由 Windows回調應用程序的窗口過程函數(shù)進行相應的消息代碼處理。顯然,如果游戲程序仍采用這種方式來處理用戶的輸入將不會獲得理想的執(zhí)行效率。 DirectInput是 DirectX 的一個組件接口,提供了大量的接口函數(shù)處理用戶在鍵盤、鼠標、游戲桿以及力回饋等游戲裝置上的輸入,而且 DirectInput是直接與硬件驅動程序打交道,因此 DirectInput可較快地處理用戶的輸入。另一方面,正是由于 DirectInput直接與驅動程序進行通信,所以在控制面板上所做的任何鍵盤和鼠標的屬性設置,如鍵盤按鍵的延遲重復和鼠標的左右手習慣等,都不會對應用 DirectInput的程序起作用,除非是修改同驅動程序提供的屬性設置。 游戲引擎封裝了 DirectInput,我們只用初始化游戲引擎的輸入控制類,調用該類的函數(shù) IsKeyPress()判斷哪個鍵位被 敲擊,即可響應該鍵位的事件。 場景 渲染 在現(xiàn)實的許多商業(yè)游戲中,場景十分復雜,有著逼真的天空、高低起伏且十分精細的地形、各種天氣效果 (雨、霧等 )以及光照陰影等。 我們的游戲場景是個簡單的,只由天空,模型 (該模型包含了地形 )和光照組成 的,這些組成部分涉及到了許多技術。 湖南大學畢業(yè)論文 第 11頁 天空盒技術 在虛擬現(xiàn)實和視景仿真應用系統(tǒng)中,天空仿真是必不可少的內容之一。天空背景的真實感對用戶來說能大大提高視覺享受和沉浸感。所以,一個活動的、完整的天空是整個虛擬三維系統(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 緩沖寫入,先渲染場景再渲染天空盒,天空盒把整個場景覆蓋了。 湖南大學畢業(yè)論文 第 12頁 圖 37 天空盒效果 模型 運用 我們使用的模型是 X 模型,這種模型是 DirectX 本身的格式 ,可以通過幾個內置函數(shù)直接加載和渲染到 API。 X 模型最大的 優(yōu)點就是它們十分易用,可以直接和 Direct3D交互使用。 X 文件格式基于模板格式, Direct3D 有一些內置模板,可以用于定義 X 文件中的網(wǎng)格。這些標準模板包括外觀、紋理坐標和法線。因為 X 文件格式基于模板格式,所以 Direct3D 需要知道一些存儲在文件中用于某種目的的信息。 X 模型可以被保存為文本文件,也可以被保存為二進制文件,這意味著可以在任意的文本編輯器中打開 X 文本文件,并修改其內容。 X 文件中的 Material 標準模板用于指定可以施加在單個表面(多邊形)的材質。針對材質的標準模板定義了環(huán)境顏色、發(fā)射能量、 鏡面顏色、反射量、與材質相關的紋理圖像文件名。 X 文件中的 Mesh 模板定義了 X 文件中的完整網(wǎng)格。 X 模型可以包含多個網(wǎng)格。網(wǎng)格模板結構開始先定義頂點總數(shù),然后是頂點的 x, y, z 坐標。定義完頂點之后,接下來必須定義網(wǎng)格的外觀或多邊形。開始先是網(wǎng)格中的外觀數(shù),后面是每個外觀的三角形 湖南大學畢業(yè)論文 第 13頁 索引。每個 三角形索引行開始是代表該外觀使用的三角形數(shù)目,后面才是索引號。定義完頂點和三角形之后,就可以隨意定義其他屬性了,如每一外觀的材質、紋理坐標等。 X 文件中的 MeshMaterialList 模板指明網(wǎng)格中的哪個外觀使用哪種材質。材 質鏈表結構開始先定義材質數(shù)目,然后是將材質施加的外觀總數(shù)。這之后,每個外觀占一行。每行定義一個值,用該值引用要用的材質。該結構的最后一行是涉及到的所有材質鏈表。第一個材質索引號為 0,第二個為 1,依此類推。 X 文件中的 MeshTextureCoords 模板開始先指定網(wǎng)格中的索引數(shù),然后用逗號隔開,簡單的列出每個頂點的紋理坐標。有了該模板就可以在 Direct3D 中將紋理映射到網(wǎng)格上。 加載和渲染 X 模型很簡單。所有的 X 模型都保存在相同的名為 LPD3DXMESH 的結構中。調用 D3DXLoadMeshFromX()即 可。調用 LPD3DXMESH 對象的 DrawSubset()函數(shù)可以繪制模型。 我們需要注意的是, X 模型本身所有頂點位置都是基于其自身坐標,而我們要最終要將模型顯現(xiàn)在外面的屏幕上,這就需要進行些 坐 標變換。 首先簡要說明一下三維物體的成像過程。三維物體可通過建模的微分方法,把彎曲的表面切分為一個個的三角形面,這樣三維物體表面的繪制,就轉化為物體表面中所有三角形面的繪制。要渲染由眾多三維物體組成的三維場景,需要先引入局部坐標系,為場景中的各個三維物體進行三角形頂點的坐標量化。 局部坐標系示例如圖 38所示 。 圖 38 局部坐標系 引入世界坐標系,把整個場景中所有三維物體的各自頂點局部坐標,轉換為同一個世界坐標系下的坐標。在同一個世界坐標系中,場景中各個三角形面的頂點坐標如實地給出了場景中物體間的空間關系。如果需要對場景實施光照處理,還要對頂點的顏色值 湖南大學畢業(yè)論文 第 14頁 進行計算。這個過程最終是輸出具有世界坐標的場景下的所有三維物體的頂點信息。 世界坐標系示例如圖 39 所示: 圖 39 世界坐標系 在三維場景中選定位置和方向架設攝影機,取景范圍由一個棱臺視截體決定。在視截體之內部分,應顯示處理;視截體之外的部分則要裁剪掉,而不顯 示出來。為了便于裁剪,在攝影機的位置處建立一個攝影坐標系,其 Z 軸指向攝影機的視線方向,從而使視截體的 6 個外圍側面具有較為簡單的方程式。此時,需要將場景中所有物體的三角形
點擊復制文檔內容
研究報告相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1