第67节:面包记(1)
作者:童欣
几天前,和几个同事一起去收拾实验室,在一个箱子的角落里,同事发现了一片切片面包。
“你们可真过分,这都是什么年月的面包啊,怎么还留着”同事嘟囔着,准备把面包拎出来扔了。
“别,这可是我们专门订做的假面包,公司财产!”我冲他嚷了一句。
“嘿,还真是,你们做这个干什么啊?”同事拿着那片面包,把玩了起来。
“当年做SIGGRAPH项目用的。”
“SIGGRAPH?别骗我,面包跟SIGGRAPH有什么关系?”
是啊,SIGGRAPH和这片面包有什么关系呢?事情要从2004年的秋天说起。
(这块面包模型看上去像极了真实的面包)
最美的面包
2004年秋天,我和王嘉平、Steve Lin一起开始做一个SIGGRAPH项目,希望可以创建一个新的纹理模型,从而可以让计算机绘制真实的面包、海绵、蛋糕等等这类有很多孔洞,表面凸凹不平的物体。虽然这类物体在真实世界随处可见,但是如何在计算机屏幕上把他们真实的展现出来,在当时还是一个未解决的问题。
按照我们的思路,首先我们要做的就是捕捉真实世界里这类物体的外观,再对这些数据进行分析处理,然后得到我们提出的新纹理模型。项目开始的时候,已经是十月份了,离Deadline还有三个月,时间不多,我们几个马上开始了紧张的工作。
一天傍晚,我和嘉平先去了附近的蓟门超市,对货架上的切片面包进行了认真的筛选。经过预选赛,复赛和决赛PK,在综合周围大妈评委的意见后,我们的选美比赛产生了最后的冠亚军:两袋切口平整的切片面包。回来我们就迫不及待的开始了数据捕捉过程。很快 ,我们就发现了问题。一是买来的面包上面孔洞或者太大,或者太小,捕捉下来的图像没有合适的细节,不能满足我们的要求。二是捕捉的过程非常漫长,需要整整一夜,一片面包在这漫长的过程中干裂变形了。于是,这批剩下来的切片面包全都做了组里学生的夜宵。 后面的几天里,我们又选了四五包不同的切片面包,有无糖的、玉米粉的、黄油的,希望可以解决这两个问题,但是还是没有满意的结果。不过学生们的夜宵倒是供应充足,甚至连早饭都有了。大家来了兴致,一见面就纷纷要求我们尽早开始捕捉蛋糕、还有西瓜的数据 。因为按照我们现在这样的样品淘汰率,整个研究院的主食和水果就全解决了。
这个,基本上,很难
玩笑归玩笑,嘉平和我一边继续编程,改进设备,一边开始继续寻找合适的面包。讨论之后,我们决定改变策略,试试大个的面包 。这样面包厚了,也许不容易干裂变形。但是哪里去找还没切片的大个面包呢?
一天“线人”报告,家乐福超市里有个大面包房,可以现场制作很多种面包。我迫不及待地直奔那里,找到他们面包房的售货小姐 ,问她可不可以定制面包。小姐直接把他们的主厨师傅请出来,热心地问我要做什么面包。我愣愣地问他有没有方的,不容易变形的, 孔洞不大不小且均匀的面包(不,不是砖头)。师傅看了我半天,确认我精神基本正常后,笑着告诉我说:“这个,基本上,很难。” 然后开始给我论述面包孔洞与面包尺寸,糖盐比例,黄油比例,发酵时间的复杂函数关系。虽然听完有些失望,不过我还是不死心,我决定发挥MSRA的专长。终于在我滔滔不觉的KPMP 半个小时之后,师傅被拍晕了,决定亲自下厨,挑战自我,制作两只20厘米见方,坚固 ,孔洞均匀的非食用面包。
第二天,我们怀着激动的心情,将两只专用面包迎回了希格玛,连夜开始数据的捕捉。一切又有希望了。不幸的是,当我隔天早上来到实验室,熬了一夜的嘉平告诉我,试验失败了。大面包经过一夜,还是变形了。我们需要寻找新的方案。
从小津到陶然亭
离SIGGRAPH的Deadline越来越近了,其他的项目都在飞速进展中,有的甚至有了漂亮的Demo。而我们的项目好像还是在原地踏步。 虽然模型已经得到了初步的验证,但是真实材质的捕捉人仍然进展缓慢,卡在了面包数据的捕捉上。不变形的面包在哪里呢?这个问题让我们头痛。倍感压力。因为这是超出我们专业知识的领域,大家真的感觉是无从下手。
一天凌晨,我从希格玛回到家里。精神仍在亢奋中。虽然很累,但是仍然睡不着觉。于是将一张DVD扔进了碟机。我会在精神压力很大的时候用这个办法帮助自己放松入睡。碟是文德斯的记录片《寻找小津》。迷迷糊糊中,镜头从小津的墓地一转,来到了一个工厂。 工厂里,一些工人正在为各个餐馆制作仿真的寿司,蔬菜,水果,每样都是栩栩如生。看着看着,我忽的一下清醒了。是啊,我们为什么不做一片这样的仿真面包呢?
我不禁有些“柳暗花明”的狂喜。回到希格玛,忙了一个上午之后,我终于辗转找到了北京一家制作这些仿真食品的公司。第二天 ,当我走进这家隐藏在陶然亭一个胡同里只有一间房的公司时,看见他们的柜台里,赫然放着假的面包片。而里面的货架上,堆满了全聚德的盒子和一堆烤鸭。烤鸭全是仿真的,每只只有三厘米大。和师傅顺利地接上头,谈完做面包“项目”,我马上坐上出租车往回赶 。那天的天格外的好,一路上,北京冬天的阳光暖暖的照在身上,让我真有些幸福的感觉。
两个星期后,我们得到了一片仿真面包。有了备用的数据,试验暂时可以继续进行了,大家松了一口气。但是讨论了一下,大家感觉仿真面包的数据毕竟不是来自真实的面包,说服力不强,而且看上去还是有差别。要做一篇合格的SIGGRAPH论文,就要摒除所有可能的漏洞,并让结果尽可能的完美。没有选择,我们必须捕捉一份来自真实面包的数据。时间紧迫,已是十二月底,大家再次感受到 Deadline的压力。项目再次晴转多云。
第68节:面包记(2)
面包会有的,一切都会有的
我和嘉平再次讨论了以前试验的经验和教训,决定仍然选用切片面包。过去的一个月里,我们也没闲着,继续在各个超市搜索,已经找到了一家切片面包,孔洞尺寸都比较适合,也很均匀。现在的关键是如何防止变形。嘉平开始设计了保湿的方案。在面包下垫上了毛巾。毛巾的另一端浸在水里。通过虹吸来保持水分。可惜,我们很快发现面包本身的虹吸不够。面包的上表面还是干了,经过一夜, 还是会变形。看来我们没有别的选择,只有反其道行之,尝试事先减少切片面包的水分并尽量保持切片形状了。我们试了几种办法,让面包失水,但是效果都不太好。
一天晚上,我忽然想起一个朋友曾经告诉我她用微波炉制作干花,决定用微波炉试试。第一次试验以后,发现效果不错,于是再接再厉。终于,在一袋切片面包壮烈牺牲之后,在一个晚上我找到了最好的生产工艺:将面包放于平板上(面包加热会变软),两边衬上餐巾纸。放入微波炉,中火每次一分钟。取出换餐巾纸,保证水分能尽快吸掉。重复四到五次后,就可以得到干的但是不变形的面包片 。
于是,连续几个晚上,大家都能看到我小心的手捧编了号的面包片,在厨房的微波炉旁忙着“烹饪”。为了防止加工或候选的面包片被人吃了,我在厨房里一直盯着,直到过程完成,把面包片送到实验室里才离开。这样还不放心,我在每片的旁边写上:“试验样品 ,请勿食用”,防止拍摄数据的人饿了吃了他们。不过,大概是因为我们之前的废品早已经让大家吃腻了,结果根本没人碰这些面包一下!大家开玩笑说,看来我们的面包片和微软的软件一样,要到3.0版才能成功。
转眼几周过去,我们赶在Deadline之前完成了所有的工作,提交了论文。值得庆贺的是,我们的一切努力得到了最好的回报,我们的论文成功的入选了2005年的SIGGRAPH。
干面包还是鲜面包,这是个问题。
那年八月,我和Steve Lin在SIGGRAPH上宣读了我们的这篇论文。论文宣读完后,大家对我们的工作都很感兴趣,几个人提了一些技术问题。最后,这个Session的Chair走到麦克风前,问道:“你们的工作很出色,但是我看到你们的渲染结果,那个面包看上去有些干 ,看着像是干的面包,你能解释一下为什么吗?是绘制或者建模的问题吗?”我听了,一边心里乐,一边佩服他的眼力。我走到台前, 回答说:“你说的太对了,实际上,由于我们的数据捕捉需要十几个小时,所以,我们捕捉到的真的是一个干面包的数据”。场上的听众被我们的这一问一答逗乐了,大家不禁大笑,接着热烈鼓掌,感谢我们精彩的论文宣读。
(通过算法,计算机自动绘制出来的面包)
写在最后的几句话
上面的一个小故事,是我在SIGGRAPH 2005的一点经历。这点经历,也许能够让大家看到在我们每篇论文背后,我们所付出的不为人知的认真与努力。就在这样一次次SIGGRAPH的努力中,在学习、挫折与汗水中,我也在慢慢的成长。不知不觉中,我在微软研究院已经工作了快十个年头。回想起这十年,我觉得我是幸运的,因为在这里我圆了我做计算机图形研究的一个梦想。而且,我有幸结识了许多优秀的人、有趣的人,并和很多人成了好朋友。和他们一起并肩工作的日子,已成为了我过去最美好的回忆。而我们将来一起奋斗的日子,是令我期盼与兴奋的人生体验。
作者介绍:
童欣博士是微软亚洲研究院网络图形组研究项目负责人,研究兴趣主要为图形学算法,系统,表观造型等。他1999年从清华大学博士毕业,同年加入微软亚洲研究院。曾经是伪小资真愤青,现在为准中年宅男。