又是一个周一的早晨,空气里都弥漫着一股名为“不想上班”的怨念。但在《星迹》的技术部,这种怨念被键盘的噼啪声和散热风扇的嗡鸣声稀释得无影无踪。
林宸的状态前所未有的好。
他把和苏星苒周末一起买来的那个仙人掌盆栽,小心翼翼地摆在了显示器旁。一抹小小的绿色,仿佛带着某种魔力,让他躁动的内心得以安宁,也让他眼前的代码世界,都多了一丝温柔的底色。
旁边的钱伟叼着个肉包子凑过来,含糊不清地问:“小林,行啊,还整上绿植了,这是要走文艺程序员路线?”
林宸的耳朵微微泛红,没搭话,只是伸手轻轻碰了一下仙人掌的软刺,嘴角压不住地向上扬。
钱伟是过来人,一看他这副样子就“嘿嘿”笑了起来,拍了拍他的肩膀,一切尽在不言中。自从上周被林宸点拨之后,钱伟对这个实习生的态度发生了一百八十度的大转弯,现在几乎是把他当成了能随时提供“技术支持”的宝贝疙瘩。
上午十点,部门主管李明领着一个女孩走了进来。
喧闹的办公室有了一瞬间的安静。
女孩很高挑,目测至少一米七,穿着一件剪裁得体的米色连衣裙,长发随意地披在肩上,脸上淡淡地化了个妆,皮肤白皙通透,五官清秀,尤其是一双眼睛,清亮得像一泓秋水,带着几分审视和好奇,打量着这个全新的环境。
她身上有一种与这里格格不入的松弛感,不像初入职场的实习生,倒像是来视察工作的。
“各位,手头上的活儿先停一停。”李明拍了拍手,脸上挂着他那标志性的、带点“不怀好意”的笑容,“给大家介绍一位新同事,也是咱们江大的高材生,陆清言。从今天起,她就是我们组的实习生了。”
他顿了顿,故意拉长了声音,环视一圈哀鸿遍野的程序员们:“咱们组现在可真是兵强马壮,不知道的还以为是技术部的精英特种部队呢,怎么新来的尖子生都往我这儿塞?”
办公室里响起一阵善意的哄笑。
陆清言落落大方地朝大家点了点头,声音清脆:“大家好,我叫陆清言,大三,学的也是程序开发。未来几个月请大家多多指教。”
她的目光在人群中扫过,最后,精准地落在了林宸的身上。
林宸正襟危坐,后背挺得像块钢板。他当然认得她,或者说,在江大计算机系,不认得陆清言的人很少。她不仅是系里公认的系花,更是各类奖学金的常客,听说家境优渥,是那种传说中“不好好学习就要回家继承家产”的类型。
只是他没想到,她会来这里实习。
李明笑眯眯地继续说道:“清言刚来,对咱们的项目和代码库都不熟悉。这样吧……”他的目光在组里转了一圈,最后也定格在了林宸身上。
“林宸。”
“在!”林宸下意识地应了一声,身体绷得更紧了。
“你来带带清言。”李明宣布道。
林宸“蹭”地一下差点从椅子上站起来,眼睛瞪得老大,满脸的难以置信。
带……带她?
一个大一的,带一个大三的学姐?这辈分是不是有点乱?
他求助似的看向李明,希望是自己听错了。
李明却对他挤了挤眼睛,一副“我看好你哦”的表情,然后对陆清言说:“清言啊,你可别小看林宸,他虽然才大一,但可是我们这儿的‘镇组之宝’。技术上的事,问他,准没错。”
办公室里又是一阵低低的笑声,钱伟更是首接对林宸竖起个大拇指,嘴型夸张地说了两个字:“牛啊!”
林宸只觉得头皮发麻,脸颊瞬间热得能煎鸡蛋。他一个农村出来的穷小子,靠着一股蛮劲儿走到今天,骨子里的自卑和拘谨还没完全褪去。让他去指导一个各方面看起来都比他“高级”太多的学姐,这比让他攻克一个世界级的技术难题还要让他紧张。
陆清言的反应却很平静,甚至可以说,是意料之中。她走到林宸的工位旁,那股淡淡的、好闻的洗发水香味飘过来,和苏星苒身上的皂角清香不同,这是一种更清冷、更具距离感的味道。
“林宸吧?”她主动开口,声音里带着一丝笑意,“久仰大名。在计算机系,你的名字可是如雷贯耳。”
她没有丝毫被“降级”安排的不快,反而姿态放得很平,首呼姓名,一句“久仰大名”,瞬间化解了林宸的尴尬。
“……学姐好。”林宸憋了半天,才从牙缝里挤出这三个字,耳朵红得快要滴血。
李明很满意这个开局,把陆清言的工位指到林宸旁边那个空位,然后就拍拍屁股走了,临走前还交代:“林宸,先带清言熟悉一下我们《星迹》客户端的底层架构,从渲染管线那块开始。”
这下轮到陆清言的眼神里闪过一丝惊讶了。渲染管线是整个游戏引擎里最复杂、最核心的部分之一,通常不会让一个第一天来的实习生接触。
“坐吧,学姐。”林宸深吸一口气,强迫自己进入工作状态。一谈到技术,他身上的局促感就像潮水一样迅速退去,取而代之的是一种不自觉的专注和自信。
他把自己的椅子往旁边挪了挪,腾出更大的空间,然后在键盘上敲击了几下,调出了项目的代码结构图。
“我们项目的图形API用的是自研的一套,兼容Vulkan和DirectX 12,这是整体的渲染流程图……”
他的声音不再结巴,变得沉稳而清晰。手指在屏幕上划过,从几何阶段、光栅化,再到像素处理,每一个节点,每一个模块的交互,他都讲得清清楚楚,甚至连其中几个关键算法的优缺点、以及当初做技术选型时的权衡都一并道出。
陆清言安静地听着,一开始还只是出于礼貌,但渐渐地,她的眼神变了。
她自己也是个中好手,自然能听出林宸的讲解有多深。他不是在照本宣科地背诵文档,而是将整个庞大复杂的系统完全内化成了自己的东西,信手拈来,游刃有余。他讲到的很多细节,甚至是一些为了性能做出的、堪称“取巧”的优化,都不是一个普通的实习生,甚至一个工作一两年的工程师能够洞悉的。
“这个部分的遮挡剔除,为什么没有用传统的八叉树或者门户(Portal)系统,而是用一套基于计算着色器(pute Shader)的集群剔除(Cluster Culling)?”陆清言指着其中一个模块,提出了一个非常专业的问题。
这个问题,足以问住组里一半以上的人。
林宸看了她一眼,眼神里流露出一丝赞许。
“因为我们的游戏场景,动态光源和可破坏物件特别多。传统方案在预计算和动态更新上开销太大,灵活性不够。”他一边说,一边调出一段核心代码,“用计算着色器,可以在GPU端并行处理,首接生成每帧的潜在可见集(PVS),效率更高。你看这段代码,就是核心逻辑,把视锥体和光源影响范围分割成无数个三维区块,然后……”
他进入了那个只有0和1的世界,滔滔不绝。他身上那件洗得有些发白的T恤,此刻仿佛镀上了一层光。那种全然投入的魅力,远比任何华服和家世背景,都更具冲击力。
陆清言没有再说话,只是静静地看着他。看着他专注的侧脸,看着光标在他漆黑的瞳孔里跳动,看着他的手指在键盘上翻飞,仿佛一个指挥千军万马的将军。
她忽然明白了李明那句“镇组之宝”的含义。
原来,这就是全国大学生计算机安全大赛冠军的模样。专注,纯粹,像一把淬了火的利刃,藏着令人心折的锋芒。
她原以为,父亲安排的这次实习会是一段无聊乏味的过渡期。
但此刻,她看着眼前这个和自己同岁、正认真为她讲解着代码世界的男孩,心里第一次,漾起了一丝名为“好奇”的涟漪。她忽然觉得,这次实习,或许会比她想象的,要有趣得多。