本帖最后由 n805 于 2025-1-4 21:46 编辑
" y6 B: S4 S; R, W1 |0 b9 c P. T# K& Z0 d
3 N# D( m; U0 O) o
从320x224到704x512,土星拥有多个解析度可供选择。
( j7 ~: w2 d, @7 H5 y: q. W# C当然,解析度越高,需要用到的存储器就更多。上面写到可以将四个背景图层重叠,在解析度变大的情况下,可以重叠的图层枚数也会减少。
. U* q d- h9 h精灵图在任何解析度下都能使用,但是高解析度下,精灵图所能使用的数据长度会减半。低解析度模式下,一个像素点的长度是2字节,高解析度模式下,一个像素点的长度就只有1字节。所以高解析度模式下能显示的颜色数量也会减少,所以Gouraud着色法无法使用,无法表现阴影。那2字节的数据里还包含了与其他图层之间的优先顺序及半透明设置的信息。所以当2字节被砍成1字节之后,那些功能也会无法使用。所以在高解析度模式下的制约是非常多的。& Q, N4 B, _1 x
造成这些的一个是存储器容量的问题,但也不仅限于此。高解析度模式下,横向解析度会成为两倍,那么显示一个像素点所需要的时间会减半。那么读取一个像素点数据的时间也会只有原来的一半。在如此短的时间里,读取1字节的数据就是极限。
T/ I+ x. G" }7 ?6 o! X) G土星的画面模式非常多,还有1600万色的模式,就是一个像素点需要4bit的数据。土星能够将四枚图层重叠,当然,在1600万色模式下,存储器无法容纳4幅画面。不仅是存储器容量,访问显存的速度也是问题。* U* d Q2 y% r' X* _& z
为什么总是提到访问速度的问题,那是因为在为土星编程时,访问显存的速度是一个非常重要的问题。从头开始详细分析这个问题的话,这篇文章的长度可能就要超过一片大学生毕业论文的长度。所以,我就先假设这篇文章的读者都已大概理解了我的上一篇文章说说80年代游戏的图像技术。
# C" x( X! P& o* E1 O在显示文字时,可以在每8个像素点中放入一个字符。这8个像素点的字符用1个字节来表示。也就是说在扫描线走过8个像素点的时间里必须完成这么一些操作:4 \# S! U9 Z1 [9 d% }) Y$ f: e7 o
取得字符的码
( d" N/ y, f) @4 V+ V通过字符的码找到字符的数据
/ l6 i5 g; k0 R( O- X3 R0 C9 S这样一来,在扫描线走过8个像素点的时间里就需要访问两次存储器。当然土星的PCG能使用256个以上的图形元件。字符码也不止1字节。文字图形也不是黑白,横向8个像素点的数据长度也不止1字节。. |- i. x1 V) E9 ]" a- \
土星的总线带宽16bit,一次最大能访问2字节。显存所使用SDRAM,特性上在访问连续的地址时速度较快,所以通常会一起访问连续的地址。因此「访问两次存储器」读取8个像素点的数据这样一个思路在土星上依旧适用。 K7 ~3 u7 d+ u4 u/ S
土星可以将4枚图层重叠,也就是说,将刚才所说的访问存储器的操作需要重复4次,也就是访问8次存储器。土星即使在低解析度模式下,横向也有320像素,比起红白机(横向256像素)显示「每8个像素点」的时间更短。相较红白机的年代,访问存储器的速度已经大大得到提升。只要基本背景图层不做什么复杂的处理,也不会有什么问题。; ]" P$ |7 C' o0 F
但是,各位是否还记得我刚才说的「可旋转背景层」和「可放大缩小背景层」。是的,他们两个就是「复杂的处理」。扩大的话倒还好,如果进行缩小处理,访问存储器的次数就会增加。假设要缩小到原来的一半大小,那么原来的8像素点的数据就会抽取成4个像素点输出。访问存储器的次数就会加倍。! @1 Z( w5 w' \& Y4 M1 {
旋转处理就更麻烦。即使读取了横向8个像素点的数据,其中能用的也只有1个像素点。每输出一个像素点就要访问两次内存。等等等等。再有就自己查阅技术文档吧。' d. `4 Z2 L1 k8 Z" r
结论就是,想要更多的运用画面处理功能,就会需要更加频繁地访问显存。显示「8个像素点」的时间非常的短,所以能够进行的处理十分有限。制作游戏的程序员就必须得把访问显存的时间时常放在脑子里。
& t: B, i) \6 c" a: `总之想要告诉各位的就是,土星在使用各种功能的时候有种种限制。土星搭载的很多功能都是无法在有限的时间下完成处理,非常难以实现的东西。就是这样一个情况下,当时的程序员们各显神通,让运用了各种功能的画面展现在了玩家的眼前。
) H( `- c# O: [, H2 @3 K- s说白了,土星和DC一样,都是技术过于超前的游戏机,正因此,才产生了无法同时使用各种功能的问题。0 J& y0 ?% k7 a( j4 C( x M
将土星的机能榨干?
$ Q9 e# l/ q& ^' N5 B# `2 s最近为了写文章,翻了以前的杂志,看到了这样一篇采访,内容大概是「VR战士2」发售时,对开发人员的采访。开发人员对记者说「还没有完全发挥土星的性能」。很多人也讨论过,究竟有没有哪个游戏将土星的性能发挥到极致。这几乎已经成了一个迷思。
; C. T5 `5 d' k: ^' k+ S3 I) v「VR战士2」已经使用了最高解析度的704x480,FPS60。这已经是相当疯狂的事情。毕竟高解析度相较低解析度无论是纵向还是横向,像素数都是低解析度的2倍以上。即使靠隔行扫描来解决纵向的问题,但横向上不想办法填满两倍的面积,就无法出现高解析度的感觉。毫无疑问,需要进行的运算处理是增加了许多。" x; m( o5 s" r5 w9 A6 e% j. ~$ j
低解析度模式下,1个像素点可以使用2字节存储器,可以展现更多的显色。但高解析度模式下,1个像素点只有1字节。加上精灵图,也只能显示256色。3D游戏如果没有阴影,画面会显得单薄。
0 ?7 a! H4 @* w8 m% x7 D) {: o |