为什么旧的3D游戏具有“抖动”的图形?[关闭]


15

我最近一直在玩“ MediEvil”,这让我感到奇怪:是什么原因导致某些旧的3D游戏在移动时具有“流动的”图形?它出现在诸如《最终幻想VII》《 MediEvil》之类的游戏中,我还记得《地牢守护者2》在缩放模式下具有相同的功能。但是,诸如“雷神之锤2”之类的示例没有此“问题”,并且它同样古老。分辨率似乎不是问题,当您静止不动时,一切都可以完美呈现。游戏刷新是否缓慢,还是与缓冲有关?


5
您可以链接到演示您所谈论的效果的视频吗?
John Calsbeek 2012年

1
例如youtube.com/watch?v=H-M6EPgs1JY&t=1m20s,每次相机移动屏幕时,屏幕看起来都变了,看起来很奇怪,PS似乎没有产生直线的问题,所以我不认为这只是像素化
dreta

1
我什么也看不见...也许我以前很习惯玩游戏,以至于我没有注意到问题。但是我的第一个想法是,也许您正在看到Mike的答案中提到的仿射纹理变换,这种变换可以使事物似乎从外观角度看起来很奇怪。
Kylotan'4

@Kylotan在摄像机运动较慢时尤其明显(例如,在dreta的YouTube链接中至少16分钟左右,您应该在地板和墙壁上注意到它。)我想这就是PS游戏几乎在所有游戏中都有如此快的摄像机的原因:)
kaoD

1
我投票结束这个题为离题,因为这是在问为什么各种各样的视频游戏会以它们的方式起作用。至少在现在,这些问题通常是题外话,因为它们依赖于对开发人员实际如何完成工作的推测。我们通常可以通过修改“我如何在自己的游戏中做到这一点”来改善这些问题,但这似乎并不是真正的意图。
Gnemlock

Answers:


27

我只有最奇怪的引用,但它出现在原始的PlayStation上,向量单位(通常用于转换顶点)能够进行定点运算,而光栅化器也使用定点数学,但是两者之间只能传递整数。因此,您会看到量化伪像:多边形的角点已被捕捉到最近的网格点。在静止场景中非常稳定,但在运动中却颇为令人惊讶。

通过一些其他研究,看来原始的PlayStation具有光栅器可以工作的不同分辨率,从256x224到740x480。因此,您可以选择较低的分辨率以获得更好的填充率,但是您会看到这种伪像,因为低分辨率的网格足够粗糙,可以用肉眼轻松检测到。


PC上的IIRC(与网格动画有关)在GPU上进行浮点计算时存在一些问题(很早以前实际上是在2000-2005年左右解决的)-我不记得确切的问题了,但是它导致了“令人不安的角色动画。我记得《星球大战:幻影威胁》相当大地展示了这种行为。
乔纳森·迪金森

@JonathanDickinson您没有想到关节上的“糖果包装”效果,是吗?isg.cs.tcd.ie/projects/DualQuaternions
John Calsbeek 2012年

不,是由于我不记得的原因引起的一些错误。
乔纳森·迪金森

9

如果以软件模式播放Quake 2,则实际上确实存在您提到的一些问题。如果在Quake 2中以锐角查看certian模型,则会看到“游泳”纹理。这是因为许多早期的3D引擎都使用仿射纹理贴图。这为您节省了昂贵的每像素划分,使您可以透视正确地进行纹理映射,但是这意味着当以锐角查看时纹理将变形。

而且,许多早期3D游戏(包括Quake 2)都使用简单的顶点变形来对模型进行动画处理,而不是使用骨骼动画。通过线性插值在关键帧之间补间顶点。自然地,这并不能很好地保持顶点之间的距离,因此您最终会遇到果冻顶点综合症-模型在进行动画处理时会有些微动!


2
正确,网格的分辨率仅为256x256,因此顶点的移动以非直线插值。有点像试图在像素艺术中绘制出平滑的动画剑挥杆。
Myrddin Emrys 2012年

是的,MD2格式只有一个3字节/顶点。
提利2012年

1
Quake 2实际上确实做了透视校正的纹理映射,但是仅每16个像素(或通过用户选项8个)校正一次。
Maximus Minimus 2013年

1
为了使有关Q2的陈述正确无误:《雷神之锤2》对层级几何图形使用了透视校正txt映射(每16个正确计算的像素进行线性插值),并对可移动对象进行仿射文本映射
Peter Parker
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.