跨届大侠
大神经常病
- 积分
- 8900
- 威望
- 4214
- 贡献
- 2736
- 兑换币
- 2252
- 注册时间
- 2012-2-15
- 在线时间
- 975 小时
|
在网上谷歌了一下原理,自己看吧:
以下内容是我在很多个网站复制过来的,大家随便看吧
--------------------------------------------------------------------------------------------------------------------------------
每年,世界各地著名的Warez 组织都会推出一个小的动画片来比较,仅仅是用来炫耀其实力。64K 的3D动画。
要知道,一首普通的MP3 ,通常就有4000K 左右,一张普通的JPG 压缩图片也要30-40K ,而这个仅有63K 的3D动画,你花半个小时也看不完而且不重复带音乐
推荐配置:2G/512M/GF4Ti 或ATi9600 、128M以上
2000年时的最经典力作!相信大多网友对这个演示是相当熟悉了将1.9G的数据压缩为64K ,其3D渲染和声效却令人震撼,尤其是已64K 的大小竟然演示了近五分钟的不重复3D影片,其技术令人震惊~因为,事实上,这个
动画的真正容量超过15G ,也就是说这个Warez 组织把它压缩了25万倍。注:系统必须安装有directx8.0才行。因为动画支持DX8.0 加速
你会觉得不可思议,因为它只有64K.更高的渲染效果,3D画面的细腻的衔接,音效绝对没得说!!!!
64K 大小的3D大片《彗星撞地球》其音效以及3D效果也相当不错
“程序最优化的结果,充分发挥电脑硬件的极限潜力,处处体现着DEMO制作者高深的编程功底
瑞典有一个着名DEMO团队TheComputerCnonoad
DEMO的核心,其实就是压缩和解压缩算法,你看到画面最初始的时候那个进度条了吧,那其实就是个解压缩的过程,这些程序都是自解压的。要达到这样的效果,这些程序通常都要求用汇编语言编写,因为只有汇编语言才能达到这样最优化的效果,充分发挥硬件的威力。另外DEMO往往要进入一个特殊的绘图模式,这个模式称为X模式。刚刚看到的那些非常炫的3D效果,其实都是针对显卡进行实时编程,只有这样才能极大地节省体积。还有,你们注意到DEMO里面的那些画面了没有,如果观察够仔细,会发现,里面的很多东西其实都是重复的,由同样的几何图形组成,重复的东西往往最好压缩,因为只要划出一块地方保存那个图形,其他重复的,只要再调用那个图形就行了,音乐也是这样,翻来覆去,老是那么几个音调……”
64K 3D动画,检验机器显卡及内存性能
这三个3D动画都在64K左右,然而却都不是省油的灯。运行起来都要吃掉几百M
的内存。在购机是可以用它们检验机器性能。特别是第三个动画“彗星撞地球”,
即使你的机器可以运行魔兽,但也不一定能流畅的运行它。
注:系统必须安装有Directx8.0,因为动画支持DX8.0加速。 机子太老的就别打开了,小心cpu和显卡狂飙!
你相不相信64K大小,竟然看到这么久的三D精彩动画,而且质量会如此的高,不信就下来看看吧!
64kb=1.6G是个什么概念?看看就知道。懂E文的可以看到最后的介绍里面提到有1.6g的数据包含其中。其实还有很多不过这个是最好的。以后游戏要是这样就好啦。可能1Mb的游戏就可以玩N个钟头啦。期待…………
国外的0DAY组织经常自制DEMO,完全用源代码编写,用来炫耀本组织技术。而各组织之间的竞争也会通过全球DEMO大赛来进行,比赛规则是最大的DEMO不超过65K!这几个作品中最小的一个只有6KB!每个DEMO都声色俱全,效果震撼,令人惊叹不已!
Demo是怎么做出来的:
实际上是这样的, 小组的程序员用他的业余时间(也可能是工作时间)写一个程序框架, 用来同步显示和音乐, 当然, 包括特效的部分. 这样一个程序通常由汇编, C/C++, Pascal等写成, 然后为了Demo运行的更流畅, 一些代码要用汇编重写. 最后, 手绘的图形, 美妙的音乐通过精心设计的代码组合起来, 又一个Demo出现了!这是Demo的编程部分. 图形部分当然由美术家来完成. 美术家的工作包括3D建模, 贴图制作(这通常是一件逐象素的描绘工作), 设定虚拟摄像机的运行路径以供程序员使用之类. 音乐家将完成音乐的创作和制作. 大多数情况下,这是一种叫做Module的音乐,使用一种叫Tracker的程序完成. Module与MIDI有点类似, 但Module使用自己的乐器采样而不像MIDI使用的是声卡或软波表的乐器, 因此Module可以在所有硬件平台上获得同样的播放效果,而且, 文件却很小巧. Moudule允许对声音完全的控制, 对应着, 制作的难度水平. Module文件后缀通常为mod, stm, s3m, it, xm之类, 这些格式的音乐大都可以用Winamp来播放, 但有更专业的Module播放器如: ModPlug Player(Tracker/Plugins too)等等. 另外, 越来越多的音乐开始使用MP3格式. 请访问http://www.maz-sound.com/以获得Module的播放制作工具.由于种种限制: 比如平台性能, 文件大小等, Demo的制作需要很高的技术水平: 你知道你能在64k大小的程序里放些什么!!
调用Opengl或者DX。精心的编写代码和数据。然后做一个类似UPX的压缩壳。压缩容量。
简单地说就是生成技术,包括纹理,模型,音频采样都是由少量参数计算生成的,很有规律性,所以一般只能演示抽象,自然的动画.
汇编几乎没必要,即使有一点,内嵌到VC里就足够
也些也用专用的Loader.根据自身的特点,定制一个压缩方案。来达到最佳的压缩效果。
64K的动画,所高深不高深,不过真的要做还是有一定的难度。
动画无非就是调用opengl或者Dx来画点线面和贴图。64动画里面的贴图都是很简单的。有些甚至没有贴图。比如我要画一个房子。就几行代码。
伪码类似下面:
GLBegin(GL_PLOY)
Vertex(x,x,x)
Vertex(x,x,x)
Vertex(x,x,x)
GLEnd
其实看起来特殊形状的物体也是靠技巧用少量数据生成的.
模型都是一些基本形状(方形,球形,四面体等)用sin,cos等函数变换一下顶点坐标就能把模型复杂化,运气好就能得到像样的模型.纹理也用简单的p=f(x,y)函数算出来每个像素的颜色值.不同纹理直接再融合一下就能变出很复杂的纹理.音频采样也是同样道理.几个函数的代码量当然比几幅纹理的数据量少得多. |
|