《龙的传说》彰显龙的力量——中国大学生全球渲染技术竞赛夺冠记
综合报道
龙,古老中国的图腾;圣保罗,具有拉丁风情的南半球大都市。
7月6日,古老的龙让热情洋溢的圣保罗沉醉──在刚刚落幕的2004年微软“创新杯(Imagine Cup)”软件开发大赛上,来自中国北京工业大学的刘宏春、刘飞熊、宁为、李晓毅凭借《龙的传说》参赛作品获得渲染技术专题全球总冠军。
7月14日,记者来到北京工业大学计算机学院的507会议室,采访了载誉归来的学子。
创意第一
黑云密布的天空下,宏伟的太和殿庄严地矗立着。而在太和殿的上空,两条栩栩如生的龙正在翻滚盘旋。它们盘旋的中心,是如皓月般悬在天边的宝珠;地面上,两条龙的影子舞动出变幻莫测的轨迹……
古老的神话以全新的方式出现在记者的面前,让人不得不叹服计算机技术带给人类的惊喜。而正是这个以中国传说的“二龙戏珠”为题材的3D程序,在全球90多个国家,上万名参赛大学生的作品中脱颖而出,最终摘取了渲染技术专题的桂冠。
参赛选手之一──北京工业大学软件学院一年级研究生刘宏春告诉记者,微软的“创新杯”软件大赛在高校的计算机专业学生中享有很高的声誉,在这样的全球竞赛中获得名次,是非常值得骄傲的事。2004年,竞赛的主题分为四个,软件开发竞赛、逻辑算法、渲染技术竞赛和短片制作竞赛。
《龙的传说》场景
他们参加的是渲染技术专题竞赛,每组的队员不超过4人,作品要求使用DirectX 9、D3DX、HLSL shaders,使用Visual studio编程,作品不能超过40MB。评判作品的标准包括:创新性30%,印DirectX9深入程度30%,整体效果和细节处理20%,技术难度20%。
刘宏春说,这个比赛并不仅仅是简单的制作3D动画的比赛,而是需要利用最新的技术制作出一个完全可以交互的3D程序。拿《龙的传说》来说,整个场景都是利用显卡来实时渲染的,并非是简单的视频回放。
说到夺冠的成绩,刘宏春显得很谦虚,他告诉记者:“计算机学院本科大二的刘飞熊、本科大三的宁为、软件学院研究生一年级的李晓毅和我是坚持做这个作品最长时间的人,所以最后作品署名是我们四人。其实另外还有10位同学也给作品的创作带来帮助,这是一次同学团队合作和创新的体验。”
同样,程序的最初创意,也是同学们群策群力的结果。刘宏春告诉记者:“当初大家坐在一起,列出好多好多想法,但是后来经过权衡,还是觉得既然是中国的作品,就应该体现一下咱们中国文化方面的东西。”最后大家选定了象征中国传统文化的龙和太和殿来作为表现素材,这中间还有一个很有意思的故事。“这个东西之所以提出来,是因为我们一个队员晚上做了一个梦,这是真事。他梦见他一个下午走着走着,见到了什么广场,觉得不对,天色暗下来,然后一抬头发现两条龙在天上飞”。后来,刘宏春和他的队友们从这个梦中找到了灵感,做出了《龙的传说》。
而这个中国文化色彩极为浓厚的3D程序,有着极为强烈的视觉冲击力,提交之后,不但赢得了网友们的青睐,也征服了评委们,最终获得了冠军(参赛的作品,都要经过网上投票和大赛组委会专家评审两个阶段)。
成功的背后总是汗水
“成功之花。/人们只惊羡她现时的明艳!/然而,当初她的芽儿,/浸透了奋斗的泪泉,/洒遍了牺牲的血雨”,的确在每一个成功者的背后,都有着无数的艰辛和汗水。虽然刘宏春一再告诉记者,在准备比赛的过程中,他和队友们受到了来自各方的照顾,但从他叙述的字里行间,记者还是能够想见当初的辛苦。
刘宏春接受记者采访的509会议室,是一个20平米左右的房间,被大办公桌、坐椅塞得满满当当的。不过,这就是他们当初日夜奋战编写程序的“战场”。今年2月份,刘宏春和刘飞熊、宁为、李晓毅几个人决定组队参赛后,大家把自己的电脑搬到这里,就在这里扎下了根。说起那段日子,刘宏春给记者讲了给他印象最深的一件事:“在我们这个作品刚刚提交之后,大家说去吃饭吧,都说好,但最后大家谁也没有去吃──因为当时我们坐在沙发上,还没有站起来,就已经睡着了,实在太辛苦了。”
捧着奖杯的刘宏春
让大家这么辛苦的,就是对龙的处理。第一个难题就是“半透明鳞片融合的问题”。“看到龙颈部位的鳞片了吗?”刘宏春指着截图说,“因为现有的硬件产品的技术限制,没有很好的办法正确由远及近地渲染,用程序排序的方法又太复杂,也不能实现。我们的解决办法是由美工制作模型时先确定鳞片顺序,保证着色时间的先后。”
龙在大殿上空飞舞,要在大殿前的地面投下阴影,这样效果才会逼真。“如果没有影子,真的就变成鬼魅了。”为了这句话,刘宏春和队友们度过了几个不眠夜。此外,鳞片的反光、宝珠的光晕等等细节,都是一个个需要克服的难题。
而在准备参赛作品的同时,刘宏春他们还要和同学们一道,按照课程表正常上课。“那么,你们怎么安排学习和比赛?这两者会不会起冲突?”对于记者的这个问题,刘宏春这样回答:“有一些冲突,不过我们到最后的开发基本上都是在晚上进行的。学校领导非常支持我们,把计算机学院楼的几间屋子给我们,允许我们在里面通宵开发。”他告诉记者,在最辛苦的日子,他们每天忙到凌晨五六点钟,赶紧坐在沙发上打个盹,就赶去上课。好在大家的课业还不是特别紧。
正是有了前期的辛劳和汗水,有了无数次返工,才有了7月初圣保罗评委们的惊艳。
最后30小时考验
作品提交出去了,但刘宏春他们并没有因此松一口气。
“从5月1日提交作品后,心情就没放松过。”刘宏春负责软件架构,宁为负责美工,刘飞熊做逻辑编程,李晓毅负责美术设计和角色模型转换。在等待中,他们得到了代表中国参加全球决赛的资格。
7月1日,4名队员由微软公司安排从北京飞往巴黎,再从巴黎转机去巴西圣保罗,稍事休息。3日下午4点,在住宿的酒店开始连续30个小时的现场比赛。
评委要求决赛的5个代表队在30小时内做出一个屏保程序,要求很简单,在作品中必须有Imagine Cup2005的标志,还要一个LOGO,其他形式自定。选手都集中在一个房间,主办方提供最新型的硬件和软件设备,如GForce6800显卡。选手可以自行安排休息、吃饭时间。
已经努力了几个月,最后的30小时自然不能放松。中国队的4位队员下了决心一定要拼赢这最后的关卡。“30个小时里,几乎没离开电脑,我就迷糊睡了3个小时,我们一位队员只睡了1小时。4日晚上10点,宣布结束时,差点站不起来。”刘宏春对这30小时终身难忘,时差还没倒过来,就奋战30小时,没有坚强的毅力肯定趴下。在中国队旁边的哥伦比亚选手就没熬过这一关──当宣布比赛结束时,哥伦比亚选手没有完成现场作品。
现场比赛的结果,中国队获得了第一。
接下来的一天,是放松性的游玩活动,刘宏春和队友们却没有什么兴致,毕竟最后的结果还没公布,怎么也放不下心。终于,7月6日,主办方宣布此次全球竞赛,中国队获得冠军时,刘宏春他们才松了一口气。
程序员这样成长
“国内的3D程序设计、应用环境不太好,感觉郁闷。如果我们能作出一个好作品,也许可以带动更多的开发者改变这样的现状。”刘宏春的初衷是要借微软的创新比赛,证明自己的能力,也让新技术得到宣传推广。
刘宏春告诉记者,他的偶像是ID公司的3D天才程序员约翰·卡马克,“他是为数不多、仅有的几个被比尔·盖茨称为天才的程序员之一,在DOOM、QUAKE这些全球知名游戏里,都可以见到约翰·卡马克的成就,他是这些游戏的设计师。”
“参加微软的创新杯比赛,我们不仅锻炼创新意识、编程技巧,更重要的,我们知道合作、沟通有多重要。”刘宏春说,“未来也许我会和同学一起创业。”
刘宏春和队友回国后接到微软研究院的电话邀请,希望他们能参加研究院的暑期实习计划,但刘宏春还没有答复一定要去,他说学校里还有不少事要做。
学习、创新、再学习,一代优秀程序员就这样成长。

