← 返回首页

鹰角首次公开《明日方舟:终末地》底层代码突破细节:自研ECS内核与原生C++渲染管线

橘猫新闻 综合报道

鹰角首次公开《明日方舟:终末地》底层代码突破细节:自研ECS内核与原生C++渲染管线

7月27日,鹰角网络在韩国首尔举办的Unite Seoul开发者大会上,首次系统公开了《明日方舟:终末地》在Unity引擎底层架构上的深度定制化改造细节。这场被标注为“进阶”(Advanced)的演讲,是议程中唯一来自中国游戏公司的项目分享,由鹰角技术中心负责人Will主讲,题为“重构《明日方舟:终末地》的渲染架构”。

据现场开发者反馈,演讲内容极为硬核,涉及自研ECS数据内核、CPU软件遮挡剔除、原生C++渲染管线等底层技术,会议现场座无虚席,演讲结束后多名开发者排队与Will交流。该演讲为“会场限定”,未安排线上直播或录像。

Will在演讲中首次公开了四项关键技术突破:其一,自研ECS数据内核,用于支撑每帧数万个可渲染对象的高吞吐处理;其二,重构剔除、排序与批处理链路,让多个视图共享同一组可见性数据,并将渲染状态编码进同一个128-bit排序键;其三,将关键运行时渲染管理改为自写的原生C++管线,配合CPU上手写Render Graph;其四,底层采用沿用Vulkan语义的设备抽象层,屏蔽平台图形API差异。

在遮挡剔除方面,鹰角团队采用CPU软件光栅化方案:从场景中选取几百个主要遮挡物,简化为遮挡片(通常为几个quad),在CPU上变换为屏幕空间三角形,分组绘制成低分辨率深度图,据此剔除被完全遮挡的对象。Will透露,该方案参考了英特尔公开论文,但针对终末地的复合高压场景——高精度角色(PC端8万至10万面,移动端4万至5万面)、大量动态对象、无缝箱庭及跨平台一致性——进行了深度定制。

Will介绍,早期尝试套用Unity原生方案时,游戏甚至难以稳定达到30帧;通过自研ECS、连续内存、多线程剔除、一次排序和原生C++管线,才实现60帧甚至更高帧率的高画质运行目标。他特别指出,一帧画面的完整预算为16.66毫秒,其中留给CPU端遮挡和剔除的时间仅零点几毫秒。

此外,团队在ECS框架上做出激进取舍:约70种component ID在编译期写死,使用固定128-bit mask描述组件组合,job直接使用原生C++和显式fence,磁盘文件与运行时chunk尽量采用相同布局,以实现加载时的一次memcpy直接搬入内存。Will强调,这套架构是专为终末地定制的,而非通用方案。

此次公开演讲标志着鹰角首次向行业展示其底层技术实力,也回应了此前在Apple公开讲座中“面向行业可分享更具体经验”的承诺。