一只鸭子带来的震撼 - Aland·Sun

看到下面这只鸭子没?这不是一般的鸭子!!!



你现在需要做的:

1、保存图片至本地硬盘;

2、把图片扩展名由.jpg改成.rar,没错,这是一个压缩文件;

3、解压,查看里边的3个exe文件。

 

    这是3段神奇的3D动画,虽然每段只有64K大小,内容却极为丰富。尤其是prophecy《彗星撞地球》,竟然包含了近30分钟的不重复3D影片和令人震撼的音效!第一次看见64K动画时,觉得很神奇。这种动画往往包含了一些复杂的几何造型和绚丽的纹理,然后还有着节奏强劲的背景音乐。这一大堆东西无论如何也不像是一个仅仅64K的执行文件所能容下的,按照普通的理解,单是长达几分钟甚至几十分钟的背景音乐文件也需要以M为单位的存储空间,更别说那么多的模型和纹理图像了。后来当我花了很长一段时间学习MIDI音乐制作和3D图形学后,64K 动画也就不显得那么神奇了——其实就只是一个实时图形演算程序而已。如果我们掌握了一些实时纹理及模型生成的方法,写出一个与64K Intro 类似的Demo也不是件难事,当然,由于一些神秘的技术技巧我们不可能完全得知,所以要达到像国外的SceneDemo专业团队的水平那也是相当有难度的。有兴趣想做做类64K 动画的伙计们可以看看这本书:《Texturing and Modeling - A Procedural Approach》——七百多页的大块头,里面详细的介绍了各种过程纹理和造型技术。

    一个MIDI音乐多大?5分钟的,不过数十KB而已,包含了128种音色,如果每种音色都用最高的采样率来计算波表大小而且不算压缩,也可以说一个MIDI音乐就包含了数十GB的声音数据,而其体积仅仅只有数十KB。问题是MIDI你觉得神秘么?一点都不神秘。这些DEMO,实际上可以看得出的确并不消耗多少资源——3D程序的重头戏,是纹理,而不是模型,储存一个顶点只需要4个字节,而一个动画也许只有几千个顶点,甚至更少。至于声音,这些DEMO里只有寥寥几种音色而已,用波表的方式存储,声音消耗的资源,若干KB即可。这些程序只是定义了一些数学网格,和这些网格顶点的运行方式,一切都是纯数学的,可以用函数描述。用数学描述我们整个宇宙的运行,也只需要几十个方程,加起来连10KB都不到,更何况描述这几个简单的图形呢?

那为什么其他的3D游戏那么大?

    两个方面的原因。一是因为3D程序吃空间的重头戏是纹理。游戏为了做到更好的效果,用了非常复杂非常恐怖的贴图和特效计算,例如Crysis VeryHigh模式,用到的贴图都是4096x4096尺寸,32位色的。如果不压缩,一张图就是64MB的空间,而任何一个场景,都会用到数十数百甚至上千张贴图,这些都是需要大量空间的。而诸如AF、AA这样的操作,也会消耗大量的纹理内存。第二是对于像素的处理。这些DEMO虽然看起来还不错,但实际上处理非常粗糙,基本上就是最简单的贴图,外加简单的光照,这些都不需要程序自己处理,代码上不过是几个函数调用而已。但游戏不同,为了得到复杂的效果,最顶级的游戏都是用程序来计算每一个像素的颜色的,先贴上很多层图(现代游戏至少3层),然后再根据很多复杂的算法进行计算。继续用Crysis做例子,要计算出屏幕上的一个像素,平均得执行2000条指令——这个是那些DEMO无法相提并论的。

    不过这些DEMO还是有启发意义的,就是很多时候人们并不需要非常逼真的效果,如何用最少的资源换取看起来最好的效果,这是这些DEMO值得借鉴的地方。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值