关于N64版生化危机2用到的特殊压缩技术
本帖最后由 tenco 于 2018-7-2 23:35 编辑国内论坛经常提到任天堂为了这个游戏特意向CAPCOM开放了独有的压缩技术
我没看到外国人提所谓的任天堂8倍压缩技术,这个说法似乎是中国特有的
NGC用到的S3TC就是有损压缩技术,如果有高倍率的无损压缩技术,应该先去拿几个奖再讨论游戏的问题
N64卡带本身有数据压缩,但是并没有太高的倍率
负责移植N64版生化危机2的Angel Studios提到,由于N64的卡带容量限制,导致制作组必须使用汇编语言编写大型3D游戏,而非当时流行的C语言。
讨论这个问题比较深入的是这个文章
http://vrzone.com/articles/one-g ... evements/77665.html
首先要压缩的是视频,如果用今日的视频编码比如H265 可以实现极高的压缩比,但是当时的CPU无法解压。
PS的动画采用了一种特殊的格式,MJPEG,把视频的每一帧作为单独的图片压缩,这导致视频的体积较大。
N64生化2 换用其他编码,减少了视频的帧数和解析度,而且减少了色深,这导致N64的视频看上去色彩要比PS版淡。
这个文章下面有人提到任天堂开发了一种MPEG解压工具,或许是这个被传闻成8倍压缩了
其次是占最大容量的2D背景
N64版大幅降低了图片解析度,然后放大显示,因为线性过滤的存在,看上去并不粗糙,只是显得比PS版模糊
3D物体材质也是一样,材质精度明显低于PS版,更加模糊
功劳最大的还是线性过滤
另外,关于N64使用卡带,西方普遍有一个说法,就是阪神大地震导致日本半导体工业受创,RAM价格上涨,任天堂害怕这种情况会长期存在,CDROM的缓存价格太高导致N64售价变高,所以彻底放弃了用CDROM的想法。
还不如直接贴知乎链接 Leona_Akari 发表于 2018-7-2 23:25
还不如直接贴知乎链接
知乎所谓的业内连早年游戏机游戏语言是汇编都不信
这种话题没必要在那里讨论 Geminize 发表于 2018-7-3 08:35
徐老师说N64使用卡带是学FCSFC,垄断卡带制造收取高额加工费操纵出货补货周期 ...
老山内不信邪。觉得卖cg没人买账,读取速度更重要。结果大家都知道了。
—— 来自 Xiaomi MI 6, Android 8.0.0上的 S1Next-鹅版 v2.0-play fc年代用汇编挺正常,n64年代了还用汇编…… 处男老司机 发表于 2018-7-3 08:59
fc年代用汇编挺正常,n64年代了还用汇编……
其实现在也仍然有坚守汇编阵营的程序员,比如那些写出64K华彩小程序的人,只不过这些只是拿来炫技用,不再适合商业开发了。
SQUARE的那位伊朗程序员就是位汇编语言天才。 我有过这样一种想法,如果当年N64直接就做成“神游机”这样的形式会是什么结果。
还有一种想法,就是N64DD如果采用“神游机”这种形式会不会成功。 Geminize 发表于 2018-7-3 08:35
徐老师说N64使用卡带是学FCSFC,垄断卡带制造收取高额加工费操纵出货补货周期 ...
多种因素作用
任天堂想捞钱
CD读盘太慢
CD与RAM价格太高 你转的这个文章就是当年的论文截了一部分,文章下面回复的Jamie是移植团队的主程,你看他说的就行了。
任天堂提供了微指令开发工具,允许了和音频压缩团队的合作。
那个MPEG播放器是移植团队自己写的,跟任天堂没关系。 wildgazelle 发表于 2018-7-3 10:11
你转的这个文章就是当年的论文截了一部分,文章下面回复的Jamie是移植团队的主程,你看他说的就行了。
任天 ...
我看过天使组的那个访谈
主要是在说他们管理怎么牛逼,怎么克服困难,实际的技术并没说太多
只是提了一下N64平台难以开发,容量太低需要用汇编语言重写
tenco 发表于 2018-7-3 09:58
多种因素作用
任天堂想捞钱
ps比n64ram大多少?
—— 来自 Xiaomi MI 6, Android 8.0.0上的 S1Next-鹅版 v2.0-play tenco 发表于 2018-7-3 10:47
我看过天使组的那个访谈
主要是在说他们管理怎么牛逼,怎么克服困难,实际的技术并没说太多
只是提了一下 ...
有论文链接啊,做这方面的可以读读看,不过应该过时了吧
http://web.archive.org/web/20080329204624/http://www.gamasutra.com:80/features/20001004/meynink_02.htm 我记得书记已经过一次了
https://bbs.saraba1st.com/2b/thread-1290050-1-1.html
嗯,我的记忆还是可以的 我认为对于N64这样的机器来说,用汇编写程序对节约容量没有太大帮助。
N64上的生化危机2容量的大头还是在与图片和影音,使用低质量的图片和影音才是节约容量的主要方法。
铅笔 发表于 2018-7-3 10:58
ps比n64ram大多少?
—— 来自 Xiaomi MI 6, Android 8.0.0上的 S1Next-鹅版 v2.0-play
20倍 本帖最后由 w酱 于 2018-7-4 00:58 编辑
图片降低色深,索引位图+调色板,或者多层索引图+多层调色板,再撸一遍lzss或者huffman,音频走midi电子音,视频超低码率,日本20年前就这么几个路子呗
你说ngc用S3TC,怎么我印象里ngc和ps2类似都是走索引图的呢,如果ngc只支持到bc1的话,那玩意的压缩效果屎一样,被8bpp索引吊起来打
—— 来自 OnePlus ONEPLUS A5010, Android 8.1.0上的 S1Next-鹅版 v2.0-play 内存省钱是什么说法?
N64用的是RDRAM,内存总量4.5MB。
PS用的EDORAM,内存总量3MB,当然,PS的光驱还有32KB的独立内存。
N64的内存起码是PS的3倍成本。
w酱 发表于 2018-7-4 00:47
图片降低色深,索引位图+调色板,或者多层索引图+多层调色板,再撸一遍lzss或者huffman,音频走midi电子音 ...
S3是在用了调色盘的基础上还能做更高的压缩
本帖最后由 tenco 于 2018-7-4 12:27 编辑
creymorgan 发表于 2018-7-4 00:57
内存省钱是什么说法?
N64用的是RDRAM,内存总量4.5MB。
PS用的EDORAM,内存总量3MB,当然,PS的光驱还有32 ...
这里说的是N64因为内存价格高没有上CDROM
PS的内存很大一部分是为了中转光驱数据,数据要从光驱全都读到内存里。PS的显存远小于N64,因为N64采用Z缓冲填充像素,需要极高的显存。
N64的数据虽然也要从卡带解压出来,但卡带速度是光驱的几十倍,它不用一次把所有数据都读进来。
tenco 发表于 2018-7-4 11:36
S3是在用了调色盘的基础上还能做更高的压缩
BC1是没有传统调色板的,也没有颜色索引这种操作,原理是在tile内收集主要的极限值颜色,然后tile内的其他颜色通过近似计算来获得,靠每个tile单独计算这种方案增加整体纹理的发色数
BC1的适用范围是几乎没有透明通道,而且近似颜色比较多的图,早期3D模型的部分颜色贴图和bumpmap比较符合这个规则,因为区域内色彩变化不大,但是这个压缩方案对于纹理比较小的图片和2d图还有带透明的图就是灾难
这些问题在BC3和BC5才解决掉,那是XBOX和PS3的时代了 本帖最后由 tenco 于 2018-7-4 12:30 编辑
Geminize 发表于 2018-7-4 12:05
扯吧,32KB光驱缓存才多大?2MB主内存和1MB显存才占大头,实际是为提高读取速度,不少PS游戏光盘上的数据 ...
好吧我说的不严谨,是指主内存。
与数据压缩不压缩没关系,因为CPU不可能到外存寻址,数据必须读入内存才能用。
PS的光驱和内存问题在豪血寺体现的最明显,这代有人物变身的设定,变身时游戏会自动暂停进行读盘。我印象中这是唯一在局内强制暂停的FTG。
页:
[1]