Lumen逆向项目源码已经开源到Gitee仓库了!
不同于Nanite的课程的讲解,Lumen的内容似乎真的可以实现从零手搓,从一个三角形到无限个三角形,从每一帧可以处理完毕所有的光照更新请求,到把光照更新的算力分配到时间线上
众所周知,现代公司的形式已经有了400多年的历史,办公室办公的文化也是近代才开始的,过去人们都在户外打工,我们是最初的那一代开始长期蹲在办公室里打工的一批人,这样就开始出现了很多过去不存在的一些疾病:
-
• 糖尿病 -
• 高尿酸血症 -
• 肥胖 -
• 颈椎病
我们要重视创新,因为只有新的事物能让新一代人类能够实现咸鱼翻身,因为过去的路已经被既得利益者所占据。
Lumen
还是先来讲讲Lumen的进度吧,Lumen已经正式的开始更新文字资料了,这部分内容是我们为视频教程准备的最后的一遍思路的梳理,总结的部分比较多。对于Lumen而言,其实就是三块,之前我们觉得Lumen是不是有点复杂,可能没办法拿出来做成单独的课程,但是人的想法总是伴随着对事物认知的加深而改变。
很明显,我们对Lumen的看法变了,大道至简,搞清楚了Lumen的来龙去脉之后,我们把Lumen划分成了三个大的模块,如果我们剔除掉与Lumen不相关的逻辑,单就这三个模块而言,是可以做成单独的从零手搓Lumen课程的。
然而,如果要构建一个还看起来不错的画面,且做到对这三个方面完全掌握的话,还是需要非常厂的篇幅对其进行讲解的。
不同于Nanite的课程的讲解,Lumen的内容似乎真的可以实现从零手搓,从一个三角形到无限个三角形,从每一帧可以处理完毕所有的光照更新请求,到把光照更新的算力分配到时间线上。
在Nanite的课程中,我们依赖了虚幻的虚拟几何体的MeshBuild系统,不过这并不妨碍我们做项目,因为虚幻是开源的。采用虚幻的虚拟几何体的MeshBuild系统有这样的好处:
-
• 可以复用虚幻整套生态 -
• 无需自己去试错,美术不需要重新适应你自定义的Nanite生态,他们可以直接使用虚幻和学习虚幻的Nanite -
• 生态更大,出现问题会有更多解决方案作为参考,不容易形成一个闭塞的孤岛
使用Nanite的MeshBuild系统的缺点:
-
• 跟虚幻引擎耦合在一起 -
• 如果完全不想看到虚幻,需要从虚幻中抽离出NaniteMeshBuild代码 -
• 不了解NaniteMeshBuild部分的原理
目光回到Lumen,Lumen这边没有特别宏大的MeshBuild,所以我们的输入只需要一个Cube,可以真做到脱离虚幻存在,Nanite想做到脱离虚幻编辑器的话,还是需要引入虚幻里的libmetis.lib,而Lumen这边的情况则是完全不需要理会虚幻的源码。
当下,我们已经完成了Lumen的肢解,跟Nanite一样,核心逻辑其实代码很少,大部分代码都是为了加速运算过程做的一些工程上的操作,这为我们理解Lumen其实带来了不小的麻烦,因为你不知道代码里面的哪些是真正的Lumen,哪一些仅仅是为了加速数据处理而引入的pass。

我们在进行Lumen课程制作的时候会把非Lumen核心算法相关的部分剔除掉,也就是不引入加速部分的代码,如此一来就如同Nanite的渲染逻辑一样,只出现核心逻辑构成,你能够更加轻松的掌握这个技术,加速结构是因硬件而变化的。
昨天我们没有上传Lumen的代码,想想还是算了,先上传再说吧,不过不配资源,因为资源太大了,我们把课程制作完毕后,资源才能得到梳理,这就如同我们的Nanite课程那样,我们Nanite课程其实最开始的源码不是我们上传的那个版本,更乱,乱的程度可以参考我们今天给同学们上传的Lumen逆向项目。

参考资料
-
• 《 游戏引擎开发实践》2025资料片「Lumen课程制作中」
后记
-
• 图形学技术冥想群:460926233 -
• 官方微信号:battlefireedu -
• 官方网站:https://edu.battlefire.cn -
• B站账号:东汉书院官方频道
夜雨聆风
