Untoon Engine
Overview-and-Positioning
本页目录
概览与定位
分支定义
Untoon Engine 是一个面向卡通渲染与 NPR 工作流的 Unreal Engine 源码引擎分支。
- 基线分支:
release - 功能分支:
untoon - 基础版本:Unreal Engine 5.8
Untoon 能力做在引擎层,随源码一起编译和升级,不依赖项目层的后处理或 shader hack。
适用场景
适合这几类项目:
- 需要原生 Untoon 材质模型,而不是在项目层做后处理模拟
- 项目同时用多光源、延迟渲染、Lumen 和 Ray Tracing,风格化表现要跟得上这些路径
- 灯光、材质、阴影在卡通风格下需要统一的控制语义
- 有团队能长期维护源码引擎分支
不适用场景
这几类项目不要直接用这个分支:
- 只想做轻量后处理描边
- 不具备源码引擎维护能力
- 不计划长期跟进上游
release - 希望以普通插件方式完成全部 Untoon 能力
相对 release 的主要差异
相对于 release,untoon 的主要差异包括:
- 新增
MSM_Untoon - 扩展材质翻译和 Shader 生成
- 增加
GBufferToon - 保留 Untoon Base Pass 入口,并新增当前有效的 Untoon Light Pass、Untoon Shadow Mask、Untoon Outline
- 新增 Nanite 专用 Untoon ShadowMask / UntoonLight 后置导出路径
- 新增 Untoon 材质输出节点
- 为 Light Component 增加 Untoon 控制项
- 为 Scene / Post Process 增加 Untoon Diffuse 控制项
源码定制边界
untoon 通过两类方式组织源码差异:
- Untoon 自有目录:
Engine/Shaders/Private/Untoon与Engine/Source/Runtime/Renderer/Private/Untoon - 上游引擎集成文件:材质编译、Shader 生成、GBuffer、Deferred Renderer、Nanite、Light Component 等原有 UE 文件
Untoon 自有目录内不需要 Untoon Engine Start/End 包裹。其他 engine、renderer、shader、runtime 文件中的 Untoon 改动必须使用 marker 包裹,且 marker 不应嵌套。完整规则见 维护者规则。
推荐维护方式
把 untoon 当作内部引擎发行版来管,而不是项目里的普通依赖。分支策略和版本标签单独维护,每次同步 release 都记录升级日志并跑一遍回归验证。