理解FPS游戏中的矩阵方框透视自瞄
初识矩阵
其实矩阵是线性代数里面的说法
矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合 [1] ,最早来自于方程组的系数及常数所构成的方阵。这一概念由19世纪英国数学家凯利首先提出。
类似:
矩阵的乘法:
向量
搞清楚FPS里的矩阵 首先要先理解向量
1 向量是表述一个点的运动方向和大小的
这其实是向量转为矩阵的一个过程
相机FOV
咱们看到的是一个二维的屏幕,而游戏里面是一个真实的 三维立体的世界,那游戏是怎么做到的呢?那就有了FOV这个东西诞生了,
主要分为三种fov类型
horizontal fov 16:9 (overwatch, farcry, pubg)
horizontal fov 4:3 (csgo, apex legend)
vertical fov(战地系列,彩6围攻)
高fov会使你感觉人物移动速度更快,看到的东西更广(屏幕显示更多东西),敌人也会变小,让你感觉后坐力也似乎变小(不是真正变小,但会给人这种感觉)这种感觉。
低fov反之。
理论上说高fov可能会对电脑性能要求更高,但一般游戏其实不会感觉到有帧数影响。
就是用一个相机拍个照 那你通过屏幕看到的不就是二维的了
2咱们知道向量只是表述一个坐标点的方向和大小 ,但是在游戏世界中,当我作为一个玩家看向一个物体 或者说一个敌人的时候 我该如何表达他的 坐标?水平朝向?垂直朝向?角度?,这时候 我们就会用到33 或者44 或者更大的矩阵 来描述 敌人的状态
FPS矩阵
上面说了这么多 其实我们要找的就是相机FOV的矩阵,我们知道了相机的矩阵,也就是知道了相机的坐标角度 朝向 等等,或者说 这个相机处于这个三维空间的 一个什么位置朝向,然后用矩阵来和敌人的坐标进行运算,就可以知道敌人在这个三维世界的位置 朝向 角度了,可能大家会说我都知道他坐标了 直接就能算出来了 没必要这么花里胡哨。但其实 咱们还要画出他的方框的,所以 你没相机矩阵 是没法准确的画出方框的
想要系统的学习或者理解可以去关注下
可以领逆向相关的电子书 逆向工具 还有每周更新技术文章