亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2017-06-10 19:33:56王堯
        電子技術與軟件工程 2017年11期
        關鍵詞:三維空間對稱軸引擎

        王堯

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

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

        1 前言

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

        2 引擎中的數學建模

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

        2.1 三維坐標系

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

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

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

        2.2 點

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

        可以使用公式:

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

        2.3 三維游戲引擎中的向量

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

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

        在三維空間中向量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個不同方向的移動,放大、縮小和旋轉等運動操作。

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

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

        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 物體的旋轉

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

        在三維空間中,物體的旋轉跟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。

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

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

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

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

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

        3 結語

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

        參考文獻

        [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]唐亨,張文彬.矩陣的循環(huán)置換[J].西南農業(yè)大學學報(社會科學版),1996,1:60-66.

        [7]田麗華,姚鑫.虛擬場景中基于矩陣變換的碰撞檢測技術[J].科技創(chuàng)新導報,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年33期)2016-04-16 05:16:26
        無形的引擎
        河南電力(2015年5期)2015-06-08 06:01:46
        基于Cocos2d引擎的PuzzleGame開發(fā)
        三維空間中次線性Schr(o)dinger-Kirchhoff型方程的無窮多個負能量解
        X線引導三維空間定位系統(tǒng)植入骶髂關節(jié)螺釘的初步研究
        久久婷婷综合激情亚洲狠狠| 最新国产日韩AV线| 久久亚洲精品成人av无码网站 | 阿v视频在线| 日本女同性恋一区二区三区网站| 曰韩无码av一区二区免费| 青青草原精品99久久精品66| 国产91对白在线观看| 国产精品国产三级国a| 国产精品成人观看视频国产奇米| av无码天堂一区二区三区| 欧美日韩区1区2区3区| 亚洲一区二区视频免费看| 一区二区三区内射美女毛片| 国产真人无码作爱视频免费 | 国产亚洲自拍日本亚洲| 日本老熟妇50岁丰满| 欧美亚洲国产人妖系列视| 老司机在线免费视频亚洲| 亚洲日韩精品a∨片无码加勒比 | 国产无套粉嫩白浆内精| 国产精品亚洲一区二区三区| 无码人妻丰满熟妇区毛片| 国产成年无码久久久免费| av网站不卡的av在线| 真实国产精品vr专区| 五十路熟妇亲子交尾| 日本成人免费一区二区三区| 亚洲天堂二区三区三州| 男人靠女人免费视频网站| 国产精品1区2区| 宅男视频一区二区三区在线观看| 亚洲精品色午夜无码专区日韩| 亚洲男人av香蕉爽爽爽爽| 加勒比亚洲视频在线播放| 国产一区二区三区毛片| 亚洲av无码一区二区三区四区| 亚洲Av无码专区尤物| 亚洲一区第二区三区四区| 亚洲 另类 日韩 制服 无码| 国产亚洲sss在线观看|