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

正文內(nèi)容

畢業(yè)設(shè)計(jì)論文-3d賽車游戲的設(shè)計(jì)與實(shí)現(xiàn)(參考版)

2024-12-05 16:00本頁(yè)面
  

【正文】 。 /* = + * fV。 = + * fV。 } m_lCar[0]SetV(fV)。 } else if (fV 0) { fV = fV + a。//增加加速度 if (fV 0) { fV = fV a。 = + * fV。 /* = + * fV。 = + * fV。 m_lCar[0]SetV(fV)。amp。 fV = )//最大速度 fV = 。 if (a 0 amp。 //加速度 if (fV 0) a = a。*/ } else//放開按鍵時(shí) { float a = m_lCar[0]GetA()。 = + * fV。 = + * fV。 //計(jì)算出汽車下一幀的位置 = + * fV。 /*if (((int)fV)==0) { ()。*/ } else if((DIK_UP) || (DIK_W)) //else if(true) { fV = fV + m_lCar[0]GetA()。 = + * fV。 = + * fV。 //計(jì)算出汽車下一幀的位置 = + * fV。 好文檔 值得下載 if (fV = m_lCar[0]GetMaxV())//后退最小速度 fV = m_lCar[0]GetMaxV()。 //如果速度不為 0,播放汽車 Move聲音 if (fV != 0) { (true)。vCarDirection)。 D3DXVECTOR3 vCarDirection。m_carPositionNow)。 } else if((DIK_LEFT)||(DIK_A)) { m_lCar[0]SetRotateAngleY(fAngle)。 } } //將攝像機(jī)綁定在車子上 else if (bUseCar==true) { //方向鍵旋轉(zhuǎn)攝像機(jī)角度 float fAngle = m_lCar[0]GetAngle()。 } if((DIK_W)) { (MOVE_STEP)。 } //W\S\A\D鍵前后左右移動(dòng)攝像機(jī) if((DIK_A)) { (MOVE_STEP)。 } if((DIK_UP)) { (ROTATE_ANGLE)。 } //不將攝像機(jī)綁定在車子上 if(bUseCar==false) { //方向鍵旋轉(zhuǎn)攝像機(jī)角度 if((DIK_RIGHT)) { (ROTATE_ANGLE)。 //測(cè)試用量 , 標(biāo)識(shí)是否把攝像機(jī)綁定到小車上 //如果摁 F1 if((DIK_F1)) 好文檔 值得下載 { bUseCar = true。msg, float fElpaseTime) { //輸入控制 if((DIK_ESCAPE)) { return false。 好文檔 值得下載 致謝 參考文獻(xiàn) [1] 邵秋濤 . 納斯達(dá)克的游戲大鱷電子藝界 EA[J]. 新財(cái)經(jīng) .2021(06):14. [2] 王兆其 , 王陽(yáng)生 , 馬琳娜 . 游戲引擎在中國(guó) .計(jì)算機(jī)世界報(bào) [J].2021,4(12):B3. [3] 賽車游戲發(fā)展簡(jiǎn)史 ,車世界 [J].2021(08):136137. [4] Allen Sherrod. Ultimate Game Programming with DirectX[M]. Charles River Media,2021,May. [5] Andre LaMothe(著 ),李祥瑞 ,陳武 (譯 ).TRICKS OF THE 3D GAME PROGRAMMING GURUS, ADVANCED 3DGRAPHICS AND GRAPHICS AND RASTERIZATION[M]. 人民郵電出版社 ,2021,6. [6] 楊欽 , 徐永安 , 翟紅英 . 計(jì)算機(jī)圖形學(xué) [M]. 清華大學(xué)出版社 . 2021,3. [7] 周衛(wèi)榮,朱天相 . 碰撞檢測(cè)引擎模塊的設(shè)計(jì) . 南華大學(xué)學(xué)報(bào) [J]. 2021 (19):8588. [8] 李文娟 , 閻光偉 , 王媛 . 三維物體碰撞檢測(cè)中的包圍盒算法 . 中國(guó)電力教育 [J].2021(z2). [9] Frank Luna. Introduction to 3D Game Programming with Direct X : A Shader Approach (Wordware Game and Graphics Library)[M]. Jones amp。 雖然整個(gè)游戲運(yùn)行起來效果還是不錯(cuò),但是游戲還需要進(jìn)一步改進(jìn): ,汽車的沿地形爬升或下降時(shí),不能很流暢而真實(shí)的爬升或下降,這里需要進(jìn)一步的改進(jìn); ,由于汽車的坐標(biāo)位置我只設(shè)置了一個(gè)點(diǎn),該點(diǎn)位與汽車尾部,所以做汽車和周圍環(huán)境 的碰撞時(shí),只能用該點(diǎn)和周圍環(huán)境的三角形做比較,造成的后果是,在游戲的實(shí)際運(yùn)行時(shí),汽車有時(shí)會(huì)整個(gè)的駛出賽道,直道汽車的尾部的該點(diǎn)駛出賽道,我們才能檢測(cè)到碰撞,這里需要進(jìn)一步改進(jìn)。通過比較這些碰撞檢測(cè)來實(shí)現(xiàn)了本文游戲 中的地形跟蹤和汽車與模型的碰撞檢測(cè)。 測(cè)試 本文最終實(shí)現(xiàn)了一個(gè) 3D 賽車游戲游戲,這個(gè)三維賽車游戲,場(chǎng)景清晰漂亮, 通過天空盒技術(shù)渲染出的天空效果逼真, 輸入控制簡(jiǎn)單易上手,我們可以控制汽車在地圖上漫游而不會(huì)陷入地底,可以限制汽車只在賽道上行駛而不會(huì)駛離賽道,游行運(yùn)行流暢。 汽車與物體的碰撞檢測(cè) 本文所作游戲只存在兩個(gè) X 模型,一個(gè)是環(huán)形賽道模型,一個(gè)是賽道周邊環(huán)境模型。 在本文中,我使用的不是基于高度圖生成的地形,而是直接采用 X 模型作為場(chǎng)景,為此我需要遍歷組成場(chǎng)景的全部三角形,通過汽車的坐標(biāo)點(diǎn)來判斷汽車位于哪個(gè)三角形面中,并計(jì)算該面三個(gè)頂點(diǎn)的平均高度,然后將汽車的高度設(shè)置在該高度上。 4. 除了修改汽車的高度以跟蹤地形外,還根據(jù)汽車經(jīng)過的地形梯度修改汽車 /相機(jī)的傾斜角,以實(shí)現(xiàn)車頭根據(jù)地形上仰、俯沖的效果。然后將其同汽車的高度(減去地面間隙)進(jìn)行比較,如果后者更小,則將一個(gè)與高度差成正比的瞬時(shí)加速度用于汽車,以提高其向上的速度。 2. 有一個(gè)向上的作用于汽車的法向力,如果汽車在海平面之下,這個(gè)力將其往上推??梢宰咭粭l中間路線:使用一個(gè)基于速度、重力和瞬時(shí)加速度 的簡(jiǎn)化物理模型,其中瞬時(shí)加速度取決于相機(jī)的位置和方向??梢詾槠噭?chuàng)建一個(gè)真正的考慮了動(dòng)量的物理模型,但對(duì)于這樣簡(jiǎn)單的問題,這過于復(fù)雜。如圖 49: 圖 49 模型 地形跟蹤算法和 汽車的物理模型是彼此相關(guān)的,問題是這樣的:我們使用相機(jī)來表示玩家的視點(diǎn)(當(dāng)然,相機(jī)前面是預(yù)先渲染好的小型汽車)。我們通常將張高度圖當(dāng)作是一個(gè)矩陣來處理,這樣以便好文檔 值得下載 其中的每項(xiàng)都與地形網(wǎng)格的每一個(gè)頂點(diǎn)一一對(duì)應(yīng)。 地形的碰撞檢測(cè) 從幾何形態(tài)來看,不同的地形外貌,取決于地形的每一個(gè)點(diǎn)距離地形面的高度值。渲染顯存中的數(shù)據(jù)要比渲染系統(tǒng)能夠內(nèi)存中的數(shù)據(jù)快的多。例如:一個(gè)頂點(diǎn)可以有顏色、法線向量屬性和紋理坐標(biāo),如圖 48 圖 48 頂點(diǎn)結(jié)構(gòu) 一個(gè)頂點(diǎn)緩沖區(qū)是一塊連續(xù)的存儲(chǔ)了頂點(diǎn)數(shù)據(jù)的內(nèi)存,同樣的,一個(gè)索引緩沖區(qū)是一塊連續(xù)存儲(chǔ)了索引數(shù)據(jù)的內(nèi)存。在介紹本文采用的地形碰撞檢測(cè)時(shí),有必要要先了解 DirectX 是如何加載 X 模型文件中的信息的,特別是如何確定網(wǎng)格中的每個(gè)三角形的。通過分析 這兩個(gè)模型,我們發(fā)現(xiàn)在碰撞檢測(cè)中最常用的包圍盒技術(shù)不能用在本游戲中,但在研究包圍盒技術(shù)中學(xué)到的思想可以幫助我們解決這個(gè)問題。因?yàn)槭褂昧硕鏄浯鎯?chǔ),平均查找 100萬個(gè)三角形面,也只需要比較 20次左右,效率非常高。原理很簡(jiǎn)單,對(duì) 場(chǎng)景中的碰撞網(wǎng)格進(jìn)行了二叉樹分割之后,網(wǎng)格存儲(chǔ)進(jìn)了一顆二叉樹內(nèi)。僅需要通過兩次平面的前后判斷就可以確定空間的先后順序,算法威力可見一斑。如果一個(gè)人處于 C房間內(nèi),那么如何判斷空間的遮擋順序呢?從根結(jié)點(diǎn)開始,由于處于平面 1的 “后面 ”,所以, BC空間應(yīng)該先于 A空間,然后,由于人處于分割平面 2的“前 ”面,所以, C空間應(yīng)該先于 B空間。這是一個(gè)非常標(biāo)準(zhǔn)的二分法,僅按照 “前 ”和 “后 ”兩個(gè)邏輯上的概念來劃分空間。 BSP 技術(shù)作為室內(nèi)引擎渲染的主流技術(shù)雖然已經(jīng)存在多年,但是生命力仍然非常頑強(qiáng),最新的 DOOM3, HL2 仍然將它作為渲染的主流技術(shù) 。 游戲引擎使用的 BSP 碰撞檢測(cè)簡(jiǎn)要解析 BSP Trees 英文全稱為 Binary Space Partioning trees, 二維空間分割樹,簡(jiǎn)稱為二叉樹。重新計(jì)算包圍盒的計(jì)算量較大。綜合起來就是個(gè)層次包圍盒都應(yīng)盡 可能緊密地包裹其中所含的三維碰撞體。把將要包圍的幾何體的頂點(diǎn)向方向軸上投影,找出各方向軸的投影區(qū)間,各投影區(qū)間的長(zhǎng)度就是所求包圍盒相應(yīng)的尺寸。則包圍盒的中心位置 m為:如圖 44. 圖 44 包圍盒的中心位置 m 協(xié)方差矩陣元素 Cjk,如圖 45. 圖 45 協(xié)方差矩陣元素 Cjk 其中,公式 pi=pi— m, qi=q— m和 ri=ri— m都是 3*1 向量。尺寸則是通過位置和方向這兩個(gè)量進(jìn)行計(jì)算的。它的計(jì)算相對(duì)復(fù)雜,需要對(duì)包圍盒的方向、 中心位置、尺寸分別進(jìn)行計(jì)算。雖然這個(gè)算法實(shí)現(xiàn)起來有些復(fù)雜,但這并不會(huì)影響場(chǎng)景的運(yùn)行速度。與 AABB 包圍盒相比, OBB 包圍盒的最大特點(diǎn)是其方向的任意性,這使得它可以根據(jù)被包裹對(duì)象的形狀特點(diǎn)盡可能緊密地包裹對(duì)象。 圖 43 球心 m 和半徑 R 3. 沿任意方向包圍盒 OBB(Onented Bounding Box)算法 OBB 是最 貼近三維幾何體的平行六面體。半徑則是長(zhǎng)、寬、高的最大值。計(jì)算包圍球的重點(diǎn)在于計(jì)算包圍球的球心和半徑。 中心點(diǎn) m和長(zhǎng)、寬、高 a, b, c 分別為,如圖 42 圖 42 中心點(diǎn) m 和長(zhǎng)、寬、高 a, b, c 2. 包圍球 (sphere)算法 包圍球是進(jìn)行碰撞檢測(cè)的三維幾何體的最小外接球,當(dāng)幾何體旋轉(zhuǎn)后不需要對(duì)包圍球進(jìn)行旋轉(zhuǎn)。分別指模型中各個(gè)點(diǎn)在 x軸方向的最大、最小值, Ymax、 Ymin分別指模型中各個(gè)點(diǎn)在 Y 軸方向的最大、最小值, Zmax、 Zmin分別指模型中各個(gè)點(diǎn)在 z軸 好文檔 值得下載 圖 41 AABB 內(nèi)的任一點(diǎn) V(x, y, z)滿足條件 方向的最大、最小值。計(jì)算 AABB 的重點(diǎn)在于計(jì)算AABB 的中心 及盒子的長(zhǎng)、寬、高,由此確定包圍盒的尺寸。 AABB 的算法簡(jiǎn)單、易于實(shí)現(xiàn)。因此,描述一個(gè) AABB 包圍盒僅需要六個(gè)標(biāo)量。 FDH 是由事先確定好的 K 個(gè)方向的半平面組成的包圍體, FDH 又稱為 K— DOP(DOP 是在包圍盒對(duì)物體逼近的緊密 性和包圍盒碰撞檢測(cè)的復(fù)雜性之間取的折中方案 ) [8]。這樣可以排除大量不可能相交的幾何體,從而快速找到可能相交的幾何體。另外的兩種算法只能簡(jiǎn)單解決凸多面體之間的碰撞檢測(cè) . 包圍盒算法 包圍盒是指用規(guī)則的形狀把場(chǎng)景中的物體 (其中包括規(guī)則物體和不規(guī)則物體 )包裹起來,以達(dá)到快速、簡(jiǎn)單檢測(cè)多面體之間是否相交的目的。 好文檔 值得下載 碰撞檢測(cè)算法主要有三種:基于包圍盒的碰撞檢測(cè)算法,基于距離計(jì)算的碰 撞檢測(cè)算法,基于維諾圖的碰撞檢測(cè)算法。如果問題可以簡(jiǎn)化為一個(gè)更容易處理、計(jì)算更快的形式,那么有可能實(shí)現(xiàn)某一技術(shù)而不會(huì)影響程序性能,而這是在長(zhǎng)時(shí)間做某事時(shí)才會(huì)出現(xiàn)的情況。假想一下,如果一個(gè)三角形需要很大的 CPU開支,那么幾千個(gè)或幾百萬個(gè)三角形將會(huì)立即摧毀所有現(xiàn)代處理器的性能。 好文檔 值得下載 圖 310 汽車效果圖 好文檔 值得下載 4 賽車的碰撞檢測(cè)和測(cè)試 對(duì)于不同類型的不同需要的碰撞檢測(cè)我們將采用不同的方案解決. 1. 第一類碰撞主要是發(fā)生在主體和場(chǎng)景物體之 間或者發(fā)生在主體和游戲中某些非場(chǎng)景物體 (特定物體,或者其他游戲玩家 )之間的碰撞,對(duì)于我們提到的第一類碰撞并且在不需要測(cè)試最初碰撞點(diǎn)的情況下,我們適合用包圍盒的方法給出碰撞檢測(cè)算法. 2. 第二類碰撞是由粒子和場(chǎng)景以及游戲者之間發(fā)生的碰撞.一個(gè)粒子 (比如子彈 )打出后可以近似等價(jià)為一條光線,由此光線便能近似地知道粒子是否會(huì)與某些物體發(fā)生碰撞.通過遍歷 BSP 樹便能得到相應(yīng)的結(jié)果.也就可以獲得和那個(gè)面碰撞的信息. 3. 第三類碰撞是對(duì)于高速行使或飛行的物體的碰撞,如果不出現(xiàn)失真的現(xiàn)象就必須使用生成超立方體 (四維物體 ).這里,為 了簡(jiǎn)化計(jì)算,在生成超立方體時(shí)仍然用一個(gè)
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1