在含有 Doom 源代码的游戏,如《反恐精英》中使用 Noclip 或者自由视角穿过部分地图的墙壁会看到奇怪的视觉错误 (Visual glitches) 。[视频3]
这个奇怪的视觉错误大概有两个关键,第一个是天空箱,另一个是绘制图像前没有清空缓冲区的图像。由于当时地图的设计规范还未像今天一样的完善,所以地图总是有许多问题,如图所示,只有摄影机在蓝色框体内时才能看到天空箱的景物。[图2]
天空箱 (Skybox) 是 3D游戏 为了让游戏地图看起来比实际更大的一种解决方案,但天空箱不能随意框住整个地图,因为会影响性能。
所以即使摄影机看起来是在「地图内」,但实际摄影机已经离开了天空箱的可见范围,现在 指南 推荐使用另一种方法做天空箱,可以一定程度上避免这种问题。[图1]
如果摄影机的画面中没有贴图与天空箱来绘制,那么会绘制什么呢?答案是绘制虚空 (Void) 。
虚空是地图世界之外的黑色空间,无限大并环绕每张地图,但由于这些早期的游戏没有设置擦除画面重新绘制,而是直接在后台缓冲区覆盖,但虚空无需绘制,所以就会出现 Hall of mirrors effect (HoM 效应) ,画面看起来就像被叠在一起了一样。
关于闪烁,是因为有多个缓冲区交替写入与输出画面,所以帧数越低,闪烁就越慢。
#考据 #游戏 #原理
这个奇怪的视觉错误大概有两个关键,第一个是天空箱,另一个是绘制图像前没有清空缓冲区的图像。由于当时地图的设计规范还未像今天一样的完善,所以地图总是有许多问题,如图所示,只有摄影机在蓝色框体内时才能看到天空箱的景物。[图2]
天空箱 (Skybox) 是 3D游戏 为了让游戏地图看起来比实际更大的一种解决方案,但天空箱不能随意框住整个地图,因为会影响性能。
所以即使摄影机看起来是在「地图内」,但实际摄影机已经离开了天空箱的可见范围,现在 指南 推荐使用另一种方法做天空箱,可以一定程度上避免这种问题。[图1]
如果摄影机的画面中没有贴图与天空箱来绘制,那么会绘制什么呢?答案是绘制虚空 (Void) 。
虚空是地图世界之外的黑色空间,无限大并环绕每张地图,但由于这些早期的游戏没有设置擦除画面重新绘制,而是直接在后台缓冲区覆盖,但虚空无需绘制,所以就会出现 Hall of mirrors effect (HoM 效应) ,画面看起来就像被叠在一起了一样。
关于闪烁,是因为有多个缓冲区交替写入与输出画面,所以帧数越低,闪烁就越慢。
#考据 #游戏 #原理