什么是“ 2.5D”环境?


31

我不明白“ 2.5D”一词的含义。我对2.5D和3D环境之间的差异感到特别困惑,即使我已经阅读了有关两者的不同定义和文章。我了解2.5D就像3D一样的零件,但我不了解2.5D不同于其他零件的零件。

那么,将游戏设为2.5D意味着什么?例如,这里显示的游戏是2.5D吗?

马里奥


10
据我所知,当精灵用于模拟3D外观时,其值为2.5D。只要您拥有固定的相机但仍在使用3D几何图形,它仍然是3D游戏。从屏幕截图中可以看出,Mario是3D模型,因此游戏似乎是完整的3D。它涉及的是您是在典型的3D管道中模拟3D还是实际渲染3D几何。
Grimshaw 2014年

@Grimshaw那么,2.5D是否意味着例如可以使用3D模型进行2D引擎处理?我敢肯定,如果您同时使用2D引擎和3D引擎制作此类游戏,那您肯定会有对手。这些是什么?3D的性能成本?
mathieug 2014年

4
2.5D几乎意味着您仅使用2D图像(精灵)来渲染您的世界,即使它看起来像是3D。以2.5D游戏为例,查看《部落冲突》等距游戏,该游戏完全以2D渲染,但它的确像3D游戏。当您开始使用世界3D模型时,您将使用完整3D,而2.5D术语不再适用。也就是说,相机与您是否渲染3D无关。3D与投影或相机行为无关,而与几何有关。
Grimshaw 2014年

这个问题似乎与主题无关,因为它与特定游戏的功能有关。问一个(仅)“ 2.5D”一词的定义或含义是合适的问题(我觉得我们已经有了一个“浮动”的东西),但是问它是否适合某个特定游戏与制作游戏有关;并询问您是否应该制作2.5D游戏以及为什么不客观。
乔什

3
@JoshPetrie什么?如何添加一个示例,说明他的理解会导致歧义,以防止该问题普遍有用?在这种情况下(核心问题是完全有效的,但是OP造成了一点点膨胀,而笨拙地解释了自己),这个问题应该保留。如果重复,则将其关闭。
ClassicThunder14年

Answers:


60

术语2D3D(您可能已经知道)指的是欧几里得世界空间中的空间维数。此维数必须是序数;没有“ 一半尺寸”之类的东西,因此术语2.5D实际上是一个废话,没有内在含义。也就是说,2.5是“介于2和3之间的某个位置”,因此2.5D通常表示沿“介于2D和3D之间的某个位置”的含义。

就个人而言,我使用该术语来指代游戏的图形和逻辑世界空间具有不同维度的情况。特别是这里有两种不同的变体:

  • 2D逻辑和3D图形。例如,具有2D游戏机制和物理特性但使用3D网格和透视相机渲染的平台游戏。多数经典街机游戏的翻拍(例如《吃豆人》,《突破》等)都属于此类。下图:菠萝粉碎船员

Pineapple Smash Crew takes place in a 2D world, but it is rendered in 3D.

  • 3D逻辑和2D图形。示例包括Gnomoria或SimCity 2000之类的游戏,这些游戏具有3D游戏世界,但以2D等轴测视图呈现。下图:Xenonauts

Xenonauts ground assaults take place on a 3D grid, but it is rendered entirely using 2D sprites.

该术语的另一个常用用法(尽管我没有使用过)是指利用3D和广告牌 2D图形的组合的游戏。在这种情况下,该术语根本没有描述游戏的逻辑维度。几乎所有3D游戏都以某种方式使用广告牌,包括粒子系统,远距离对象代理和虚拟用户界面叠加层。因此,该术语通常仅在非背景对象的大部分使用2D图形并且2.5D和3D之间的边界有些模糊时才使用。


17
顺便说一下,虽然存在分数维的问题,但与游戏开发术语“ 2.5D”无关。它在研究分形和其他奇怪的拓扑形状时出现。例如,二次Koch曲面(类型2)的Hausdorff尺寸(定义分形尺寸的常用方式)为2.5。
莉莉·钟

9
@IstvanChung是的,从技术上来说您是对的,我考虑过提及它,但认为这只会使问题变得混乱。我认为很少有游戏开发人员需要了解n维欧几里得空间之外的拓扑空间,如果确实如此,他们很可能知道我不是在谈论分形。
bcrist 2014年

1
@Pharap和...完成!
bcrist 2014年

2
@bcrist如果我可以第二次投票,那么我会愿意有人用我的大脑力量为我投票。
法拉普2014年

2
我真的很喜欢这种逻辑与图形的区别。尽管这里的大多数答案/评论似乎都假定2.5D表示2D图形,但实际上我倾向于考虑3D图形。因此,您在逻辑上与图形上的区别是包含2.5D两种概念的好方法
2014年

27

我知道的第一个使用了“ 2.5D”一词的游戏是Doom(尽管从某种意义上讲,《德军总部3D》也可以胜任)。

Wolfenstein 3D是一款基本的2D游戏,带有3D演示。您在2D迷宫中导航,所有地板都是平坦的,所有天花板都在同一高度,没有窗户,门是从地板到天花板并侧向打开的,因此您永远不能在另一个物体的上方或下方。游戏使用光线投射法来计算屏幕的每一列,确定墙在该方向上的距离以及墙的纹理。然后绘制一列墙纹理,其高度与距离成反比,并在上方和下方的空间分别用地面填充和天花板填充进行绘制。敌人和物体是精灵,具有有限的方面,并且它们的大小也与距离成正比。

毁灭战士使用了与德军总部3D非常相似的技术,但滥用了它以获得更多3D体验。地图仍然2D,使用2D二进制空间分区(因此是.BSP映射文件名)表示。当您点击选项卡时,在自动地图上看到的只是地图的直接2D渲染。但是每个扇区都有一个独立的“地板高度”和“天花板高度”,并且边缘具有顶侧和底侧纹理(当它们的顶棚高度比其周围环境的一部分低或更高的地板高度时使用)。这样就可以实现楼梯,窗户,平台,游泳池和其他效果-引擎只需要能够保留通过的多个扇区的列表,然后才最终撞到墙壁以及它们各自的纹理。但是您仍然没有真正的3D架构-您可以使用地板的凸起部分在某些史莱姆上架起一座“桥梁”,但是在任何情况都不可能桥。游戏中的位置仍然只有X和Y。玩家对其身高的唯一控制权是物体掉落,而电梯则只是脚本,用于更改地板高度。敌人仍然是精灵(尽管我认为它们具有更多方面),因为碰撞检测仅是二维的,所以射击的高度“自动瞄准”,并且在游戏中找不到3D模型。

Heretic和Hexen使用了Doom衍生的引擎,使事情更进一步,以至于它们有时被称为“ 2.75D”。他们具有大多数相同的架构限制和基于精灵的敌人,但是增加了玩家向上和向下看(倾斜视图,但直到目前为止否则引擎会损坏)以及跳跃,飞行和蹲伏的能力。 (独立更改其高度)。


1
+1,当人们提到光线投射时,我只听到过2.5D这个词。很好的解释!
鲁宾2014年

5
+1对于该词的首次历史使用,此答案是正确的。
R.,

这是最(实际上)正确的答案,不确定为什么不是第一个答案……
Sarge Borsch 2014年

尽管此答案在历史上可能是正确的,但这不是行业标准接受或期望的定义。如今,任何被描述为2.5D的游戏都被普遍理解为具有3D外观的2D渲染。
泰德·比格姆

我认为,像《异教徒》这样的游戏在上/下看的限制是基于这样一个事实,即对象的高度仅考虑屏幕的Y坐标而不是X坐标,因此场景中的所有垂直线都将呈现为垂直。如果以浅角度向上或向下看,这不会太明显,但是在较陡的角度上,这将非常令人讨厌。我认为陡峭的角度不会破坏引擎,而只是幻觉。
超级猫

11

2.5D

2.5D(“二维半”),3/4透视图和伪3D ar术语,主要在视频游戏行业中,用于描述2D图形投影和用于产生一系列图像的类似技术(或场景)模拟实际上不是三维(3D)的外观,或模拟限于二维平面的其他三维视频游戏中的游戏玩法。

根据我的经验,强调哪个定义取决于您正在与之交谈的人的年龄。

  1. 年龄较大的游戏玩家往往会使用第一种定义“ 2D图形投影和类似的技术来使一系列图像(或场景)模拟三维(3D)的外观,而实际上却不是

  2. 年轻的游戏玩家会使用第二种定义“ 在限制为二维平面的其他三维视频游戏中玩游戏 ”。

我个人使用第二个定义。我认为Trine,Donkey Kong和Super Mario Bros Wii U均为2.5D。另外,2.5D Steam标签使用第二个定义。我认为这是对典型游戏玩家如何定义概念的很好的试金石,因此,我认为第二个定义更为正确

3D

具有3D游戏图形的任何视频游戏,都是按3维计算的。请注意,这使其成为第二个2.5D定义的超集。


我发现平台游戏Shadow Complex是一个非常有趣的案例,因为交互可能以3D形式发生,甚至是敌人的位置。但是将您的枪对准它们涉及指向与3D投影将其放置在屏幕上的位置对齐的2D角度。然后,角色负责将角度解开并将枪支指向Z轴。
塞斯·巴丁

6

2.5D只是一种看起来像3D的2D表达方式。
我认为,例如,如果您使用3D引擎,但仅将游戏玩法限制在2D平面上,则您可能真的会模糊定义的界限,但我个人认为2.5D是3D 外观 2D 行为


谢谢。我的项目构想看起来像3D,但我仍然想知道2D或3D引擎和其他东西。您能否针对我发布的屏幕截图进一步介绍2.5D / 3D?
mathieug

害怕我看不到屏幕截图(在工作中被阻止),所以我无法发表评论。
DFreeman 2014年

3

您发布的游戏屏幕截图是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环境中对所有内容(例如带纹理的四边形)使用Billboard技术,并且始终将它们旋转在您面前,该怎么玩?有人可能会说2.5D,但由于Z深度,大多数人会说3D。从技术上讲,如果使用3D顶点(即z维),则为3D;如果仅使用X / Y(例如Super Mario bros),则为2D。但是,如果在3D环境(包括角色)中仅利用2D(x / y),则它仍然是3D,但按解释来说是2.5D 。

2

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

我不确定会更接受什么定义,但是我和以前公司的人们都认为“任何看起来像等距3D但通过2D精灵渲染的游戏”都是2.5D。

现在让我解释一下我们为什么这样做。通常,渲染带有很多对象的3D世界会对处理造成太大压力,从而降低FPS数量。因此,为了克服这一问题,我们通常在3D渲染软件(如Maya)中创建对象并将其渲染为精灵。可以在游戏中使用。更不用说在渲染时考虑了角度。因此,与发布商谈论这项技术时,我们通常使用此术语。从技术上讲,看起来像2D世界的3D世界仍然是3D。因此,我们通常不将此术语用于此方法。我以为我应该在这里分享我的观点。


1

通常,术语“ 2.5-D”是指两种截然不同的游戏风格之一。

它可能意味着:

1)使用2-D渲染技术但控制3个空间尺寸的游戏。通常使用图形技巧来显示好像实际上是在3-D中渲染的。这在90年代非常普遍,但在今天还不多见。(例如:“ DOOM”,“ Duke Nukem 3D”,“ Wolfenstein 3D”)

2)一种完全以3D渲染的游戏,但只能沿一个或多个2D平面进行控制。这种风格一直很流行至今。(例如:“小小大星球”,“新超级马里奥兄弟”,“试用HD”)

需要注意的一件事是,当使用模型视图控制器架构模式时,第一种游戏样式具有一个“模型”来表示3维数据,而一个“视图”则只向2个维度显示给用户。第二种游戏风格则相反。


0

在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较低的对象的前面。玩家角色的阴影看起来很奇怪,因为阴影位于地板之上的上一层,但在所有其他对象的下一层中,因此玩家角色的阴影永远不在立方体的顶部。

2.5D渲染


游戏A,3D渲染。深度缓冲区(也称为z缓冲区)用于像素精度深度测试。因此,一个对象不需要完全遮挡另一个,甚至三角形也不需要完全遮挡另一个,我们进行了像素精度深度测试。我们可以以任何方式旋转游戏对象,并且在它们交互时仍然可以获得逼真的结果。

3D渲染

在简历中:在2.5D中,一个精灵位于另一个精灵的前面或后面。在3D中,网格由三角形组成,但是三角形不是深度测试的最小单位,因此可以具有像素精度。当然,由于资产是为固定的相机角度创建的,因此无法以2.5D旋转相机,而如果3D游戏中相机的角度受到设计的限制,则3D是自然的,则旋转是自然的。


当您只能渲染2D图形时,有多种技巧可以使您有进入3D世界的感觉,我仅提供了一个使用我的废弃项目的资产快速制作的示例。

为什么不总是使用3D而忘记2.5D?

好吧,我可以考虑一些示例,说明为什么开发人员可能更喜欢2.5D方法:

  • 也许他们不知道或不喜欢3D API(Direct3D,OpenGL,还有其他)。
  • 也许目标平台不能很好地处理3D图形(旧台式计算机,2D控制台)。
  • 您的团队可以制作出色的精灵,但不能制作3D模型。

使用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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.