999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

FPS游戲引擎中的數學模型分析

2017-06-10 19:33:56王堯
電子技術與軟件工程 2017年11期
關鍵詞:引擎拋物線游戲

王堯

摘 要FPS游戲引擎中應用到的數學模型很多,貫穿在整個引擎中,此文對引擎中常用的數學模型進行分析。

【關鍵詞】FPS游戲引擎 數學模型

1 前言

FPS游戲又稱為第一人稱視角射擊游戲,該游戲引擎中涉及到大量的數學模型。下面我們就對引擎中常用到的幾個數學模型進行分析。

2 引擎中的數學建模

在引擎中,定義了大量的三維空間中的幾何元素。在引擎中依托三維坐標系對三維的點、向量、拋物線、矩陣等元素的位置關系做了定義和判斷。

2.1 三維坐標系

在引擎中三維坐標系是最為常見的數學模型之一。一般用于確定非玩家控制角色、游戲環境中的建筑、動植物等游戲模型的定位,以及玩家所控制的游戲角色的視野方向,移動方向,以及一些基本動作等。在引擎中坐標系不是唯一的,整個游戲大世界有著自己固定的坐標系系統,用以定位游戲場景的中所有不能夠移動或者暫時靜止的物體,而游戲場景中能夠移動的物體又有著自己相對獨立的坐標系嵌套在游戲大世界的坐標系之中,但是該游戲人物在游戲大世界中還是有著相對應的坐標,仍然可以通過游戲大世界的坐標進行定位。例如玩家在操縱游戲人物的時候,坐標系是以玩家所操縱的游戲人物模型為中心,隨著玩家對游戲人物的操縱做出調整,自己在游戲大世界中的坐標也會跟著改變。自動尋路功能也是依靠坐標系來實現定位的,通過坐標系確定起始位置和目標位置,然后計算出從起始位置到目標位置的最佳路徑,以實現自動尋路功能。

比較常見的三維坐標系的表示形式是笛卡爾坐標系。由X,Y,Z三條互相垂直的坐標軸組成。三條坐標軸可以構成X-Y,X-Z,Y-Z這個三個平面,因此,此類型的坐標系一共有8個卦限及8個被分割出來的子空間,這些子空間又決定了引擎中的天空盒或者游戲世界界限的構成。

該坐標系分為兩種:左手坐標系、右手坐標系。左手坐標系Z軸指向X-Y兩軸構成的垂直平面內,右手坐標系Z軸指向X-Y兩軸構成的垂直平面外。

2.2 點

在游戲中涉及到人質營救任務的場景時,將會用到點的概念。人質周圍敵對NPC的活動或是巡邏是有一定范圍的,玩家控制的游戲角色與任務觸發地點之間的距離是任務是否觸發的判斷依據,當玩家控制的游戲角色靠近一定的距離時觸發營救任務,敵對NPC觸發阻礙營救任務,當角色脫離超過一定的距離后,營救任務的觸發解除,敵對NPC回歸正常的巡邏距離;當人質營救成功時,人質將跟隨角色移動,這時也要判斷兩者之間的距離,用以實現跟隨傳送功能。

可以使用公式:

來判斷物體跟物體之間的距離。

2.3 三維游戲引擎中的向量

向量有兩個主要的屬性:長度和方向(長度也稱為模或者是大小)。向量經常用在對長度相等,方向一樣的物體進行建模,例如粒子系統中表示粒子的運動速度和加速度等,可以用向量來表示它的方向和速度,因為向量有兩個值可以表示它的速度和方向。在對攝像機進行操作的時候也可以用到向量。

但是在使用向量的時候要注意一點,向量的兩個屬性沒有代表位置的,所以在判斷兩個向量是否相等的時候只要判斷長度和方向是否相同就可以了,如果一樣就認為他們是相等的。

在三維空間中向量V可以用三元組V=(x,y,z)表示,但是要注意這三點的起始點和方向。如圖1如所示。

所以可以把由x,y,z三點構成的有向線段的長度看成是該向量的大小。計算公式:。

在游戲中,表示移動的距離時,也可以用向量來解決問題。在游戲世界中必須先為向量設置一個長度單位,用來表示具體的距離問題。

2.4 拋物線問題

在FPS類的射擊游戲中,將會大量的使用到拋物線。如:子彈的彈道,手雷扔出去的軌道,彈殼的掉落,物品丟棄等大量用到拋物線的原理來實現。

拋物線的線條形狀是由頂點和拋物線的對稱軸來決定的。

對稱軸垂直的拋物線方程:y=c(x-h)2+k頂點是(h,k),對稱軸為x=h

對稱軸水平的拋物線方程:x=c(y-h)2+h頂點是(k,h),對稱軸為y=h

常數c代表了拋物線的開口方向和開口大小。

如果c是正數,對稱軸垂直的拋物線的開口向上,對稱軸水平的拋物線的開口向右。如果c是負數,對稱軸垂直的拋物線的開口向下,對稱軸水平的拋物線的開口向左。c的絕對值越大,開口越小。

在引擎中使用的時候還要考慮到物體在現實世界中的體積,重量等因素,以及它們掉落時的情況,將它們的拋物線正確的模擬出來,增強游戲的真實性。如手雷扔出去到掉落的,也是一條拋物線,這時候就要考慮到手雷的在扔出去時的各種情況,以實現較為真實的模擬。

2.5 矩陣問題

在游戲中矩陣是用來實現變換和仿射的。

變換:在三維空間中物體實現上下、左右以及前后的6個不同方向的移動,放大、縮小和旋轉等運動操作。

仿射:物體在三維空間中發生運動操作后應該保持先前的形狀。

物體的運動與矩陣的關系:

2.5.1 移動——前后、上下、左右的移動

物體的移動可以是使用矩陣的加法來實現。

矩陣的加法運算是把物體移動前和移動后的相對應的位置元素(三維空間中的3個位置元素)相加,設定在三維空間中存儲位置的結構是一樣的,利用向量在引擎中實現。相當于對x,y,z三個坐標軸進行相加運算。游戲角色在場景中的運動就是通過獲取當前位置的坐標與目的地位置的坐標,再通過矩陣加法來實現。

利用矩陣加法實現物體移動:

2.5.2 物體的放大和縮小

在引擎中,可以利用矩陣的乘法對物體進行放大和縮小操作,如狙擊槍瞄準器中的放大圖像,玩家通過鼠標滾輪實現游戲畫面的縮放等。

對物體的放大和縮小操作可以理解為對物體的所有的頂點進行成放大和縮小(這邊頂點的的放大和縮小指的是頂點的在三維空間中的坐標),由于2點構成一條直線,頂點進行縮放,也就是變相的實現了對物體的縮放。

使用矩陣乘法實物體縮放變換:

其中,fx為x軸方向的縮放指數,fy是y軸方向的縮放指數,fz是z軸方向上的縮放指數。

如果想實現成比例的縮放,那么fx,fy,fz這三個縮放指數必須相等。

在引擎中,設定最大放大倍數為十倍,fy是y方向上的縮放因子取值為1-10表示放大,-1-10表是縮小,0表示不變。

2.5.3 物體的旋轉

在引擎中,可以利用矩陣的乘法對物體進行旋轉操作。如在游戲場景中創建武器的時候,武器以一定的速度按照某個角度在空中旋轉,以便玩家能夠從不同的角度觀察該武器。

在三維空間中,物體的旋轉跟xz,yz,xz這個三個平面有關。假設xy平面面向計算機屏幕前面的玩家,那么物體旋轉時按所在的不同平面位置來分,可以分為3種情況:

(1)繞x軸旋轉

繞x軸旋轉時,x的坐標值不會改變。

(2)繞y軸旋轉

(3)繞z軸旋轉

繞z軸旋轉的角度為正,由屏幕內指向屏幕外。

2.6 圓和球

一條線段有A,B兩個端點,如果以A端點為支點,繞著這個支點在一個平面內旋轉一周,那么這條線段B端點的運動軌跡形成的圖形把它稱作圓,A,B兩點構成的線段叫做半徑,A端點叫做圓心。

圓的方程:,圓心,半徑r。

圓形以自己的圓心為重點,以直徑作為對稱軸旋轉一周構成的曲面叫做球。

球體的方程:

,圓心是,半徑是r。

在游戲中的碰撞檢測,可以使用圓或者球體邊界之間是否相交來實現。當然也可以利用其他圖形來實現碰撞,但是圓或者球體在檢測的效率上高于其他類型的圖形。通常作為外圍檢測。

如果兩個圓形之間,它們之間的圓心的距離小于或者等于兩個圓形的半徑之和,那么就可以判斷發生了碰撞。

假設兩個圓形的方程為:和。如果那么兩個圓形發生了碰撞。

在游戲中,子彈從槍口出發到觸碰到物體,需要對子彈和目標物體進行碰撞檢測,用以判斷是否擊中目標,在確定擊中目標后,再利用碰撞物體之間的坐標得出發生碰撞時的具體位置,對該位置進行判斷,計算出產生的傷害值。

碰撞檢測在自動尋路功能中也能用的到,自動尋路功能的原理是在游戲角色和目標地點之間尋找一條能夠到達的最佳路徑,在尋路過程中會觸碰到場景中的其他物體,這時就需要對觸碰到的物體進行碰撞檢測,判斷該物體是否允許穿過。

3 結語

以上介紹的數學模型是FPS游戲引擎中常見的數學模型,廣泛運用在游戲環境,人物動作以及粒子系統等的設計中,它們之間互相依存,缺一不可。

參考文獻

[1]Greene Kelly.Laser game tags Matthews,competitor eyes market.The Business Journal,1994,8(51):3.

[2]Hyunuk An,Yutaka Ichikawa,YasutoTachikawa,et al.Comparison between iteration schemes for three-dimensional coordinate-transformed saturatedunsaturated flow model.Journal of Hydrology,2012,470-471:212-226.

[3]Hong.Jeong Min,Kim.MoonHee,Lee.GueMyung.On vector matrix game and symmetric dual vector optimization problem.Fixed Point Theory Appl,2012:233.

[4]Hong.Jeong Min,Kim.MoonHee,Lee.GueMyung.On vector matrix game and symmetric dual vector optimization problem.Fixed Point Theory Appl,2012:233.

[5]E.V.Chizhonkov.Iteration in a subspace for solving matrix games.Computational Mathematics and Mathematical Physics,2012,52(09):1221-1232.

[6]唐亨,張文彬.矩陣的循環置換[J].西南農業大學學報(社會科學版),1996,1:60-66.

[7]田麗華,姚鑫.虛擬場景中基于矩陣變換的碰撞檢測技術[J].科技創新導報,2009,30:47-49.

[8]LAI K-C.KANG S-C.Collision detection strategies for virtual construetion simulation.Automation in Construction,2009,18(06):724-736.

作者單位

福建江夏學院電子信息科學學院 福建省福州市 350108

猜你喜歡
引擎拋物線游戲
選用合適的方法,求拋物線的方程
巧求拋物線解析式
藍谷: “涉藍”新引擎
商周刊(2017年22期)2017-11-09 05:08:31
拋物線變換出來的精彩
玩轉拋物線
數獨游戲
瘋狂的游戲
飛碟探索(2016年11期)2016-11-14 19:34:47
爆笑游戲
第八章直接逃出游戲
小學科學(2015年7期)2015-07-29 22:29:00
無形的引擎
河南電力(2015年5期)2015-06-08 06:01:46
主站蜘蛛池模板: 91精品综合| 精品无码一区二区三区电影| 91精品国产自产91精品资源| 日韩欧美国产另类| 国产精品熟女亚洲AV麻豆| 国产午夜精品一区二区三区软件| 成人在线亚洲| 久久国产成人精品国产成人亚洲| 欧美高清视频一区二区三区| 亚洲综合在线最大成人| 伊人国产无码高清视频| 香蕉在线视频网站| 亚洲人成网7777777国产| 女人爽到高潮免费视频大全| 亚洲人成影视在线观看| 精品小视频在线观看| 欧美日韩国产在线播放| 97久久精品人人| 国产亚洲视频在线观看| 无码网站免费观看| 国产欧美日韩另类精彩视频| 不卡无码网| 欧美亚洲日韩中文| 国产亚洲精品97AA片在线播放| 九九热精品在线视频| 精品91视频| 精品久久久久久成人AV| 99精品在线视频观看| 国产草草影院18成年视频| 国产91高跟丝袜| 国产精品免费入口视频| 国产精品午夜电影| 午夜啪啪福利| 99精品国产电影| 久久精品国产在热久久2019| 在线精品亚洲一区二区古装| 午夜精品福利影院| 国产成人精品三级| av色爱 天堂网| 亚洲中文字幕97久久精品少妇| 亚洲高清无在码在线无弹窗| 国产一级毛片网站| 亚洲成人www| 毛片三级在线观看| 国产亚洲高清视频| 99久久精品国产自免费| 自拍欧美亚洲| 999精品视频在线| 女人毛片a级大学毛片免费| 免费啪啪网址| 精品久久久久久成人AV| 午夜日本永久乱码免费播放片| 91色综合综合热五月激情| 国产极品美女在线| 啦啦啦网站在线观看a毛片| 99久久国产综合精品2023| 农村乱人伦一区二区| 国产精品第| 一级爆乳无码av| 国产人免费人成免费视频| 国产微拍精品| 亚洲国产日韩在线观看| 日本精品影院| 亚洲日韩精品无码专区97| 中文字幕2区| 亚洲无线国产观看| 九九九久久国产精品| 国产精品手机视频一区二区| 亚洲天天更新| 亚洲色无码专线精品观看| 国产成人亚洲毛片| 亚洲视频三级| 黄色片中文字幕| 91无码人妻精品一区二区蜜桃| 中文字幕在线永久在线视频2020| 亚洲无码不卡网| 中文字幕va| 色噜噜在线观看| 美女一区二区在线观看| 欧美另类图片视频无弹跳第一页| 精品夜恋影院亚洲欧洲| 日韩AV无码一区|