64K之梦

时间:2022-10-09 07:09:58

如果回到20年前,我们很难想象,内存容量可能会以G为单位,存储容量会以T为单位。即使是现在,我们也无法断定,计算机不会用到以P为单位的内存容量。

依稀能够记得,在DOS下编辑系统配置文件时,常常为内存的加载和分配头疼;进行程序设计时,同样会为几K的内存占用而绞尽脑汁。从DOS时代走过来的人,才会理解内存何以如此珍贵。

640K,曾经是基本内存不可逾越的鸿沟。当内存的成本逐渐降低到我们在使用和设计时可以忽略它时,内存的使用机制已经不再受限。然而,曾经的珍贵却让众多程序员形成了节约内存的习惯,在算法上精益求精,以期用最低的内存占用、最小的文件实现最优的效果。3D64K程序就是他们展现给我们的智慧结晶。

时至今日,对于用户而言,已经无需考虑内存分配,而程序员们却为此多出了一项智力和才华竞争的内容。将华丽得不可思议的程序,做得极其微小而简洁,用体积非常小的程序来实现大型程序才有的视觉效果,成为很多程序员的梦想。

比如,64K的3D程序,就是这些梦想的完美展示。

相信很多人都熟悉那个不可思议的3D大片《彗星撞地球》,出色的音效、细腻的3D建筑、炫目的光影效果,让人很难相信它其实只有64K,但却包含了1.6G之多的数据量。

需要说明的是,3D64K动画虽然文件非常小,并不表明它们对内存的占用也是这么小,相反,因为程序算法的精妙,很少的指令要完成复杂的工作,就要依赖于CPU的运算能力以及内存容量的支持。

另外,一些3D64K程序采用了压缩率极高的算法,将十几G的动画容量压缩到了64K。借助DirectX或OpenGL技术,在几分钟甚至几十分钟内不重复地演示3D效果和音效。

每年世界各地著名的Warez组织都会推出一个64K的小动画片来比较和炫耀其编程实力。例如,德国的farbrausch组织,先后推出了fr-01至fr-045等几十部3D演示作品(Demo Scene)。

Demo Scene通过汇编语言调用DirectX引擎的核心代码库来建立对象架构、三维空间位置、运动轨迹及材质信息。程序在运行时由CPU读出这些信息给DirectX渲染引擎生成三维立体的对象及动画,同时运用程序纹理技术即时贴图。这些技术现在也被运用在3D游戏开发中。

fr-08:the product是2000年的经典力作,屡获殊荣。这个浓缩了11分钟3D动画的程序只有64K,并开创了Demo制作的新纪元,打破了以往Demo只注重美学不注重数据优化的格局,向人们展示了挖掘CPU潜能和大规模数据转存的可能性。

Demo往往要进入一个特殊的X绘图模式,针对显卡进行实时编程,这样才能极大地节省代码体积。国外作者的一个3D64K美女演示动画,在结尾字幕中说明了动画所包含的内容,包括178M多媒体纹理、159M的Wave文件、12条音轨、8.5亿波样等。

theprodukkt小组还过一个96K的第一人称3D射击游戏kkrieger,更是让人瞠目结舌。

3D64K程序的实现,不仅是一项技术工作,也是一项艺术创作。算法架构、代码优化、数据压缩、3D建模、贴图描绘、音乐创作……这其中的每一项,都需要高水平的人来完成,不仅需要程序员,还需要艺术家,不仅追求技术的精湛,也追求艺术的完美。而最终作品,用极小的文件体积,展示了长时间梦幻般的声光影效果,华丽的3D动画,身临其境的运动,声色俱佳,效果震撼。

艺术无止境,技术亦无止境。3D64K,让我们向这些程序员智慧的奇迹致敬吧!

上一篇:翻转课堂,我们准备好了吗? 下一篇:以信息技术应用为驱动 促进教师专业发展