找回密码
 注册

QQ登录

只需一步,快速开始

查看: 164|回复: 15

世嘉土星30周年纪念 世嘉土星硬件机能解析

[复制链接]
发表于 2025-1-4 08:41:17 | 显示全部楼层 |阅读模式
本帖最后由 n805 于 2025-1-4 08:42 编辑
0 ^) n" l; }8 r- n+ b9 \) z- I+ r" n% A$ d
% k5 [6 s2 E8 b" E8 U7 u
世嘉土星发售于1994年,掐指一算已经是30年前,当时的技术放到现在早已经过时。它与现在的硬件比,可以说非常贫弱。但是,世嘉土星是一个时代的究极形态,而能挑战这一究极形态的游戏机至今也没有出现。关于土星这次主要针对硬件层面,尤其是图像技术来阐述。
( ?5 Y* H; D8 D( m5 }世嘉土星除了本家产品外还包括了日立生产的HiSaturn、Victor生产的VSaturn,下文中将统一称作土星。这几台机器并没有什么太大的差别。在上面提到过,土星是一个「究极形态」,准确的说是「2D游戏机的究极形态」。作为MEGADRIVE的后续机种,土星必须拥有超出MEGADRIVE的性能,而「能挑战这一究极形态的游戏机至今也没有出现」则是因为现在的游戏机是以3D游戏或者3D运算处理为前提而制作的,PS带起了3D风潮之后这一情况延续到了现在。将3D游戏拍扁的话很容易就能变成2D,以3D游戏为前提的游戏机也能轻而易举地制作2D游戏,所以3D为前提制造游戏机这件事情本身是没有任何问题的。但是从80年代传承下来的「背景图层」已经不复存在。没有背景图层,视差滚动、多重滚动等在红白机的年代里让无数玩家兴奋的技术也消失了。在3D技术下这些滚动效果只要用多边形或者贴图描绘好,让他们运动就可以了。虽然在玩家的眼里他们没有差别,但是这并不是真正的「滚动功能」。对于程序猿来说,可以花时间通过编程去再现当年的滚动效果——但是又有谁会去花这些时间呢?
: G* @- h5 v/ y+ x) v/ q当然,这不是在说程序猿懒,而是因为花时间通过编程去再现也就意味着需要让CPU去运行更多的代码,也要消耗更多的存储器空间。这样一来,游戏程序本身就会缺少增改空间,程序一旦变得复杂,BUG的产生与DEBUG也会变得更加棘手。如此一来,最后损失的将会是游戏性本身,得不偿失。土星是最后一台继承了这一传统技术的游戏机。滚动背景画面、包括精灵图在内的多图层迭加等技术在此落下帷幕。此后的游戏机,基本设计思路已完全改变,所以能在这一传统技术上超越土星的游戏机是不存在的,而将来或许也不会出现。

' F; z4 M' E& T

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复

使用道具 举报

 楼主| 发表于 2025-1-4 08:49:16 | 显示全部楼层
土星拥有将五个图层进行重叠的功能,「重叠」在「说说80年代的游戏图像技术」也有过一定的说明。提到「重叠」首先要说到的就是精灵图。土星的精灵图可以与其他的精灵图或背景图层重叠,半透明的部分里可以看到下面的图层。红白机的背景图层也可以使用半透明功能,可以在背景图层的下方放置精灵图。80年代的精灵图使用「扫描线缓存」,一次处理一行扫描线来完成这一功能。土星则是一帧一帧地对精灵图进行处理(一秒60帧中的1帧)运用了帧缓存。精灵图的帧其实是作为特殊的背景图层进行处理。也就是说4枚背景图层加上精灵图的图层,共可重叠5枚图层。后面也会说到,土星的硬件设计上可以重叠6枚图层,多出的那1枚作为日后的扩展预备,但是直到土星时代的结束,也没有哪个游戏用到这第6枚图层。精灵图所使用的帧缓存与其他的背景图层不同,较为特殊。精灵图图层的帧可以以一个像素点为单位设定图层重叠时的优先度及透明度。土星不仅可以设置背景图层重叠时的顺序,还可以指定背景图层的透明度。有了这一特殊的功能,就可以让只有一枚的精灵图图层穿插在任意背景图层之间。
6 i: x: v" G3 |7 ?/ c
$ F8 G/ W( M/ \! {* v2 C: {! e% g& ~9 d
上图是图层重叠的大概示意图(其实忘了画可以放大缩小旋转的特殊背景图层RBG0和RBG1)。精灵图图层虽然只有一枚,但是可以对单位像素点进行优先度设置,这样即使只有一枚也可以做出看上去似乎就像是被其他的图层夹在中间的效果。像是恶魔城,树木和外面的城墙在NBG2的下方,人物和怪还有信息条则在NBG2图层的上方。
" s, E# a* c# R7 I

6 L# a# b0 b- u/ r8 x; _
恶魔城图层构成

# C! r* e1 o" q- c- x80年代使用的「扫描线缓存」,精灵图会根据「显示优先度」依次从上到下显示。横向排列多枚精灵图时就会来不及处理,出现闪烁的现象,这时优先度最低的精灵图会消失。而「帧缓存」在进行描绘时是不断的进行覆盖。最初描绘的东西会被后来描绘的东西所覆盖。因此显示优先度最高的图层或精灵图会最后在最后被描绘出来。一旦来不及处理,最后被描绘的画面就会消失。换句话来说,显示优先度越高,越容易消失。作为对策,就是在编程的时候控制好画面处理的时间。但归根结底,虽然精灵图可以穿插在不同的背景图层之间,精灵图图层只有一枚。如果误以为精灵图图层有很多枚,画面就会变得奇怪。) R' H. N& X0 w1 a4 d- B6 g
1 l; O5 ~7 m9 `: V* F; R) l0 K! T
举个例子,在背景的前面和后面分别放置部分重叠的精灵图。假设精灵图将会从背景下方的精灵图开始描绘。如果精灵图有数枚,那么只要正确设定「背景的上方」「背景的下方」,图层应该就会被正确重叠。事实却不是这样的。描绘在背景下方的精灵图覆盖了描绘在背景上方的精灵图,背景上方的精灵图消失不见。而且背景下方的精灵图因为被设定在背景下方,和背景图形重合的部分也会消失。背景上方的精灵图就会像是被打了一个洞。只要规定不管中间有没有背景图层,精灵图都从下方开始描绘的话,也不会出现什么大问题(还可以利用精灵图可以打动的原理来做一些特别的画面表现)。精灵图的重叠问题先放在一边,土星的半透明功能也存在类似的问题。
+ h. W& ?5 S0 _1 f. w! v# h关于半透明功能之后会再详细解释,首先要说的是这个半透明功能也可以运用在精灵图上。在精灵图上使用这个功能是可以分别设定「对其他的精灵图半透明」与「对背景半透明」。听着挺好,但其实就是灾难。

" X- T2 h; N( i) k3 n7 `/ w6 p

$ {9 i1 o! W2 j" n9 M. \4 F* t$ Y5 k假设我们要绘制一个半透明的精灵图,于是我们设定成「对其他的精灵图半透明」与「对背景半透明」。这时,半透明的精灵图下方出现了一个不透明的精灵图。见证奇迹了,不透明的精灵图就直接消失,透过半透明直接看到的就是背景。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复

使用道具 举报

 楼主| 发表于 2025-1-4 08:51:31 | 显示全部楼层
. v3 E: o" W! v' f
这个不是Bug,是规格的限制。因为精灵图图层只有一枚,在精灵图图层绘制完之后,在此之上描绘别的图层,所以产生了这种情况。
# K( Q/ ?" _% W顺带想象一下只设定一种半透明的情况吧。假设只设定「对其他的精灵图半透明」,那透明就仅在于其他精灵图重叠时有效,不重叠的时候就时候就不会透明。如果只设定「对背景半透明」的话,和其他精灵图重合时,就会像刚才说的那样,本来不应该出现的背景。" w! n, w$ U& b" B, \
既然硬件规格已是如此,让画面正常显示的责任就交到了程序猿手上。半透明功能因规格限制而难以使用。而且使用了这一功能之后,处理精灵图所需要的时间会更多。精灵图之间设定半透明时,需要从已经被描画的位图中取出需要处理的像素,进行半透明的运算处理,然后再次写入。' {5 u. y+ U. l: i0 ^
土星使用的显存,是当时相当昂贵的SDRAM(同步动态随机存取内存),但是对RAM的访问本来就没有那么快。不仅需要写入,还要读取,那么就要话相当的时间去进行,业界共识就是处理半透明会需要成倍的时间,在绘制多边形时使用半透明功能更可能造成致命的BUG。9 ~2 q" p0 e% h" C# E; h& H1 _
所以土星虽然有半透明功能,但几乎没怎么被使用。虽然也有少数运用得当的游戏,但是好好的机能就被荒废了。
& _. k" g. \6 x' w' B* I" C
# L8 C+ u' a! H$ c- W# X
扫描线缓存一直延续到了MEGADRIVE,一条扫描线的时间(一分钟60帧,一帧224线,也就是13440分之1秒,已经是微秒单位了)太短所以无法进行太复杂的处理,如果是帧缓存的话就有足够充裕的时间来进行复杂的处理。
9 u' n0 K- v# {9 V0 I/ P, m土星的精灵图可以给图形定四个顶点。旋转四个顶点就可以展现旋转精灵图的效果。甚至可以将精灵图变形,绘制多边形。顶点也可以不是4个,像传统的扫描线缓存那样设置坐标系的方法依旧可用。只设置坐标系虽然无法进行旋转,但是可以进行上下和左右的翻转。指定坐标时,坐标的位置是用来指定精灵图的位置。是左上,还是右下。可以从9个点钟进行选择

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复

使用道具 举报

 楼主| 发表于 2025-1-4 13:41:19 | 显示全部楼层
本帖最后由 n805 于 2025-1-5 03:35 编辑 ! j5 Y" Z1 K; i5 C- V

, B+ J; L( j) I  R4 A8 O* p: w% c

4 Y! ^, e; Z- Y- q8 \1 y如果要描绘一个站立式人物的图像,只要将底边中央设为原点,无论图像多大都可以简单地描绘出来。如果是飞行射击游戏的话,就将原点设置在中央。设定位置本身只需要进行简单的加法和减法的运算。在制作游戏时设定原点并不是必要功能。设定原点的功能在进行图像的扩大缩小时就会发挥真正的作用。  S5 V- ]) S! t$ b
世嘉土星可以对精灵图进行扩大缩小处理,设置原点后,原点在扩大缩小时可以保持精灵图的位置不变。而在土星之前的游戏机,原点都是固定在左上角。这个功能很小,很不起眼,但是就是这些不起眼的小功能集结在一起,就会让游戏制作变得更加方便。这也是将土星称之为「2D游戏机的究极形态」的原因了。
4 p! P: V+ \( O) ~' ^不仅是设定原点这个功能,土星还具备了以下这些功能。& [4 ^7 ^; o) P) w) ~% g
不设定图像,仅设定位置来描绘边框。
4 R( p  V3 F7 b利用上面的功能描绘出的边框里填充颜色。" O( q. t* Z# Z9 x- e) X
设定两个坐标,绘制线。. R) w0 s. K9 C; e$ Y$ \
在四个顶点设定颜色,绘制渐变。并将这个渐变与精灵图合成。(Gouraud着色法,没有材质也可以使用)1 E, q5 I) ?( U0 Y8 A: ^  l" @
事后设定是否进行背景图层重叠时的半透明运算。: _* ^, l3 k7 N. U. F
对已经描绘完的精灵图进行半透明运算。3 I  A0 ^$ L6 o
对图形进行网格化描绘。(仿真半透明)* `- E- }/ P- k  @/ S7 f
精灵图之间的半透明以及与背景图层间的半透明运算功能,就像上面阐述过的一样问题重重,实际运用较少。(笔者能短时间内想到的就只有Guardian Heroes)半透明功能在运用上还有其他的限制,比如变形精灵图绘制的原理上导致半透明功能无法运用在变形精灵图和其他精灵图叠加的状态。, F; g0 h1 X) p
变形精灵图的绘制方法要解释起来会非常麻烦,有兴趣的人可以去低下翻阅英文的开发技术文档和日文的Saturn Q&A。
% R. O1 W7 }& I9 v打个比喻,就像是拿个刷子去刷一面墙,要横着刷一条横线是很简单的,但是无法一次性刷完一面墙。涂完一行之后应该要接着涂下一行。但涂下一行的时候,难免会涂到上一行已经涂过的位置。如果不这样做涂色,那么涂色的区域内就可能出现缝隙。% l8 {" S' I8 m2 x) |3 m8 k
土星的变形精灵图也是如此。在进行一次绘制之后,土星有时候会对精灵图进行再次绘制,以确保绘制区域不出现缝隙。而在变形精灵图上使用半透明时,就会出现问题。在重复描绘的过程中,第二次描绘的变形精灵图将会被识别为其他的精灵图,触发半透明处理。于是,半透明效果就会出现不均。本来是为了让效果更好而进行的重复绘制,结果却造成了处理问题。
- W! I7 k) X6 [! L& q这里就有一个PS和土星最大的差别。PS在处理精灵图时,是将其栅格化,但土星则是将精灵图进行映射处理。' b, ^9 i3 c/ t! s
栅格化(rasterise)是根据显示对象的像素点来对照材质(texture)所在的位置读出并显示;映射(mapping)则是将材质(texture)取出,将其直接写入显示对象。刚才也有阐述过,2D游戏在设置半透明时,分别有「对其他的精灵图半透明」与「对背景半透明」两个选项,这两个选项的存在让半透明功能难以使用。而3D时,精灵图的半透明绘制算法,同样也让半透明功能无法使用。半透明功能岂不是全灭了?1 b9 T( N$ i9 ]5 ~/ j
但作为最后的救赎手段就是「仿真半透明」,网格化描绘。首先判断坐标X+Y的值为奇或偶,然后选择和为奇或偶的坐标去描绘。但是同为奇或偶的仿真半透明化精灵图重叠时,下方的精灵图就会被覆盖,失去透明感。而奇偶不同的仿真半透明化精灵图重叠时,上方的网格与下方的网格会刚好错开,上方网格的孔会被下方网格的网所填充,失去透明感。9 Y  G( D# s4 b" F; x0 a
仿真半透明终究只是仿真,并不是真的半透明,但确是最够用的机能。三种半透明功能,各有长短。但说到底如果能有完美的半透明功能,就最为理想。只是因为制造成本及电路板规模的问题,就只能提供这三个各有长短的功能,让程序员来想办法解决。
( j: U' b* ^" [) `! ?游戏机说到底是作为一种「玩具」被创造出来的。因为是玩具,就会受到成本等各种约束,这样一种情况下还能以2D游戏机为出发点却尽可能兼顾了3D功能,还搭载三种透明功能,他们已经尽力了。! O' I" c1 t; {
详解半透明' X5 x3 o# R* D+ U
这篇文章已经说了太多次关于半透明的问题。而大部分人在拿PS与图形比较时也总会提起半透明的问题。所以在这里再说明一下土星的半透明问题。
1 Q9 t5 \( J7 ~7 X; D  Y5 `大部分人都会说,PS的半透明很漂亮,土星的半透明很糟糕。这是因为处理方式的区别而产生的。土星在处理半透明时,使用的是取颜色的平均值这样一个处理。加权平均计算,也就是说调节透明度也是可行的。通常处理透明度就会做这样的一个运算。PS的半透明处理不仅进行平均值计算,还会进行其他的一些运算。但我本身对PS兴趣不大,所以并没有特意去了解。
- |+ V+ T* x3 G2 s平均计算以外,比较有代表性的应该就是模拟光学式的运算了。很多人可能都发现过,将三原色的光叠加在一起的时候,会呈现白色,但是将三原色的颜料混合在一起之后则会变成灰色。

  {& T0 |, [* f9 c. l

& z! T+ Z5 D& c5 m. ]4 O
半透明的不同处理方式
- v! O2 b% R; e" t: Z

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复

使用道具 举报

 楼主| 发表于 2025-1-4 13:42:40 | 显示全部楼层
本帖最后由 n805 于 2025-1-4 13:46 编辑
2 D( p9 t+ W# C: `2 ^0 h* _; r% N6 a2 E6 d) ?% E3 D3 r

4 y* f9 c% t4 I8 q$ S5 K' B; gPS在处理透明时,会通过演算模拟光重叠时的效果。实际的演算方法现在在晚上应该可以查到。有兴趣的人可以自己探索一下。模拟光学的演算方式同时也在Adobe的Photoshop(请不要和PS搞混了,本文中所有的PS都指索尼的PlayStation)中被运用。经过PS的演算之后,重叠的区域会变得更亮。
% [/ X3 k6 _) I) d" p但土星的半透明仅仅是进行了平均值计算,所以亮的颜色在经过透明处理之后一定会变暗。所以无法通过这个半透明来表现光的质感。虽然和半透明功能无关,土星可以通过之前提到过的Gouraud着色法可以来满足这一要求。
- @) G$ r$ Q$ x0 z0 {我记得曾经有一个大拿说过,世嘉土星就像是油画颜料,而PS则是像丙烯颜料。油画颜料有厚重感,丙烯颜料有透明感。这只是一个性质,并没有优劣之分。4 K% P: n6 U; Y
处理极限
  V3 v  t, I# z, ]/ s* P8 h精灵图的显示极限和张数无关,主要是由像素数来决定。土星的精灵图可以放大缩小,当然,大的精灵图与小的精灵图所需要的绘制时间不一样。不分精灵图的大小,纯粹按枚数来计算的话,不科学。世嘉官方公开的数据表示,土星可显示的精灵图数是「无限大」。我作为世嘉的铁粉都无法相信,一般人可能更不会相信了。
% ~8 @( @2 I/ b) D3 h% `3 X参阅一些过去的资料(下面贴的Saturn Q&A等)后,我们可以知道,因为总线带宽只有16bit,因此,每个处理周期(CPU主频是28.7Mhz也就是每秒28.7兆个处理周期)只能传输一个像素点的数据,那么每秒就是2548像素,每帧可传输像素点42万。
5 j% p/ a3 T/ ^3 ^6 T% n而关于多边形绘制,官方宣称是每秒30万个多边形(含材质)。这个数据也是疑点重重。如果将30万个多边形换算成设定四个端点并显示的8x8材质。那就是1920万像素。中间的差值应该就是变形演算的时候所消耗的CPU算力了。
" Q0 Q8 j1 a8 {! Q3 c假设如刚才求得的理论值所说,每秒2548像素。游戏中经常会使用的16x16精灵图。经过计算我们可以得出,一帧(1/60秒)最多可以显示1500枚精灵图。: N  \0 m: _2 Q$ o- \
在此之外,还要将精灵图与4枚背景图层重叠。当时的对手PS在同等情况下能描绘的精灵图则为1000枚左右。同样是在2D游戏的情况下,和土星不同PS的背景图层也是作为精灵图来处理。假设要重叠两个画面,那光背景就要消耗500枚精灵图。那么实际能用在精灵图上的不过500枚。( F  P# P; O: f' U/ v$ L" [
这样一来,在制作2D游戏的时候,土星能够动用1500枚精灵图,但PS就只能动用500枚,PS就是土星的1/3。从这里也能看出,土星更重视2D游戏的表现。我称「2D游戏机的究极形态」的原因,大家应该可以有所理解了吧。
" [, V: _/ g  b% f4 B

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复

使用道具 举报

 楼主| 发表于 2025-1-4 13:45:20 | 显示全部楼层
本帖最后由 n805 于 2025-1-4 13:47 编辑
) e3 e/ y' v. N1 m  D  W% M$ i5 \2 f
精灵图也说的差不多了,来说说背景图层。上文提到过,土星能够将包括精灵图在内的五枚图层重叠。. S1 j& h3 @/ Y  s( U0 E1 }

. R$ [1 S5 a- T; o' k现在我们可以看到,这张图上共有6个图层。在最下方的「渐变层」只能以扫描线为单位设定颜色。没有其他图像输出会放置这样一个图层,相当于红白机的「背景色」图层。它无法设定显示图片,也无法设定重叠时摆放的位置,所以和其他背景图层不同。7 F9 B8 o# [% E, w+ d  A2 H7 w0 R
4个背景图层,有两个图层是上下左右滚动的普通图层,称它为「基本背景层」。有一面拥有「扩大缩小功能」的背景层,称它为「可放大缩小背景层」。还有一层是拥有包括「放大缩小功能」等「变形」功能的图层,称它为「旋转背景层」。
! X9 I2 Z. g% k) d' j3 |) O这四个图层在重叠时可以自由改变放置顺序。上面的图里面可放大缩小背景层被放在了最下面,实际上放在最上面也是可以的。并且,背景图层之间可以设定半透明。给优先度高的层设定半透明之后就可以看到下面的层。  J% l. ?" e! K* G6 \, ?
精灵图就像上面已经写到的一样,它是一个特殊的图层。它可以以像素点为单位设定摆放的顺序。当将那个像素点的优先顺序设定在其他背景层之间的时候,看上去就会像是其他的背景层夹在中间。
1 ~7 M. a& [* V# @# R可旋转背景层是在将显存的数据输出时改变读取显存的时机。刚才提到的变形功能则是利用了这一原理,但通常被称作可旋转背景层。实际上除了旋转,这个背景层还拥有许多功能。, o( l. y( j+ E. U
先简单介绍下实现旋转的方法。
( ?% ^2 K  n8 X9 u# o

# z4 W8 Y" Z5 r8 i电视(这里指显像管电视)的画面是由扫描线来绘制的。扫描线水平进行扫描,从左往右。这是电视的构造原理,扫描线的运动方向无法改变。画面信息的显存(VRAM)从最初的地址依次读取,输出到电视上就会显示出画面。这时,将读取的顺序,读取的地址改变,也就是倾斜地读取显存。那么读取的画面就是会是倾斜的画面。将这个画面交给扫描线,那么倾斜的画面就会出现在电视上。
& o. U& k4 h$ x; _# J" @土星可以对读取显存做设置。不仅可以让画面旋转,还可以以扫描线为单位进行设置。不仅能设定倾斜,还可以设定读取显存的速度。当加快读取的速度时,得到的图像就会缩小;当减慢读取速度时,得到的图像就会放大。还能以扫描线为单位设定读取的位置。不设定读取的倾斜的话,就相当于视差滚轴。
  s! [6 W" E; }6 i# G这个「以扫描线为单位进行设置」是通过准备与扫描线行数相同的table(在内存里划分出来的一行空间,也叫row。纵向一列叫column)。旋转不过是其中的一个应用例。可以实现视差滚轴。可以根据层的不同,设定不同的放大率,还可以双轴旋转。还可以制作怪异的变形动画。但是生成table的运算很复杂。为了更方便的完成这个过程,后来出现了3D游戏制作用的库。那个库里包括了自动生成table进行「放大缩小且双轴旋转」处理的函数。
- a+ P1 G1 X: K" W能够「放大缩小且双轴旋转」这样独特的画面效果,可以说是一个有技术水平的厂家才可以耍的任性。
! H8 C. _8 X1 Z$ R0 t) W$ L
+ `3 U/ v' V! i! E7 c0 e& Y

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复

使用道具 举报

 楼主| 发表于 2025-1-4 13:49:14 | 显示全部楼层
本帖最后由 n805 于 2025-1-4 21:46 编辑 # j7 |" Z9 R7 q; \
8 I5 g3 J) S) Q& r+ G0 l# L

. @, N* ]1 p( L1 c# F0 x从320x224到704x512,土星拥有多个解析度可供选择。! W# D9 @4 D: E5 ]) j
当然,解析度越高,需要用到的存储器就更多。上面写到可以将四个背景图层重叠,在解析度变大的情况下,可以重叠的图层枚数也会减少。/ t( T# f, X. [8 Y* r0 h
精灵图在任何解析度下都能使用,但是高解析度下,精灵图所能使用的数据长度会减半。低解析度模式下,一个像素点的长度是2字节,高解析度模式下,一个像素点的长度就只有1字节。所以高解析度模式下能显示的颜色数量也会减少,所以Gouraud着色法无法使用,无法表现阴影。那2字节的数据里还包含了与其他图层之间的优先顺序及半透明设置的信息。所以当2字节被砍成1字节之后,那些功能也会无法使用。所以在高解析度模式下的制约是非常多的。! d; h  m0 I9 N3 H
造成这些的一个是存储器容量的问题,但也不仅限于此。高解析度模式下,横向解析度会成为两倍,那么显示一个像素点所需要的时间会减半。那么读取一个像素点数据的时间也会只有原来的一半。在如此短的时间里,读取1字节的数据就是极限。/ z* ~9 D, I  J/ n: j6 o6 t
土星的画面模式非常多,还有1600万色的模式,就是一个像素点需要4bit的数据。土星能够将四枚图层重叠,当然,在1600万色模式下,存储器无法容纳4幅画面。不仅是存储器容量,访问显存的速度也是问题。+ ~/ m/ e7 n( H: Z, Z; y- k6 i
为什么总是提到访问速度的问题,那是因为在为土星编程时,访问显存的速度是一个非常重要的问题。从头开始详细分析这个问题的话,这篇文章的长度可能就要超过一片大学生毕业论文的长度。所以,我就先假设这篇文章的读者都已大概理解了我的上一篇文章说说80年代游戏的图像技术。
: v. @3 J4 U( E2 x; i7 K' n在显示文字时,可以在每8个像素点中放入一个字符。这8个像素点的字符用1个字节来表示。也就是说在扫描线走过8个像素点的时间里必须完成这么一些操作:
/ u: h: v0 U8 x. F9 v. l取得字符的码' c, B9 V: O" @4 B$ v2 x* E
通过字符的码找到字符的数据% H/ ~: T0 ]) H* _% r. p
这样一来,在扫描线走过8个像素点的时间里就需要访问两次存储器。当然土星的PCG能使用256个以上的图形元件。字符码也不止1字节。文字图形也不是黑白,横向8个像素点的数据长度也不止1字节。
8 |, G7 Y7 i7 n! W% G土星的总线带宽16bit,一次最大能访问2字节。显存所使用SDRAM,特性上在访问连续的地址时速度较快,所以通常会一起访问连续的地址。因此「访问两次存储器」读取8个像素点的数据这样一个思路在土星上依旧适用。
' t0 i/ `3 o9 G0 v8 c土星可以将4枚图层重叠,也就是说,将刚才所说的访问存储器的操作需要重复4次,也就是访问8次存储器。土星即使在低解析度模式下,横向也有320像素,比起红白机(横向256像素)显示「每8个像素点」的时间更短。相较红白机的年代,访问存储器的速度已经大大得到提升。只要基本背景图层不做什么复杂的处理,也不会有什么问题。
' ]2 `0 f0 W9 V9 j$ ~3 i8 `但是,各位是否还记得我刚才说的「可旋转背景层」和「可放大缩小背景层」。是的,他们两个就是「复杂的处理」。扩大的话倒还好,如果进行缩小处理,访问存储器的次数就会增加。假设要缩小到原来的一半大小,那么原来的8像素点的数据就会抽取成4个像素点输出。访问存储器的次数就会加倍。
* [( m6 W# q/ @旋转处理就更麻烦。即使读取了横向8个像素点的数据,其中能用的也只有1个像素点。每输出一个像素点就要访问两次内存。等等等等。再有就自己查阅技术文档吧。: ]" F0 E, U3 h1 t3 x; a' A  ~
结论就是,想要更多的运用画面处理功能,就会需要更加频繁地访问显存。显示「8个像素点」的时间非常的短,所以能够进行的处理十分有限。制作游戏的程序员就必须得把访问显存的时间时常放在脑子里。
9 _0 _' o% k" w. c$ m总之想要告诉各位的就是,土星在使用各种功能的时候有种种限制。土星搭载的很多功能都是无法在有限的时间下完成处理,非常难以实现的东西。就是这样一个情况下,当时的程序员们各显神通,让运用了各种功能的画面展现在了玩家的眼前。
5 A% s) q& ^+ n说白了,土星和DC一样,都是技术过于超前的游戏机,正因此,才产生了无法同时使用各种功能的问题。
% l7 h3 y, F+ Z* B9 D将土星的机能榨干?7 R' k3 L% O* b
最近为了写文章,翻了以前的杂志,看到了这样一篇采访,内容大概是「VR战士2」发售时,对开发人员的采访。开发人员对记者说「还没有完全发挥土星的性能」。很多人也讨论过,究竟有没有哪个游戏将土星的性能发挥到极致。这几乎已经成了一个迷思。$ V9 c0 t' ~. q4 E) P0 u
「VR战士2」已经使用了最高解析度的704x480,FPS60。这已经是相当疯狂的事情。毕竟高解析度相较低解析度无论是纵向还是横向,像素数都是低解析度的2倍以上。即使靠隔行扫描来解决纵向的问题,但横向上不想办法填满两倍的面积,就无法出现高解析度的感觉。毫无疑问,需要进行的运算处理是增加了许多。
% M4 i( u$ @0 E, U; Q低解析度模式下,1个像素点可以使用2字节存储器,可以展现更多的显色。但高解析度模式下,1个像素点只有1字节。加上精灵图,也只能显示256色。3D游戏如果没有阴影,画面会显得单薄。

9 c3 j+ O' p7 ~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复

使用道具 举报

 楼主| 发表于 2025-1-4 13:51:51 | 显示全部楼层
本帖最后由 n805 于 2025-1-4 13:53 编辑 " [% ?' G8 {6 w" k6 A
) j# g' x, C6 L; Z
, u# S, b4 F' z/ O5 J! n; u* J
VR战士2的游戏画面,可以看出人物没有影子
8 Y; f- \6 k; Q, S. z, e$ y! U
「VR战士2」选择了这样一个充满限制的模式,却用技术展现了如此精美的画面,成了当时土星上最热门的游戏。选择了这样一个充满限制的模式,土星的很多功能就无法使用。可以想象开发人员在做游戏的时候不禁说出“哎,这个功能用不了”的样子。那句「还没有完全发挥土星的性能」或许是对于无法使用想用的功能而发出的叹息吧。
. H7 I; ^- q( u0 G) @$ |% Y( s' o: O回到刚才那个话题「究竟有没有哪个游戏将土星的性能发挥到极致」,答案应该是不存在的。当年的开发人员在结构复杂难懂,性能又不高的主机平台上,绞尽脑汁来突破技术难关,在各种功能间妥协取舍,费劲心血才能完成一个游戏。
6 S; K$ k5 s1 b这就是那个年代的浪漫。也是我无法离开那个年代的原因。不希望看到有人在评论区里继续讨论PS和土星到底孰强孰弱。这个问题没有意义。现在在淘宝上买一台土星再加一台PS都花不了多少钱,难道还要纠结哪个更好?虽然我是世嘉的铁杆,但我同时拥有SONY出的,包括MSX在内的所有游戏机。倒不如说,我家除了微软的Xbox系列,其他叫的上名字的,拥有40款以上游戏的游戏机我基本都有。游戏软件对我来说才是玩游戏的过程中最重要的部分,硬件其次。出门买个好奇想玩的游戏,回家就一定有相应的主机平台可以玩才是我推崇的状态。
% i7 V* B% G" w! F+ B9 {
https://www.bilibili.com/video/a ... 69&aid=35507524
' I& K6 w5 V2 ^/ e3 W9 w! W

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复

使用道具 举报

 楼主| 发表于 2025-1-4 21:55:47 | 显示全部楼层
. \" v. h; a2 E9 _  a2 X+ K5 h
土星上同时也发售了很多3D游戏,它的对手PS是以3D为前提制作的游戏机。从总发售台数和游戏数量上来看,土星是完全败给了PS,这是无可争议的事实。原因有很多,有精准的批判,有无凭无据的坊间传闻。能出现那么多传言,可见土星还是有一些人气的。在这些传言中,有说土星3D很弱的。但上一篇文章中我也写过,在图形性能上,土星并不会输给PS。最大的问题还是运算性能。关于这个,经常有人说「土星虽然有两个CPU,但是不好用」。/ O" y/ o& n8 H" D, k8 A
世嘉最初为什么要开发一个「2D游戏机的究极形态」?确实,土星不擅长3D,这是因为土星是以2D游戏出发点设计的,虽然土星也可以绘制3D。那为什么在那个年代制作以2D游戏为出发点的游戏机?2 @3 T- v) M% H  W9 s$ w
在世家设计发售土星的年代,同期的游戏机还有3DO、PS、PC-FX(PC-ENGINE的后续机种)以及姗姗来迟的NINTENDO64。我们也不能忘了万代死不承认他是游戏机的Playdia。3DO、PS、Nintendo64是没有背景图层的「全3D游戏机」。没有3D机能的PC-FX误判了时代的潮流,以2D游戏为中心的土星以现在的观点看来也是「落后于时代」的设计。
; l$ S6 G% n) _6 a可以说3D游戏早在红白机时代就有了。当然,当时没有3D多边形,而是仿真3D画面。既然游戏的作者想要展现的是3D效果,那就姑且算作3D游戏。当然显示在电视上的画面是平面的。: [: N, G6 p' B, U  c2 `6 i8 m7 Z5 @
在2次元的画面里展现3次元空间,实际上是不可能的。当年的3D游戏有着几个约定俗成的事情,比方说地面上的阴影,大概是在「人物的脚下」。换种说法就是在绘制立体图形的时候我们会有XYZ三个坐标。去掉Y坐标的数据,我们就能得到脚下阴影的形状。) c5 K9 Y4 S6 G7 _) Y% T7 g
这是因为「在2次元的画面里展现3次元空间是不可能的」,所以采取的表现方法。因为无法展现3次元空间,所以就用2次元的阴影去表现。2次元空间的表现是在当时已经被掌握的技术。我们也可以用计算求得人物和阴影无法表现的Y坐标的数据,所以虽然电视无法表现3次元空间,但是我们却可以掌握这个3D次元里的位置关系。
; w4 G/ g8 x4 @& _" f4 i刚才那个例子只是个例子而已,并不是所有游戏都使用了这个方法绘制阴影。# K0 ?; k; w8 z% d; P" f: F3 t# n9 Y
角色与画面的远近可以用近大远小法则,以及角色颜色的变化来展现……总之,对于当时的3D游戏而言「在平面的电视画面里展现3D空间是不可能的」这一前提无法避免,所以就需要想办法去表现这个空间感。5 b, z0 E/ e5 ^0 ^0 r
3D游戏的历史就是一个投石问路的历史。无数的开发者不断尝试如何在平面的画面上展示「纵深」。因此,对于当年的玩家而言,要体会那些3D游戏的乐趣,就要先掌握每个游戏各自不同的展现「纵深」的方法。这导致了3D游戏在相当一段时间里都只有核心玩家才会去尝试。
( w0 N" B5 g2 w: o# e3 s1 A
3 \! g/ C* j9 P- F9 ?+ H
ゲイモス(Geimos)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复

使用道具 举报

 楼主| 发表于 2025-1-4 22:00:16 | 显示全部楼层
大部分人在看到当时的3D游戏之后都会觉得临场感很棒,想玩玩看。实际尝试之后却会发现自己无法掌握自己控制的角色在场景中的位置,最后就只有真正的死宅才会玩3D游戏。: Z* c7 I" L0 `* L4 }4 l
世嘉土星以及它的对手们都在1990年代初期开始开发。正直电脑升级换代逐渐白热化的时期,美国已经开始使用现有的3D技术来制作游戏,并逐渐掀起风潮。后来被称作FPS师祖的《重返德军总部3D》在1992年发售,由3D多边形绘制的首个动作冒险游戏《鬼屋魔影》也在1992年发售,在美国热卖的《微软模拟飞行ver.5》是1993年。4 P8 {, j- o# l. f$ A8 ]
启动土星研发项目的年份虽然未知,可以知道的是土星的CPU是在1992年确定的。

' b1 T+ b/ U( X: L# U' k  F* F
, d. c( B+ U7 O+ C3 ~# N
重返德军总部3D

) H4 C% @! ]! [" X" @# Z9 J2 G, t3DO就是在这个潮流下诞生的「着重3D的游戏机」,发售后惨败。在90年代初3D还是过于核心向,能玩3D游戏在当时并不是什么好的卖点,更何况很多游戏还需要2D机能。: G8 c' E1 G! E) B- G% N
土星在开发时针对当时市场上的2D游戏和3D游戏的比例做过调查。3D游戏还只有核心玩家宠幸的年代,市场份额必定不大。所以就认定这一趋势将会再持续数年。土星的设计也反应了当时这一市场状况。  |& m6 X* C2 ~' h" D; X* l
数年后,游戏业界产生了巨大的变化。推动这一变化的不是别人,正是世嘉自己。
, T. G: Q* t, X0 E# S《VR战士》街机版在1993年年底出现在了游戏机厅。世嘉开发了当时最先进的街机主板Model1,世嘉技术力的结晶就是这款游戏。视觉上充满革新的这款游戏,玩家们上手后就会发现依旧可以用2D格斗游戏的感觉去操作角色。于是「无法掌握3D游戏纵深感」的问题在这里被解决。因为作为游戏而言,它使用的是最新的3D技术,操作上和2D游戏没有区别。

- [- T+ Q# M9 Z" O- |+ r

9 `# `) I7 E- }' v" @  k. j
VR战士
" B) Q1 A2 K7 O4 e
从此,游戏市场的走向已经开始偏离了SEGA的预期,「运用3D技术的2D游戏」这一新种类登上了历史的舞台。此后,这一种类的游戏急速增多。3 W' f7 F5 [' O3 j' f
等到土星开发结束,开始发售的时候,这一种类的游戏已经多了许多。虽然2D游戏主流这一预判没错,但3D游戏再也不是束之高阁的东西了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|Video Game Do It Yourself ( 闽ICP备14000865号 )

GMT+8, 2025-1-15 20:40 , Processed in 0.113174 second(s), 14 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表