第176章表白deo

    许毅是一时冲动才答应詹姆斯和他较量的,可是比试开始进行之后,他看到詹姆斯的水平,心中却有些后悔了。这种比试无疑是一点意义都没有的,尤其在对手的水平和自己相差很大的情况下,让他有欺负小孩子的感觉。

    一直以来,许毅最受不了的就是听到外国人老是拿中国说事,说什么中国人这样不行,那样也不行的。每每听到这个,许毅就异常火大,或许中国在这方面发展是比较缓慢,但很多方面不为人所知,许毅相信是因为中国人不喜欢出风头的原因使然罢了。有些事情,大家并不喜欢弄得满世界的人都知道,这和中国人的处世哲学有关。譬如说中国武术,要不是那些高手都讳莫如深,哪里轮得上什么跆拳道、柔道和空手道之类的大行其道?所以说,没见过,并不代表没有,如果一定要那样想,只不过是显得自己非常无知罢了。

    在以前,许毅有好几次就因为这种原因跟别人“干过架”,当然,这是他年轻气盛的时候。到后来,年纪大了,经历得多了,他也就没有这么多激情了,对类似的言论无非是一笑了之,说得难听点,就是用看待跳梁小丑的目光来看待他们。

    而现在,许毅隐隐意识到,自己的性格已经和以前有了变化,在这方面也是如此,有时候往往会头脑发热,自制能力下降。这点在他到达美国之后就更明显,好像一直套在自己头上的紧箍咒突然被取了下来一样,这点在他对待苏兰态度的问题上也有体现。要是在国内,他无论如何都不会像这里这样急色的。

    一时冲动,接受了詹姆斯的挑战,而现在,这次比试却又上升了另外一个高度,变成了“0day”和“黑客学院”的较量,或者说是美国和中国的技术爱好者在这个领域的较量。

    许毅之所以会接受这个比试项目,是因为他以前确实做过deo。国际上,很多人都认为中国是不存在这种小deo程序的编写者的,毕竟制作deo需要的技术含量非常高,那些会制作的程序员们对此也讳莫如深,甚少有专门传授怎么编写这类程序的教程。

    但是,没有听说过并不代表没有。

    在项斌认识的哥们中,就有一个精于此道的高手。他的网名叫做“马良”,即神笔马良之意,正如其名,马良不但在编程方面有很高的造诣,而且还擅长美工,这点和他父亲是一个画家很有关系。

    马良追求的正是计算机和艺术之间的完美结合,他喜欢用计算机来穿造美,所以经常喜欢做一些cg动画,后来还参加过一些游戏编程小组,他又是编程又是美工。再后来,在他接触到deo之后,他便深深地沉迷在这个光怪陆离的微型世界当中,将绝大部分时间都花在了这个上面。由于当时他找不到人来研究这个,以至于只好去国外的一些专业论坛学习,他的技术进步很快,后来加入了一些这方面的小组,很快成为那些小组的核心成员。

    不过,这段时间来,他一直没有独立完成一个完整的作品,都是协助其他人做deo,因为他后来遇到了一个自己喜欢的人,他决定,自己的第一个deo一定是为她写的。

    在向那个女孩表白之前,马良找到项斌,和他商量要他帮忙与他一起完成他的第一个deo,而且,他要用这个deo向那个女孩表白。

    项斌的技术在马良之上,马良找他就是让他负责编程这块,而他自己则专心做图形,另外还找了个懂音乐的哥们负责音乐处理。

    在此之前,项斌已经对deo有了一些比较深刻的认识,因为他们几个哥们之间的技术几乎是共享的,找到什么好玩的技术,都会在第一时间内公布出来,谁有兴趣就自己来研究,有什么问题就问提供者。当时项斌在学加密,而deo技术竟然以这么小的大小能够获得这么绚丽的效果,项斌当时就被吸引住了,于是展开了研究。

    这可是关系到马良的终生大事,自然不能大意,项斌打起十二分精神和马良一起,两人连续努力了快半个月才终于将这个只有64k大小的程序搞定。

    在此期间,项斌的主要工作就是编程,首先要写一个程序框架,用来将图形的显示和音乐同步起来,当然,那些特效也是由编程完成。刚开始的程序是用c语言编写的,后来,为了使程序的体积更小,运行更加流畅,项斌又用汇编进行了多次重写。

    马良主要是负责手绘图形,其中还包括3d建模、贴图制作以及设定虚拟摄像机的运行路径等。其中的贴图制作最为烦琐,要逐象素逐象素地进行描绘。

    最后那个负责音乐的哥们则进行音乐的创作和制作。这是一种叫做odule的音乐,它与i有点类似,但odule使用自己的乐器采样而不像i使用的是声卡或软波表的乐器,因此odule可以在所有硬件平台上获得同样的播放效果,而且,文件却很小巧。oudule允许对声音完全的控制,对应着,制作的难度水平也大大增加。

    各部分都完成之后,最后的工作就是许毅的了,他负责将这些元素同步起来。普通的视频是通过连续不断地播放帧来实现动画效果,而一帧的大小就已经达到几,所以这些视频文件非常大。deo显然不能这样,不然64k的大小,连一张图片都不只这么大。实际上,deo程序是通过直接对显卡进行操作和计算,其中只包含一些关键帧,而中间的实现效果则完全通过算法演算出来,而且,通常情况下,deo里面的图形都是一些比较规则的多边形,里面的图案组合往往可以重复利用,这样就大大减少了整个程序的体积。

    当然,缩小体积还有最主要的一步,那就是压缩。所有deo程序都利用了另一种名为upx的压缩算法,这种压缩算法效率很高,甚至可以达到10%压缩比。在deo程序运行之后,它便会自动进行解压行为,将整个映像解压到内存中,然后才开始运行。