我不明白“ 2.5D”一词的含义。我对2.5D和3D环境之间的差异感到特别困惑,即使我已经阅读了有关两者的不同定义和文章。我了解2.5D就像3D一样的零件,但我不了解2.5D不同于其他零件的零件。
那么,将游戏设为2.5D意味着什么?例如,这里显示的游戏是2.5D吗?
我不明白“ 2.5D”一词的含义。我对2.5D和3D环境之间的差异感到特别困惑,即使我已经阅读了有关两者的不同定义和文章。我了解2.5D就像3D一样的零件,但我不了解2.5D不同于其他零件的零件。
那么,将游戏设为2.5D意味着什么?例如,这里显示的游戏是2.5D吗?
Answers:
术语2D和3D(您可能已经知道)指的是欧几里得世界空间中的空间维数。此维数必须是序数;没有“ 一半尺寸”之类的东西,因此术语2.5D实际上是一个废话,没有内在含义。也就是说,2.5是“介于2和3之间的某个位置”,因此2.5D通常表示沿“介于2D和3D之间的某个位置”的含义。
就个人而言,我使用该术语来指代游戏的图形和逻辑世界空间具有不同维度的情况。特别是这里有两种不同的变体:
该术语的另一个常用用法(尽管我没有使用过)是指利用3D和广告牌 2D图形的组合的游戏。在这种情况下,该术语根本没有描述游戏的逻辑维度。几乎所有3D游戏都以某种方式使用广告牌,包括粒子系统,远距离对象代理和虚拟用户界面叠加层。因此,该术语通常仅在非背景对象的大部分使用2D图形并且2.5D和3D之间的边界有些模糊时才使用。
我知道的第一个使用了“ 2.5D”一词的游戏是Doom(尽管从某种意义上讲,《德军总部3D》也可以胜任)。
Wolfenstein 3D是一款基本的2D游戏,带有3D演示。您在2D迷宫中导航,所有地板都是平坦的,所有天花板都在同一高度,没有窗户,门是从地板到天花板并侧向打开的,因此您永远不能在另一个物体的上方或下方。游戏使用光线投射法来计算屏幕的每一列,确定墙在该方向上的距离以及墙的纹理。然后绘制一列墙纹理,其高度与距离成反比,并在上方和下方的空间分别用地面填充和天花板填充进行绘制。敌人和物体是精灵,具有有限的方面,并且它们的大小也与距离成正比。
毁灭战士使用了与德军总部3D非常相似的技术,但滥用了它以获得更多3D体验。地图仍然2D,使用2D二进制空间分区(因此是.BSP映射文件名)表示。当您点击选项卡时,在自动地图上看到的只是地图的直接2D渲染。但是每个扇区都有一个独立的“地板高度”和“天花板高度”,并且边缘具有顶侧和底侧纹理(当它们的顶棚高度比其周围环境的一部分低或更高的地板高度时使用)。这样就可以实现楼梯,窗户,平台,游泳池和其他效果-引擎只需要能够保留通过的多个扇区的列表,然后才最终撞到墙壁以及它们各自的纹理。但是您仍然没有真正的3D架构-您可以使用地板的凸起部分在某些史莱姆上架起一座“桥梁”,但是在任何情况下都不可能桥。游戏中的位置仍然只有X和Y。玩家对其身高的唯一控制权是物体掉落,而电梯则只是脚本,用于更改地板高度。敌人仍然是精灵(尽管我认为它们具有更多方面),因为碰撞检测仅是二维的,所以射击的高度“自动瞄准”,并且在游戏中找不到3D模型。
Heretic和Hexen使用了Doom衍生的引擎,使事情更进一步,以至于它们有时被称为“ 2.75D”。他们具有大多数相同的架构限制和基于精灵的敌人,但是增加了玩家向上和向下看(倾斜视图,但直到目前为止否则引擎会损坏)以及跳跃,飞行和蹲伏的能力。 (独立更改其高度)。
2.5D(“二维半”),3/4透视图和伪3D ar术语,主要在视频游戏行业中,用于描述2D图形投影和用于产生一系列图像的类似技术(或场景)模拟实际上不是三维(3D)的外观,或模拟限于二维平面的其他三维视频游戏中的游戏玩法。
根据我的经验,强调哪个定义取决于您正在与之交谈的人的年龄。
年龄较大的游戏玩家往往会使用第一种定义“ 2D图形投影和类似的技术来使一系列图像(或场景)模拟三维(3D)的外观,而实际上却不是 ”
年轻的游戏玩家会使用第二种定义“ 在限制为二维平面的其他三维视频游戏中玩游戏 ”。
我个人使用第二个定义。我认为Trine,Donkey Kong和Super Mario Bros Wii U均为2.5D。另外,2.5D Steam标签使用第二个定义。我认为这是对典型游戏玩家如何定义概念的很好的试金石,因此,我认为第二个定义更为正确。
具有3D游戏图形的任何视频游戏,都是按3维计算的。请注意,这使其成为第二个2.5D定义的超集。
2.5D只是一种看起来像3D的2D表达方式。
我认为,例如,如果您使用3D引擎,但仅将游戏玩法限制在2D平面上,则您可能真的会模糊定义的界限,但我个人认为2.5D是3D 外观却是 2D 行为。
您发布的游戏屏幕截图是3D游戏。
在3D游戏中,使用顶点绘制对象以绘制实际的3D对象,然后对它们进行着色,纹理化等等。
在2D游戏中,对象是从精灵/精灵表等中获取的。
两者之间的区别在于您如何查看它们。精灵就像一张平纸。您无法以不同的螺距或角度观看它,否则精灵将倾斜。在3D对象上,随着摄像机的移动,您可以看到对象的不同部分,因为对象是3D的。
在2.5D游戏中,您正在结合这两个世界。请记住,只是因为您不能移动相机来查看不同的角度,也不会使游戏不是3D的。决定它的是其中的对象。
2.5D游戏的一个很好的例子是《仙境传说》。使其成为2.5D的原因是,世界大部分情况下都是3D对象的妥协。建筑物,景观等是带纹理的3D对象。您可以旋转头戴式摄像机并同时查看这些对象的不同侧面。您可以查看建筑物的正面以及左/右/屋顶区域。但是,播放器是2D精灵,其位置看起来似乎是向上站立的。如果旋转摄像机太多,则游戏必须为该角色加载精灵表的其他单元,以更改其站立状态。您不能查看角色的不同角度,因为它们不是3D的。根据摄像机的视图动态加载角度。
http://sprites.technoized.com/images/sprite/ro/gm_m.png
这是游戏中的一张精灵表。如果只是看一看,您会认为它来自2D游戏。一个人,你是正确的。但是,一旦将其放置到3D世界中,您便拥有了2.5D游戏。
2.5D通常是表示“等距”的另一种方式-以呈现3D外观的方式绘制的2D图形,但实际上并未模拟3D坐标。请参阅有关等轴测图形的维基百科文章:http://en.wikipedia.org/wiki/Isometric_graphics_in_video_games_and_pixel_art
要点是,在2.5D /等轴测图中,您仍在使用2D坐标系-仅使用x和y轴来计算图形。您的图形可能只是2D子画面,通常会对其进行绘制以使您可以看到三个面,然后使用(x,y)坐标将其放置在屏幕上。有时甚至可以通过3D建模来创建精灵,然后从多个角度创建3D模型的2D精灵。
通常,移动对象只有几个角度可以从中查看。如果在等轴测视图中旋转字符,则字符将不会平滑旋转,但是您会看到几个不同的角度,例如前,3/4,侧面等等。这是因为每个唯一的视角都需要一组全新的精灵。
由于此类系统的局限性,等距游戏通常仅支持一个视角。等距游戏的另一个显着特征是它们通常没有消失点。在现实生活中观看物体时,如果物体离您更近,则该物体在您的视野中会显得更大。如果物体距离较远,它将显得较小。在等距游戏中,所有对象通常无论大小在空间中都显示相同的大小。
相比之下,3D游戏可以模拟所有三个轴-x,y和z。在非常低的级别上,计算机将x,y和z转换为x,y以便在监视器上显示,但在更高的级别上,艺术家实际上是在3个轴上操纵点来表示对象。由于计算机具有有关对象形状的所有信息,因此它可以动态计算该对象在任何角度下的外观,并且随着您离它越来越近,它可能会变小或变大。
某些游戏混合了2.5D和真实3D。我能想到的一个例子是Disgaea系列,该系列具有3D背景和2D精灵。
通常,术语“ 2.5-D”是指两种截然不同的游戏风格之一。
它可能意味着:
1)使用2-D渲染技术但控制3个空间尺寸的游戏。通常使用图形技巧来显示好像实际上是在3-D中渲染的。这在90年代非常普遍,但在今天还不多见。(例如:“ DOOM”,“ Duke Nukem 3D”,“ Wolfenstein 3D”)
2)一种完全以3D渲染的游戏,但只能沿一个或多个2D平面进行控制。这种风格一直很流行至今。(例如:“小小大星球”,“新超级马里奥兄弟”,“试用HD”)
需要注意的一件事是,当使用模型视图控制器架构模式时,第一种游戏样式具有一个“模型”来表示3维数据,而一个“视图”则只向2个维度显示给用户。第二种游戏风格则相反。
在2.5D中,您可以使用2D资源/渲染技术来呈现3D环境的感觉。
现在,有了这个定义,在以下潜在的模棱两可的情况下,需要进行一些详细说明:
游戏A
使用3D图形,GPU加速并且所有(游戏对象是网格,而不是图像)都具有固定的摄影机角度。让我们更糟的是,投影是正交的,经典的是63.43度。乍一看,图形不是2D的唯一方法是,因为3DGC(除非您格外小心地进行渲染),很容易与手绘图精灵区分开,而与用于渲染它们的投影无关。您可能会尝试使用不同的渲染技术,参数,着色器等,并且很难掩盖它们是3D网格这一事实。
游戏B
游戏A的端口,但针对已知平台的平台,这些平台的硬件无法很好地处理3D图形或根本无法处理3D图形。然后,端口用精灵替换网格。例如,它仍然使用3D边界框进行碰撞,并且对象具有带有x,y和z值的position属性,因为游戏逻辑几乎没有被触摸或根本没有被触摸,只有渲染代码被更改。
由于游戏B的精灵是游戏A的3D资产的渲染,并且为了使事情变得更加含糊,游戏A不需要做任何需要复杂着色器的操作,因此在99%的所有GPU中,您无法将帧与游戏区分开游戏A中一帧的B。
在2.5D中,游戏对象之间的交互仅限于无法妥协3D幻觉的情况。例如,要表示两个字符拥抱,您将必须创建一个具有两个字符交互作用的单个图像文件,因为尝试仅使用每个字符一个图像来表示拥抱动作将太困难或不可能。也许您可以将角色身体分成几部分,然后以正确的顺序绘制它们。在3D中不存在此问题(存在另一个问题,即正确摆放了两个角色,因此它们不会渗透到另一个角色的网格中)。
现在,将其可视化,假设游戏A和B有一个错误,在某些情况下,该错误会使玩家角色穿过另一个游戏对象,从而使我们能够轻松地区分2.5D游戏对象和3D游戏对象。
游戏B,2.5D渲染,精灵按其位置向量的z值排序。在此示例中,正z向下,而负z向上。z轴和y轴平行,但z的缩放比例为y的0.5。因此,如果可见区域是从10y到-10y,则在同一区域中我们的距离是20z到-20z。z较大的对象将在后面绘制,因此它们将被视为位于z较低的对象的前面。玩家角色的阴影看起来很奇怪,因为阴影位于地板之上的上一层,但在所有其他对象的下一层中,因此玩家角色的阴影永远不在立方体的顶部。
游戏A,3D渲染。深度缓冲区(也称为z缓冲区)用于像素精度深度测试。因此,一个对象不需要完全遮挡另一个,甚至三角形也不需要完全遮挡另一个,我们进行了像素精度深度测试。我们可以以任何方式旋转游戏对象,并且在它们交互时仍然可以获得逼真的结果。
在简历中:在2.5D中,一个精灵位于另一个精灵的前面或后面。在3D中,网格由三角形组成,但是三角形不是深度测试的最小单位,因此可以具有像素精度。当然,由于资产是为固定的相机角度创建的,因此无法以2.5D旋转相机,而如果3D游戏中相机的角度受到设计的限制,则3D是自然的,则旋转是自然的。
当您只能渲染2D图形时,有多种技巧可以使您有进入3D世界的感觉,我仅提供了一个使用我的废弃项目的资产快速制作的示例。
为什么不总是使用3D而忘记2.5D?
好吧,我可以考虑一些示例,说明为什么开发人员可能更喜欢2.5D方法:
使用2.5D,可以近似多少逼近3D图形的结果?
存在性能和编程复杂性的范围。当您接近该范围时,您开始怀疑您的项目是否真的可以在2.5D中实现,或者是否必须使用完整的3D。例如,您可以在2.5D中使用z缓冲(理论上),但是您可以支付视频内存费用(带有板载图形的旧台式计算机,而不是功能强大的移动设备)吗?您是否要支付拥有额外图像来保存每个子画面的z遮罩的存储成本?
2.5D的最佳选择是RPG游戏,例如Baldur's Gate系列或RTS,认为《帝国时代1》和《帝国时代2》(AoE 3是完全3D且易于区分)。
有用的参考资料:
Z缓冲:http://en.wikipedia.org/wiki/Z-缓冲
正射投影:http : //glasnost.itcarlow.ie/~powerk/GeneralGraphicsNotes/projection/orthographicprojection.html