视差滚动
编辑视差滚动是计算机图形学中的一种技术,其中背景图像通过相机的速度比前景图像慢,从而在距离的 2D 场景中产生深度错觉。该技术源于 1930 年代以来传统动画中使用的多平面相机技术。
视差滚动在 2D 计算机图形学中得到普及,并在 1980 年代初期引入了视频游戏。街机视频游戏 Jump Bug (1981) 中使用了一些视差滚动。它使用了有限的视差滚动形式,主场景滚动,星空固定,云朵缓慢移动,增加了风景的深度。次年,Moon Patrol (1982) 实现了完整的视差滚动形式,三个独立的背景层以不同的速度滚动,模拟它们之间的距离。Moon Patrol 经常因普及视差滚动而受到赞誉。丛林之王 (1982),后来被称为丛林狩猎,也有视差滚动,并在 1982 年 6 月的月球巡逻一个月后发布。
视差滚动的方法
编辑街机系统板、视频游戏控制台和个人计算机系统的标题中使用了四种主要的视差滚动方法。
层法
一些显示系统支持多个背景层,可以在水平和垂直方向上独立滚动并相互合成,模拟多平面相机。在这样的显示系统上,游戏可以通过简单地将每一层的位置在同一方向上改变不同的量来产生视差。移动得更快的层被认为离虚拟相机更近。层可以放置在游戏场的前面——包含玩家与之交互的对象的层——出于各种原因,例如提供更大的维度、模糊游戏的某些动作或分散玩家的注意力。
精灵方法
程序员还可以制作精灵的伪层——由硬件在层之上或之后绘制的单独可控的移动对象——如果它们在显示系统上可用的话。例如,NES 的俯视垂直滚动射击游戏 Star Force 将其用于其星空,而 Super NES 的 Final Fight 将这种技术用于紧邻主操场前面的图层。
Amiga 计算机的精灵可以有任何高度,并且可以与铜协处理器水平设置,这使得它们非常适合此目的。
Amiga 上的 Risky Woods 使用与铜多路复用的精灵来创建整个全屏视差背景层,作为系统双场模式的替代方案。
重复图案/动画方法
通过对各个图块位图进行动画处理,可以使由单个图块构成的滚动显示“浮动”在重复的背景层上,以描绘视差效果。颜色循环可用于在整个屏幕上快速为图块设置动画。这种软件效果给人以另一个(硬件)层的错觉。许多游戏将这种技术用于滚动星域,但有时会实现更复杂或多方向的效果,例如在 Sensible Software 的游戏 Parallax 中。
光栅法
在光栅图形中,图像中的像素线通常按从上到下的顺序进行合成和刷新,在绘制一条线和绘制下一条线之间会有轻微的延迟(称为水平消隐间隔)。为较旧的图形芯片组设计的游戏(例如第三代和第四代视频游戏机的游戏、专用电视游戏的游戏或类似手持系统的游戏)利用光栅特性来创建更多层的错觉。
一些显示系统只有一层。其中包括大多数经典的 8 位系统(例如 Commodore 64、Nintendo Entertainment System、Sega Master System、PC Engine/TurboGrafx-16 和原版 Game Boy)。此类系统上的更复杂的游戏通常将图层划分为水平条,每个条具有不同的位置和滚动速度。通常,屏幕上较高的条带表示距离虚拟相机较远的事物,或者一条条带将保持静止以显示状态信息。然后程序将等待水平空白并在显示系统开始绘制每条扫描线之前更改图层的滚动位置。这称为光栅效果,对于更改系统调色板以提供渐变背景也很有用。
一些平台(例如 Commodore 64、Amiga、Sega Master System、PC Engine/TurboGrafx-16、Sega Mega Drive/Genesis、Super NES、Game Boy、Game Boy Advance 和 Nintendo DS)提供水平空白中断来自动设置寄存器独立于程序的其余部分。其他的,比如NES,需要使用周期定时代码,它是专门编写的,它的执行时间与视频芯片绘制一条扫描线所用的时间一样长,或者游戏卡带内的定时器在给定次数后产生中断。已绘制扫描线。许多 NES 游戏使用这种技术来绘制它们的状态栏,而《忍者神龟 II:街机游戏》和《Vice:NES 的末日计划》使用它以不同的速率滚动背景层。
更高级的光栅技术可以产生有趣的效果。如果将图层与栅格相结合,系统可以实现非常有效的景深;Sonic the Hedgehog、Sonic The Hedgehog 2、ActRaiser、Lionheart、Kid Chaos 和 Street Fighter II 都很好地使用了这个效果。如果每条扫描线都有自己的图层,则会产生 Pole Position 效果,从而在 2D 系统上创建伪 3D 道路(或 NBA Jam 中的伪 3D 球场)。
如果显示系统除了滚动之外还支持旋转和缩放(一种通常称为模式 7 的效果),则更改旋转和缩放因子可以绘制平面投影(如在 F-Zero 和超级马里奥赛车中)或可以扭曲运动场创造一个额外的挑战因素。
另一种先进的技术是行/列滚动,屏幕上的瓦片的行/列可以单独滚动。自 Sega Space Harrier 和 System 16、Sega Mega Drive/Genesis 控制台和 Capcom CP System、Irem M-92 和 Taito F3 System 街机游戏板以来,该技术已在各种 Sega 街机系统板的图形芯片中实施。
例子
编辑在下面的动画中,三层以不同的速度向左移动。它们的速度从前向后递减,并对应于与观察者的相对距离增加。地面层的移动速度是植被层的 8 倍。植被层的移动速度是云层的两倍。
- 云层 - 返回
- 植被层 - 中间
- 地层 - 前面
- 动画
网页设计中的视差滚动
编辑Web 开发人员 Glutnix 在 2007 年的博客文章中创建并分享了浏览器中视差滚动的首批实现之一,其中包括示例代码和使用 JavaScript 和 CSS 2 的演示,支持 Internet Explorer 6 和那个时代的其他浏览器。然而,直到 2011 年 HTML5 和 CSS 3 编码的引入,该技术才在 Web 设计师中流行起来。拥护者认为这是一种拥抱网络流动性的简单方法。支持者使用视差背景作为更好地吸引用户并改善网站提供的整体体验的工具。然而,普渡大学 2013 年发表的一项研究揭示了以下发现:……虽然视差滚动增强了用户体验的某些方面,但它并不一定会改善整体用户体验。
内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/138519/