第146章 开发者大学
    沈连河接到通知的时候,正在画GTX 400的光追单元合并方案。许知意从三楼跑上来,站在他旁边喘气。

    “沈哥。孟哥说让你准备一下,下个月讲第一堂课。”

    沈连河抬头。“讲什么。”

    “光线追踪蒙特卡洛积分。教室租好了,在深海大学。能坐三百人。”

    沈连河沉默了几秒。“三百人。”

    “对。报名已经满了。还有人从外地来。”

    沈连河低头看笔记本。翻到光追蒙特卡洛积分那页。公式推导,光路图,采样策略。他看了十几秒,合上笔记本。

    “好。”

    许知意愣了一下。“你不紧张。”

    “紧张。但讲。”

    许知意跑下楼。沈连河坐在工位上,笔记本放在膝盖上。他翻开,盯着那页看了很久。顾林在旁边画时序图,没抬头。

    “沈连河。”

    “嗯。”

    “讲课时笔记本带上。”

    “带。”

    顾林没再说。

    开课那天,深海大学借了一间阶梯教室。能坐三百人,来了三百一十二个。过道里站了人,门口还站着几个。有人从隔壁城市坐火车来的,有人请了年假,有人刚下夜班直接过来的。沈连河站在讲台后面,笔记本翻开放在桌上。台下有人举着手机,有人拿着本子,有人打开了电脑。他的衬衫袖子卷到手肘,粉笔放在黑板槽里,断了两截。

    他清了清嗓子。

    “我叫沈连河。”

    台下有人笑。他的开场白每次都一样。

    “今天讲光线追踪蒙特卡洛积分。不讲理论推导。讲怎么实现。”

    他转身,在黑板上画了一条线。光路,从摄像机到光源。标了方向,标了能量。粉笔断了。他弯腰捡起来,继续画。

    “蒙特卡洛积分,就是用随机采样逼近真实值。光线追踪里,每条光路都是随机采样。采样越多,结果越准。但采样多,计算慢。怎么平衡。用重要性采样。”

    他在黑板右边画了一个公式。

    “重要性采样。把采样集中到贡献大的方向。镜面反射,采样集中在反射方向。漫反射,均匀采样。混合材质,按比例分配。”

    台下有人举手。沈连河指了一下。

    “老师,重要性采样的权重怎么算。”

    “用BRDF。材质的光泽度越高,反射方向的权重越大。代码里写死了也行,但效果差。最好动态计算。”

    提问的学生在本子上记。沈连河等他写完,继续画。

    “还有一个问题。噪点。采样少,噪点多。怎么降噪。用双边滤波。”

    他画了一个滤波器示意图。

    “双边滤波。考虑颜色差异和空间距离。颜色差大的地方不模糊,保持边缘。空间距离远的地方权重低。”

    又一个举手。“滤波会丢细节吗。”

    “会。所以用引导滤波。法线贴图做引导,边缘保留更好。”

    沈连河画完最后一个图,退后一步。粉笔灰落在袖子上,他没拍。

    “讲完了。还有问题吗。”

    台下安静了几秒。然后一只手举起来。沈连河指了一下。

    “老师,你笔记本上画的这些图,能分享吗。”

    沈连河拿起笔记本,翻了翻。六百三十二个Shader,光路图,公式推导。他想了三秒。

    “能。许知意会扫描。发橘猫官网上。”

    台下有人鼓掌。更多的人鼓掌。沈连河站在讲台后面,笔记本抱在怀里。他没笑,但嘴角动了一下。他看了看台下那些脸。有的年轻,有的已经不年轻了。有人戴眼镜,有人没戴。有人穿着橘猫的周边卫衣,有人穿着格子衬衫。有人手里拿着翻烂了的教材。他想起了很多年前自己在大学机房孤独写渲染器的那个下午。没人告诉他值不值钱。但现在他知道答案了。

    散课后,沈连河被围住了。有人问他GTX 400的光追单元,有人问他橘猫引擎的预取优化,有人问他的笔记本能不能签名。他一个一个答。一个学生挤到前面,手里拿着一个笔记本,边角贴着透明胶。跟沈连河那本一样。

    “沈老师。我也画Shader。画了一百多个。不知道对不对。”

    沈连河接过笔记本,翻了几页。光路图,手画的,线条有点抖。他看着那些图,看了十几秒。图上的箭头标得不太准,但方向是对的。数字写得很小,挤在一起。

    “继续画。画到六百个。”

    学生点头。眼眶红了。

    沈连河把笔记本还给他。转身走了。走到门口,停下来。回头看了一眼教室。三百多个人还在,有的在收拾东西,有的在讨论,有的在拍黑板上的图。黑板上还有他画的那些线,粉笔灰落了一地。他看了几秒,转身走出去。

    

本章未完,请点击下一页继续阅读>>