欢迎光临深圳市飞腾科技有限公司
-->
返回列表
您当前的位置:主页 > 新闻动态 > 行业新闻 >
CSGO“近大远小”背后的FPS视野原理 可能和你想的有点不同
发表于:2020-06-07 17:03 分享至:

很多老鸟们都知道,在CSGO中,存在着一种被称作近大远小的规律(当然,这跟美术领域的近大远小透视原理并不是一回事)。简单来说就是,双方在一个掩体形成的夹角两边互相观察,那么位置距离掩体越远的一方,会越早发现对手。

这组图,模拟的是在Dust2地图上,一方从A门出来向A大道移动过程中,搜索蓝箱位置这个阴人点,而对手则在蓝箱阴人位躲藏时的情形。而在这种局面下,由于搜点的一方距离蓝箱更远,所以,他会比阴人一方更早发现对手——也即搜点的玩家已经看到对手的时候,对手却看不见他。

绘制这张图的原作者如此描述:玩家B在此时可以看见玩家A的左手,开枪也可以命中;而玩家A看向玩家B的视线,则受到了掩体的阻挡。

对此,我表示欣赏这位作者的探索精神和分析能力,但作为从业者,伴随着这张所谓原理图在网络上的不断转载和传播,我也觉得有必要在这里指出:该作者的分析,实际上是一种倒因为果的错误。

近大远小概念,实际上是伴随着CSGO的火热而逐渐为人所知的,无论是通过网络搜索,还是与CS系列老玩家交流都会发现,在CSGO诞生前,CS圈并没有谁会讨论近大远小话题。

事实上,在CS1.6以及更古早的时代,若出现第一张图中所示的情况,一方从更远的角度搜点,另一方缩在掩体后阴人的话,那么双方发现对方的时间其实是十分接近的(略有差异,但差异不足以让一方获得先发制人的优势)。

然而,网络流传的这张几何图,看起来应该是放之四海皆准的才对——毕竟,CS系列一直都是3D自由视角的FPS游戏,不应当出现CSGO和前几代有如此明显差异的情况。

按照几何图作者的解释,玩家在游戏里所看到的每一帧视野,可以看做是由玩家角色模型头部中心点,向角色正面方向进行拍摄的结果。但实际上,你在CS历代版本里向下低头,都无法看到自己的脚。

一如上图所示,CS里无论怎样低头往下看,画面里都看不到玩家角色的脚或者身体任何部位。

这说明,玩家在视野里能够看到什么,并不是简单地在人物头部或者任何地方摆放一个摄影机,然后超准心所指示的方向进行拍摄。

事实也正是如此。从背后原理来说,在FPS游戏里,玩家可以看到什么样的画面,画面里的枪支,手,包括玩家角色之外的其他玩家,障碍物,场景等任何其他事物应该怎样呈现,并不是一个实时拍摄并输出画面的结果,而是经过了一系列复杂计算后所呈现出来的。

众所周知,早期的FPS游戏,如1992年的现代FPS启蒙之作《狼穴》,虽然放在今天来看画面粗糙,但大体上还是比较逼真地模拟了角色战斗过程中的视野。

而随着FPS游戏的不断发展,画质不断升级,以及计算机图形学的快速进步,FPS游戏大作层出不穷,画面的拟真水平越来越高。

但长久以来,都有一个困扰许多FPS开发者的难题:到底玩家的游戏画面里应该呈现多大范围的视野,以及要呈现出哪些要素。

早年的FPS其实解决方式比较简单粗暴——首先,在人物头部模型的额头附近(也即两只眼睛连线的中点位置)设置一个摄像机,摄像机方向即玩家当前鼠标准心所指方向,于是这台摄像机应当拍摄到哪些画面,就给玩家呈现什么样的画面。当然,玩家角色自身模型是不会被拍摄到的,这也是为什么早期FPS游戏里基本上低头都看不到自己的脚。

当然,这个摄像机其实是个模拟概念,是通过假定一个摄像机,来计算出这台摄像机应该拍摄到的画面,最后输出给玩家一个画面结果。

当FPS画面视野仅仅以一个坐标点上设置摄像机作为基准来进行计算和呈现时,伴随着玩家的快速移动,当这个坐标点位置设计发生变化时,玩家的3D眩晕程度也会不同

3D眩晕产生的原因,是因为人体神经中枢因逼真的游戏画面和真实世界的自我运动感知定位不匹配,因迷惑而发出眩晕指令,而只要改变游戏画面的变化速度(比如降低玩家角色移动奔跑速度,从而拖慢摄像机坐标点的变化速率),3D眩晕程度也会发生变化。

于是,2000以后的游戏业界,为了FPS游戏的普及,开始越来越推崇角色移动速度不快,对抗节奏偏慢,玩家视野不需要频繁地大幅度变化的设计方向。

众所周知,2000年以前的FPS招牌是节奏明快,常常需要大范围拉视野(比如配合火箭跳来追击敌人)的《雷神之锤》系列、《DOOM》系列、《Unreal》系列。

而在2000年以后,则是CS系列、《使命召唤》系列、《战地》系列的天下。因为很多过去在《雷神之锤》系列里会感到严重眩晕的玩家们发现,只要速度、节奏降下来,他们也能接受FPS这种游戏类型。

在知道3D眩晕的严重程度和FPS游戏的视野呈现存在一定关系后,FPS开发者们开始绞尽脑汁,不断改进游戏画面视野的计算和呈现方式。

与早期FPS游戏的视野呈现往往将摄像机设定为一个坐标点不同,当代的FPS游戏,其摄像机原理往往要复杂得多。

相信很多玩家,应当都有这样的印象——明明移动速度差别并不十分巨大,但在《我的世界》里进行移动时,画面视野的变化看起来比同时代的很多FPS游戏要剧烈。具体来说就是,对比《我的世界》和CSGO这类游戏来说,在《我的世界》里,玩家视野内画面边缘的物体拉伸形变看起来更为剧烈。

其实,造成不同的3D游戏之间的这种视觉差异,正是源于不同游戏对摄像机参数定义的不同。

事实上,当代3D游戏,特别是FPS游戏中,摄像机的参数设定,以及最终实时渲染和输出的画面结果之间,需要经历一系列复杂的计算,这些计算涉及到当代计算机图形学中的众多知识和理论,想要真正理解,并非是一篇科普文章能够做到的。

举例来说,想要100%准确知道CSGO里的摄像机到底坐标怎么定位的,以及摄像机位置与最终画面视野之间的关系,那么你首先需要学习有关3D向量及相关计算,空间角度及相关计算,熟悉余弦公式,三角函数等数学知识在计算机图形学中的运用,能够熟练运用笛卡尔坐标系,熟练掌握内积、外积、向量积的计算等等……

总的来说,FPS游戏的摄像机只是在引擎和开发中的一个概念,具体到玩家画面的实时渲染结果,这当中还有太多额外的因素需要考虑。

因此,CSGO的近大远小也并不是文章一开始的那张几何图就能简单解释的。事实上,恰恰是因为几何图所示的情况更加符合现实世界里人们的认知,再加上这种现象也有利于鼓励进攻,因此Valve才在开发CSGO的过程中,通过对玩家画面视野的一系列参数设定,在CS1.6的基础上增强了近大远小的效果(CS1.6其实也有一定近大远小,但远点优势不够明显,加上无声跳跃搜点的存在导致搜点方静步搜点收益极小),也才使得今时今日,近大远小原则成为了每个CSGO进阶玩家必须掌握的知识点。

今天的游戏资讯至此结束,你还有什么其他看法吗?请在评论中留言给我们。这里是八号避难所,每天为你带来主机圈、网游圈、电竞圈有价值的深度内容和更犀利的吐槽。如果你觉得我们还不错,请关注我们!谢谢你这么好看,还愿意读我们的文章!