Mode 7

本页使用了标题或全文手工转换
维基百科,自由的百科全书
超级任天堂使用此图形效果的基本演示截图

Mode 7电子游戏机超级任天堂一種图形方式,可让逐扫描线式的背景层支持旋转与缩放,以此创造大量的不同效果。[1]其中最著名的效果是,通过缩放和旋转背景层来显示透视效果。这种将高度改为深度的变换,将背景层变为二维水平材质贴图平面。如此便可显示三维图形的效果。

Mega Drive的扩展Mega-CD以及Atari Lynx使用了相似的功能。

使用

Mode 7方式渲染通常用于2D性能强劲,但不专门支持3D的旧系统。著名Mode 7游戏有超级任天堂作品《F-Zero》、《天地创造》、《飞行俱乐部》、《耀西的旅行》、《忍者龜4英语Teenage Mutant Ninja Turtles: Turtles in Time》、《恶魔城》、《圣剑传说2》、《圣剑传说3》、《艾薇莫的秘密英语Secret of Evermore》、《最终幻想IV》、《最终幻想V》、《最终幻想VI》、《超级马里奥RPG》、《DinoCity英语DinoCity》、《超級瑪利歐世界》、《超级马里奥赛车》、《超级星球大战英语Super Star Wars》、《时空之轮》、《雷莎出击》、《熱爆賽車英语F1 ROC: Race of Champions》、《迦楼罗王英语Skyblazer》、《时空引导者英语The 7th Saga》、《洛克人7 宿命的对决!》、《超越巅峰》、《星之卡比 超級豪華版》、《银河风暴英语Axelay》和《塞尔达传说 众神的三角力量》。Mode 7方式渲染还用于《音速小子CD》的特定关卡。

功能

超级任天堂游戏机有编号从0至7的8个方式来显示背景层,其中最后一个(背景方式7)只有一个可以缩放和旋转的单层。在Game Boy Advance任天堂DS 2D图形硬件中,方式1和2可以缩放旋转传统砖块式背景,方式3到5用用来缩放旋转位图(因技术限制,这通常很少在Game Boy Advance中使用)[2]。对于支持此效果的机器,在各扫描线行消隐周期内,可能通过改变缩放/旋转值,绘制一个透视投影平面;这被视作“Mode 7”效果的特征。通过使用其它各行的位置、缩放及旋转方程,可以实现模糊等更复杂的效果。

这种图形方法不仅适用于竞速游戏;它还普遍用于角色扮演游戏的世界地图部分,如史克威尔1994年畅销游戏《最终幻想VI》。效果可让开发者通过制造无垠的远方,来营造庞大世界的效果。

在超级任天堂中,Mode 7的一种变形可让背景层的像素置于子图形上层。比如《魂斗罗精神》(关卡2),《賓尼兔的冒險》的引入画面,以及玩家掉下舞台时的《马里奥赛车》。Game Boy Advance游戏使用Mode 2营造相同效果,其通过提供两个“Mode 7”图层,并将子画面置于两个图层之间。

许多PC游戏,其中以《Wacky Wheels》和《Skunny Kart》最为知名,完全通过软件技术模仿了Mode 7。软件自编写程序Multimedia Fusion发展了“Mode 7”,它可让创作者制作使用相似技术的软件。

在超级任天堂时代,Mode 7是任天堂最喜欢的卖点(《任天堂力量》、《SNES Player's Guide》)。比如街机移植到超级任天堂的游戏《Teenage Mutant Ninja Turtles: Turtles in Time》中,一个关卡就从横向卷轴改为Mode 7。

公式

使用Mode 7图形的平面纹理地图,是由屏幕坐标到背景坐标的2D仿射变换而转换成,

a、b、c和d是转换系数;x和y是屏幕偏移;x0和y0是初始偏移;x'和y'是转换坐标。全部运算都为16位有符号定点数,而全部偏移仅限制在13位。小数点位于7和8位之间。

仿射变换仅允许位移、缩放和剪切效果。许多游戏通过逐扫描线基础,进行创造性的变换矩阵参数操作,产生额外的效果。这种方式可实现伪立体、弯曲的表面,以及变形效果。

限制

Mode 7只能作用于背景,而无法作用于子图形;因此,任何不随背景旋转/缩放的对象肯定是精灵,即使它通常被视为背景一部分,如固定平台等。比如在《超级恶魔城IV》和石巨人等头目的战斗中,移动的头目是背景,而主角所站的区块是子图形。在头目战中,相对于FC通过大号子图形显示大型移动头目,而固有的减慢和闪烁,超级任天堂通过在背景层显示头目的移动和动画,可以产生类似的效果,且效果明显提升。但两个系统示例都只适用在水平面移动的对象。例如,地板、天花板或记分板可以作为FC和超级任天堂游戏的背景,只要它们完全位于游戏区域的“上方”或“下方”。如果需要使用整个屏幕,他们也可以变为子图形,但这可能会让画面减慢。

Mode 7不能用来通过改变子图形“大小”来表示它的“逼近”,特定距离的子图形必须预先绘制,这就是说,人们会看到,当用数量有限的各大小子图形来表示“逼近”时,人们会看到子图形在“跳跃”。这可以在《马里奥赛车》和《HyperZone》当物体靠近时看到,或是《最终幻想VI》乘坐飞空艇垂直升降的画面。

类似的,子图形的“旋转”也要预处理,除非如《超级马里奥 耀西岛》那样由卡带内置的Super FX 2芯片来硬件处理。厂商有一个著名的解决方案,已经在一些游戏中使用,如:《魂斗罗精神》的第二头目战,以及《超级马里奥世界》中和Reznor(墙平台支持)、Iggy(战斗平台)、Larry(也是平台)、Morton、Ludwig、Roy和Bowser战斗。在这些例子中,头目是“背景”所以可以使用Mode 7旋转,记分板位于游戏区域上方,所以也算作背景,但是战斗裂开的地板,连同玩家角色与炮火,都是将各种旋转角度重绘“子图形”。然而,这只允许一次处理一个“子图形”。

在《幻想传说》和《星之海洋》中,Mode 7般的子图形效果既非预先绘制,也非通过外部芯片重现,飞行时的精灵完全由软件重渲染。在《幻想传说》中,玩家子图形在走到存档点时会上下拉伸,以及《星之海洋》中道具“squash”在打开宝箱时会出现“快要跳出来”的效果。因为这样的渲染需要额外的砖块,以及游戏其他地方对系统的高要求(同时使用流式音频绕开SPC700的有限能力,如同最高端的超级任天堂RPG使用可变宽度字体),这种渲染只限于这几种场景。

Mega Drive没有实现Mode 7的类似原生硬件,但Mega-CD扩展补充了这种功能;比如它显著的应用于《音速小子CD》的特定关卡。但是对于《幻想传说》和《星之海洋》的特殊子图形效果,开发商可以通过编程直接为游戏加入类似特技,如《恶魔城 血族》、《蝙蝠侠与罗宾汉》和《魂斗罗·铁血兵团》等游戏使用了类似效果。Super 32X支持2D和基本的3D,所以缩放和旋转效果成为了2D游戏常见要素,如《納克魯斯與卡歐迪克斯》(Knuckles' Chaotix)是索尼克系列首个使用多边形特殊舞台的游戏。

一些Amiga游戏通过程序技巧实现了和mode 7类似的效果,如《Mr. Nutz: Hoppin' Mad》、《Lionheart》、《Obitus》和《Brian the Lion》。

硬件

超级任天堂的两个PPU(图形处理单元)芯片使用了两个832kB的RAM芯片。在一个周期中,一个PPU存取砖块地图(128×128砖块),另一个PPU存取砖块集(256砖块,256色8×8像素)。

参考文献

  1. ^ The Next Generation 1996 Lexicon A to Z: Mode 7. Next Generation. No. 15 (Imagine Media). March 1996: 37. 
  2. ^ Korth, Martin, GBATEK: LCD I/O Display Control. Retrieved on June 23, 2011.