2014 年 2 月 20 日事件时间
造物立场:争议深研影响量级 4/5

轮廓线渲染的深水区:从经典描边到程序化风格笔触

轮廓线的语义分层、三种描边路线的工程取舍、以及 Arc System Works 的专利级描边系统深度解析

史话编委会 · 技术组18 分钟1.8k 阅读
阅读提示 · 争议存在实质性分歧,本文并陈各方。本词条会并陈主要分歧,并在「溯源」中给出各方依据; 如你掌握与本文相左的一手材料,欢迎在议事厅提出。
轮廓线渲染的深水区:从经典描边到程序化风格笔触 - 游戏史话 · 引擎与工作流

轮廓线渲染的深水区:从经典描边到程序化风格笔触

描边是赛璐璐的第一道身份标记

在赛璐璐渲染的所有视觉特征中,轮廓线是最具辨识度的一个。去掉色阶离散化,画面仍然可以被识别为扁平风格;但去掉轮廓线,赛璐璐就失去了与手绘动画之间最直观的视觉纽带。然而,轮廓线同时也是赛璐璐渲染中技术难度最高、方案分歧最大的子系统。本文从语义分层开始,逐步深入到三种主流描边路线的工程取舍,最后以 Arc System Works 的极限描边系统作为深度案例,勾勒出轮廓线渲染的完整技术地图。

定位说明: 本文假设读者已了解背面膨胀描边与屏幕空间边缘检测的基本原理(参见本轴《Toon Shader 的七条路径》),在此基础上讨论更深层的工程问题。

轮廓线不是一条线,而是三种线

把轮廓线当作一个整体来处理,是初学者最常见的认知偏差。在工程实践中,轮廓线至少可以拆分为三个语义层,每一层需要不同的检测策略与渲染参数:

类型 定义 检测方式 视觉权重
外轮廓(Silhouette Edge) 物体与背景的分界线 深度/法线不连续检测 最高,描边最粗
折痕线(Crease Edge) 模型表面曲率突变处 相邻面法线夹角阈值 中等,细于外轮廓
交叉线(Intersection Edge) 两个物体穿插处 深度缓冲局部比较 最低,仅用于结构提示

这三种线的语义分离不是美学选择,而是工程需要。外轮廓需要最大的描边宽度以匹配动画原画的视觉习惯;折痕线如果和外轮廓一样粗,角色面部细节会被淹没;交叉线如果太显眼,会破坏场景的扁平感。成熟的赛璐璐管线都在不同描边 Pass 中为这三类线设置了独立的宽度、颜色与透明度参数。

三条描边路线的工程取舍

几何体描边:古老但可靠

背面膨胀法(Inverted Hull)是最经典的方案:复制一份网格,沿顶点法线外推,渲染为纯黑,再叠上正常渲染的正面。它的最大优势是不依赖任何后处理管线,在所有平台、所有渲染管线上行为一致。缺点同样明显:描边宽度随几何体曲率变化,细长结构(手指、发梢)可能完全得不到描边;而对于硬边模型,法线分裂会导致描边断裂。

弥补方案包括:在建模阶段为角色额外制作一套"描边用网格"(顶点法线经过手工调整);或使用顶点色的 R 通道存储每个顶点的描边宽度倍率,让美术逐顶点控制描边粗细。

屏幕空间描边:灵活但昂贵

基于深度缓冲和法线缓冲的边缘检测(Sobel、Roberts Cross、Laplacian 算子)在屏幕空间完成描边,不依赖几何体。优势是描边宽度恒定,能检测出内部折痕和材质边界,且与模型复杂度无关。代价是每帧需要对全屏做卷积运算,在移动端开销显著;描边质量依赖屏幕分辨率;且无法区分"需要描边"的边缘与"不应该描边"的纹理细节。

现代优化手段包括:Custom Stencil 标记需要描边的对象,边缘检测只在这些区域进行;使用低分辨率渲染目标做检测再上采样;以及结合深度阈值过滤掉远景的微小平面上不需要的描边。

混合路线:各取所长

当前工业级赛璐璐项目普遍采用混合路线:主体角色的外轮廓用几何体描边(保证在任何距离、任何分辨率下轮廓完整),折痕与内部细节用屏幕空间描边(保证细腻度),交叉线通过深度缓冲局部比较来补充。三条线在各自的 Pass 中渲染,最后合成。

极限案例:Arc System Works 的描边系统

2014 年 2 月 20 日发售的《罪恶装备 Xrd -Sign-》是 3D 赛璐璐历史上的分水岭。Arc System Works 的描边系统之所以值得单独写一章,是因为它突破了"描边只是轮廓检测"的认知天花板,把描边变成了一套完整的艺术表达工具。

Arc 描边系统的核心特征包括:多层描边——每个角色同时拥有外轮廓线(最粗)、内部结构线(中等)、细节线(最细),三层宽度独立控制,形成类似漫画原稿的线条层次;颜色感知描边宽度——描边在浅色区域自动加粗、在深色区域自动变细,模拟手绘时墨线在不同底色上的视觉重量差异;以及逐帧描边烘焙——动画师在 Maya 中逐关键帧调整描边厚度,而非依赖运行时算法,这是 Arc 系统与实时描边方案之间最根本的哲学差异。

技术溯源: Arc System Works 在 GDC 2015 的演讲《The Technical Art of Guilty Gear Xrd》中详细公开了这套描边系统,包括法线编辑工具、描边宽度烘焙流程以及 24fps 锁帧渲染策略,是赛璐璐渲染领域被引用最多的技术分享之一。

程序化笔触:算法能模拟手绘吗

轮廓线渲染的终极命题是:能否用算法生成看起来像手绘的描边线条。当前的技术探索集中在三个方向:噪声扰动——对描边顶点的屏幕空间坐标施加时间相关的噪声偏移,模拟手绘线条的自然抖动;笔触纹理映射——将真实墨线扫描纹理沿描边方向投射,让描边呈现墨迹浸润的不规则边缘;以及宽度调制——根据描边方向、曲率、与光源的相对角度,动态调整描边宽度,模拟手绘时运笔的力度变化。

这些技术在独立项目中已有成功应用。但需要诚实地指出:它们目前仍无法替代 Arc System Works 那种逐帧手工调整的精度。程序化笔触的价值在于让 3-5 人团队也能做出"有手绘感"的描边,而非复刻 AAA 级的手工品质。

至今未决的描边路线之争

算法生成的程序化笔触是否能真正还原手绘质感,还是技术对艺术的过度诠释?

支持算法路线的一方认为,程序化笔触的价值不在于"完美还原",而在于让手绘质感从少数顶级工作室的专属能力变成独立团队可用的工具。在中小预算项目中,噪声扰动加笔触纹理的组合已经能产生足够有说服力的效果。

反对的一方则指出,手绘描边的精髓在于每一笔都是艺术家对形体结构的理解,而非数学噪声。算法生成的抖动在宏观上看起来像手绘,但在微观上缺乏"为什么要这么画"的结构逻辑,这恰恰是观众能感知到差异的地方。

本词条的判断:两条路线服务于不同的制作规模。程序化笔触为独立游戏提供了可行的起点,而手工烘焙描边是追求极限品质时的最终手段。两者不是替代关系,而是预算光谱的两端。

移动端赛璐璐是否已进入伪赛璐璐区间——仅保留风格外壳而牺牲核心技术特征?

移动端赛璐璐的妥协方案(单 Pass 简化描边、降低描边层数、放弃屏幕空间边缘检测)在实践中确实会导致描边质量下降。但"伪赛璐璐"的批评忽略了一个事实:玩家在 6 英寸屏幕上对描边精度的感知阈值远低于 27 英寸显示器。在移动端,描边一致性和帧率稳定性比描边精度更重要。

从本文能带走的四件事

三层分离: 外轮廓、折痕线、交叉线分开处理。不用为每一层写独立的 Shader,用同一个描边 Shader 的三个参数变体即可。这是用最小工程成本换取最大视觉提升的方法。
顶点色存储描边倍率: 在角色模型的顶点色 R 通道中存储每个顶点的描边宽度倍率(1.0 为默认,手指等细部设为 1.5-2.0),在 Shader 中乘到描边偏移量上。这是无需烘焙工具的最轻量描边控制方案。
描边颜色不要用纯黑: 纯黑描边在浅色背景下过于刺眼。参考动画原画的实践,描边颜色应取画面中最暗颜色的 80% 亮度,或使用深棕色(#1a1520 附近)替代纯黑。
移动端红线: 屏幕空间描边在移动端是性能杀手。低端机型用单 Pass 背面膨胀描边,中端机型加一级 Stencil 标记的边缘检测,高端机型才上全屏后处理。按机型分档降级,否则描边会把帧率预算吃光。

本词条的下一步

  • 各引擎(Unity、UE5、Godot)中描边系统的具体实现对比
  • 移动端赛璐璐描边的三级降级预案详细拆解
  • Blender Freestyle 描边到游戏引擎的资产导出工作流
  • 欢迎在议事厅分享你的描边方案与踩坑经验
词条标签
轮廓线描边Silhouette Edge程序化笔触Arc System Works屏幕空间边缘检测背面膨胀描边罪恶装备Xrd
溯源 · 主要依据
  1. GDC 2015: The Technical Art of Guilty Gear Xrd - Arc System Works — 多层描边系统与逐帧描边烘焙的一手技术分享
  2. Real-Time Rendering (4th Edition), Chapter 15: Non-Photorealistic Rendering — 各类描边算法的学术基础与性能对比
  3. Unity URP Renderer Features 与 Custom Pass 官方文档 — 现代引擎中描边系统的工程实现参考
星链 · 跨轴相关词条

议事厅ROUNDTABLE

4 个议题36 条回复22 位参与者最近活跃 2026/08/24

本词条尚无置顶观点。史话的议事规则很简单:反驳需要给出可核验的依据,补充需要标明出处, 立场分歧本身会被保留下来写进词条,而不是被删掉。

← 返回主题轴:引擎与工作流