Board logo

标题: [专题讨论] 太JB长见识了,《游戏机背景与活动块技术讲座》 [打印本页]

作者: md2    时间: 2015-3-17 21:23     标题: 太JB长见识了,《游戏机背景与活动块技术讲座》

NICONICO上的系列视频
http://www.nicovideo.jp/mylist/24061717
BGとかスプライトとか色分けしてみた

FC
http://www.tudou.com/programs/view/0xj_zuZoLqA/
SS
http://www.tudou.com/programs/view/p5SylXghZe4/
PCE1
www.tudou.com/programs/view/sdDMV0QuYOo/
PCE2
http://www.tudou.com/programs/view/KBkW6loEtHU/
MD1
http://www.tudou.com/programs/view/Z-O54Qm8QPc/
MD2
http://www.tudou.com/programs/view/unZtyc5KX4g/


感觉之前30年白活了。看似最简单的2D游戏都有极为精巧的技术。
例:魂斗罗的片头,由于FC的色彩不够,因此两人的胸像是用背景和活动块合成的,使用了2套调色盘。


而很多游戏,看上去在动的其实是背景,像背景的才是活动块。
像比较大的敌方BOSS,主体都是背景,细节才是活动快,这也是为什么FC关底战时背景会全黑,因为这时候地板就被活动块替换了,BOSS是整个地板。
还有火焰纹章,战斗画面中,只有进攻的一方是活动快,一旦攻击停止,就会用背景替换,然后敌方再换成活动块

[ 本帖最后由 md2 于 2015-3-23 23:40 编辑 ]
作者: atlus    时间: 2015-3-17 21:59

posted by wap, platform: Galaxy Note III
强力学习!
作者: firesun    时间: 2015-3-18 00:13

posted by wap, platform: iPhone
嗯,都是那个时代常见的技巧,很佩服想出这种实现的人,也都是被逼出来的啊
作者: md2    时间: 2015-3-18 00:28

SS的SONIC R标题画面有一个R字会反射周围的图像
其实那是一段预先做好的动画,被放到一个活动块上显示
作者: SONIC3D    时间: 2015-3-18 02:50

引用:
原帖由 md2 于 2015-3-18 00:28 发表
SS的SONIC R标题画面有一个R字会反射周围的图像
其实那是一段预先做好的动画,被放到一个活动块上显示
Cube mapping不都是这样做的么。。。。否则那个标题画面时,背景是个平的背景层,完全谈不上"周围",还有Loading时"周围"全部是黑色,什么都不能反射了。。。。

其实像后来3D游戏的车体环境反射之类的几乎都是用单独一张环境映射图作Cubemap,这样可以用降低精度甚至色深的方式减少显存占用,比如Burnout paradise的车体环境映射可以去观察一下。还有一种偷懒的方法是用上一帧或上一个Pass的帧缓冲,比如街机的湾岸赛车MMT3,所以你在车后看到的反射是错误的,是来自前方的景物,并且移动方向也不对。

SonicR中这个东西牛叉的地方在全软件运算这个Cube mapping,Sega官方的SS图形库函数里也没有Cubemap,土星的图形硬件本身也没有硬件支持CubeMap。。。。
当时这东西在游戏机平台的软件实现极少,而且也没有互联网,纯考验3D图形学在特定硬件上的优化实现能力了。

作者: md2    时间: 2015-3-18 10:23

引用:
原帖由 SONIC3D 于 2015-3-18 02:50 发表


Cube mapping不都是这样做的么。。。。否则那个标题画面时,背景是个平的背景层,完全谈不上"周围",还有Loading时"周围"全部是黑色,什么都不能反射了。。。。

其实像后来3D游戏的车体环境反射之类的几乎都是 ...
那还真是即时算的?
我还以为是实现准备的一系列动画按顺序显示。
作者: flashback    时间: 2015-3-18 10:42

视频字幕全日文,看不懂。
谁能翻译成中文版看看
作者: SONIC3D    时间: 2015-3-18 13:51

引用:
原帖由 md2 于 2015-3-18 10:23 发表

那还真是即时算的?
我还以为是实现准备的一系列动画按顺序显示。
手柄方向键可以操纵R的旋转。。。。
作者: md2    时间: 2015-3-18 22:13

常见的用单层卷轴伪装多层卷轴的做法,各层是同一个背景切割而成,重叠部分用活动块表现。


作者: md2    时间: 2015-3-19 23:35

我发现了

2D游戏机中最辛苦的就是PCE
明明只有一层卷轴,却被迫要跟SFC MD这种双卷轴的机器死磕
而且PCE确实有大量画面真的实现了双卷轴,基本都是用逆天的活动块替代背景的
作者: lemonninja    时间: 2015-3-20 00:02

引用:
原帖由 md2 于 2015-3-19 23:35 发表
我发现了

2D游戏机中最辛苦的就是PCE
明明只有一层卷轴,却被迫要跟SFC MD这种双卷轴的机器死磕
而且PCE确实有大量画面真的实现了双卷轴,基本都是用逆天的活动块替代背景的
PS完全没有卷轴能力,所有的转轴都是用活动块拼接的。后来的DC也是这样的,不过性能要强多了。另外sfc能够最大做4层背景卷轴,ss就是照此为目标的,可以最大实现5层卷轴。
作者: waterfirestart    时间: 2015-3-20 18:13

posted by wap, platform: SonyEricsson Xperia Play
mark
作者: yksoft1    时间: 2015-3-21 14:55

posted by wap, platform: Firefox
引用:
原帖由 @md2  于 2015-3-19 23:35 发表
我发现了

2D游戏机中最辛苦的就是PCE
明明只有一层卷轴,却被迫要跟SFC MD这种双卷轴的机器死磕
而且PCE确实有大量画面真的实现了双卷轴,基本都是用逆天的活动块替代背景的
事实上sprite机能最强的还是80年代sega的某基板 Galaxy Force 2还有某个赛车那块 SS都不能完美移植(视距少了,60->30fps)

http://system16.com/hardware.php?id=699&gid=1856#1856

本帖最后由 yksoft1 于 2015-3-21 14:58 通过手机版编辑
作者: md2    时间: 2015-3-22 20:49

引用:
原帖由 yksoft1 于 2015-3-21 14:55 发表
posted by wap, platform: Firefox
事实上sprite机能最强的还是80年代sega的某基板 Galaxy Force 2还有某个赛车那块 SS都不能完美移植(视距少了,60->30fps)

http://system16.com/hardware.php?id=699&gid=1856 ...
跪了
好像是把其他家的2D画面3D化了一样
作者: lemonninja    时间: 2015-3-22 23:09

引用:
原帖由 md2 于 2015-3-22 20:49 发表


跪了
好像是把其他家的2D画面3D化了一样
其实在哪个年代,一个可以放大缩小变形的sprite概念就是一个四边形的Polygon
作者: asdqwe    时间: 2015-3-23 00:13

posted by wap, platform: 小米 MI 3
引用:
原帖由 @lemonninja  于 2015-3-22 23:09 发表
其实在哪个年代,一个可以放大缩小变形的sprite概念就是一个四边形的Polygon
土星就是这么做的咯?
作者: werety    时间: 2015-3-23 00:23

引用:
原帖由 md2 于 2015-3-19 23:35 发表
我发现了

2D游戏机中最辛苦的就是PCE
明明只有一层卷轴,却被迫要跟SFC MD这种双卷轴的机器死磕
而且PCE确实有大量画面真的实现了双卷轴,基本都是用逆天的活动块替代背景的
NEOGEO也算个“活动块怪物”吧?据说活动块多到能够拼出整幅图层背景,做到“满屏全是活动块”。
作者: lemonninja    时间: 2015-3-23 00:55

引用:
原帖由 asdqwe 于 2015-3-23 00:13 发表
posted by wap, platform: 小米 MI 3
土星就是这么做的咯?
完全是的~

所以说,当年sfc、md cd也有一定的3D polygon能力,只不过碍于计算力不够,像sfc只有在搭配一些dsp芯片来辅助计算时才能在游戏里面有一定规模的应用,例如某款fx赛车游戏,还有被取消开发的FX Fighter等。

[ 本帖最后由 lemonninja 于 2015-3-23 01:39 编辑 ]
作者: KainX    时间: 2015-3-23 02:58

引用:
原帖由 lemonninja 于 2015-3-20 00:02 发表


PS完全没有卷轴能力,所有的转轴都是用活动块拼接的。后来的DC也是这样的,不过性能要强多了。另外sfc能够最大做4层背景卷轴,ss就是照此为目标的,可以最大实现5层卷轴。
PS没有sprite机能,所有的2D游戏都是单片的多边形。
作者: KainX    时间: 2015-3-23 07:15

Sega Y Board每帧最多能处理2176个活动块;土星和System32一样、每帧最多有8192个活动块(http://en.wikipedia.org/wiki/Lis ... m_32_specifications),

NEOGEO同屏最多能显示380个活动块(http://en.wikipedia.org/wiki/Neo_Geo_(system))、完全不是一个级别的。
作者: 玛丽医生    时间: 2015-3-23 09:41

马克马克~
作者: jinyibo    时间: 2015-3-23 15:55

posted by wap, platform: iPhone
活动块可不可以理解为特殊gif?fc游戏天使之翼2那些射门动画非常逆天的。
作者: md2    时间: 2015-3-23 16:45

引用:
原帖由 jinyibo 于 2015-3-23 15:55 发表
posted by wap, platform: iPhone
活动块可不可以理解为特殊gif?fc游戏天使之翼2那些射门动画非常逆天的。
重点不是它连续播放
而是它可以作为一个独立的单元随意在画面上运动,完全不靠CPU。

游戏机上的PPU,只要CPU发出指令,某某活动块移动到某个位置,剩下的都是PPU自动完成。电脑就不行,需要CPU亲自去画。
作者: firesun    时间: 2015-3-23 20:26

posted by wap, platform: Chrome
ls描述的不对

老式主机上面的图像分为BG和Sprite两种,简单来说,BG是用来显示大面积图形,一般来说只有几个可用,数量很少,SFC有四层卷轴就已经拿来炫耀了。BG在显示的时候可以设置x、y偏移,用来控制卷轴。也就是说,程序员在设置好某个Bg的图像地址、x、y偏移量地址,以及其它信息(调色板、旋转缩放参数等),每帧的显示、刷新都是硬件完成了

Sprite就是活动块,一般来说活动块都比较小,GBA这样的机器,最大的活动块好像也只有64×64像素(似乎),再大一些的角色(比如街霸中的角色,每个角色其实是2~4个活动块拼出来的,一个角色就占掉了多个活动块)。活动块的优点是数量比较多,从几十个到上百个。在显示的时候,程序员要设置每个要显示活动块的图像地址、x、y偏移量信息、以及其它信息(也是什么调色板、旋转缩放什么的),然后显示和刷新也是由硬件完成的。

以前的CPU性能极差,如果每帧由CPU来描绘每个像素,刷新率基本上会变成个位数,只有通过硬件来完成上面所说的这种半机械式的操作,才能保证显示效率。
作者: lemonninja    时间: 2015-3-23 23:23

活动块对于显示屏幕来说一种不存在的东西,活动块只存在于被运行的程序中。
作者: lemonninja    时间: 2015-3-23 23:24

引用:
原帖由 KainX 于 2015-3-23 02:58 发表

PS没有sprite机能,所有的2D游戏都是单片的多边形。
在SS PS的年代sprite基本等同于polygon
作者: lemonninja    时间: 2015-3-23 23:26

引用:
原帖由 KainX 于 2015-3-23 07:15 发表
Sega Y Board每帧最多能处理2176个活动块;土星和System32一样、每帧最多有8192个活动块(http://en.wikipedia.org/wiki/Lis ... m_32_specifications),

NEOGEO同屏最多能显示3 ...
如果不是在同一个标准的测试环境下就根本没有意义,让活动块做做放大缩小变形旋转之类的,性能立马下降一半
作者: md2    时间: 2015-4-23 23:21

啊,忘了吧SS的传上去了

回头传

这个系列最有趣的就是SS,其他主机的技术要点就是能用背景代替的地方就绝对不用活动块,而SS是能用活动块就绝对不用多边形(3D画面除外),很多超大的背景物体都是用活动块表现的,超懒。

[ 本帖最后由 md2 于 2015-4-23 23:23 编辑 ]
作者: SONIC3D    时间: 2015-4-23 23:55

引用:
原帖由 md2 于 2015-4-23 23:21 发表
啊,忘了吧SS的传上去了

回头传

这个系列最有趣的就是SS,其他主机的技术要点就是能用背景代替的地方就绝对不用活动块,而SS是能用活动块就绝对不用多边形(3D画面除外),很多超大的背景物体都是用活动块表现 ...
因为可以省掉变换矩阵中的旋转和缩放信息,性能大增。
作者: lemonninja    时间: 2015-4-30 00:30

引用:
原帖由 md2 于 2015-3-23 16:45 发表

重点不是它连续播放
而是它可以作为一个独立的单元随意在画面上运动,完全不靠CPU。

游戏机上的PPU,只要CPU发出指令,某某活动块移动到某个位置,剩下的都是PPU自动完成。电脑就不行,需要CPU亲自去画。
PPU的功能基本相当于现在显卡里的TMU纹理拾取单元,就是根据指令把相应的贴图或者所说色块充填到相应的像素位置。当然功能要简陋的多。
作者: riven    时间: 2015-4-30 18:07

posted by wap, platform: ZTE N983
马克学习
作者: cloudian    时间: 2015-4-30 22:26

posted by wap, platform: ZTE
现代机器怎么处理2D画面?PS4啥的。或者说,现在已经没有所谓2D的画面了?
作者: lemonninja    时间: 2015-5-1 00:23     标题: 回复 33# 的帖子

最终显示在屏幕上的都是2D画面呀,我们的屏幕又没有变成3D全息成像:D
2D画面就是省去了透视转换等步骤,直接进行光栅化之后的操作。
作者: 多余的云    时间: 2015-5-2 19:21

posted by wap, platform: LG
学习马克!
作者: tangyi    时间: 2015-5-4 12:53

mark




欢迎光临 TGFC Lifestyle (http://tgfcer.com/) Powered by Discuz! 6.0.0