Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

8 为什么要补全

📐 设计 —— 这一部没有实现,没有实测数据。写的是问题、接口和验收标准。

问题

拆分出来的部件是被遮挡过的Skin_Torso 被手臂和裙子挡住,它的 mask 是「露出来的那部分」,不是躯干的完整形状。Hair_BackHair_Front 和脸挡住。

在叠层时这会露出来:

  • 图层顺序改不动。 画师想把手臂移开一点,底下的躯干是空的。
  • 接缝依赖遮挡关系。 现在靠 expand=0.6 让上层压住下层,如果下层根本没画到那里,扩张也没用。
  • 局部重绘没有底。 后续 AI 要重画手臂,它挪动之后露出的躯干区域没有内容。

一张真正可编辑的分层原画,每一层在被遮挡的地方也该是画完整的——这正是画师的做法:先把躯干整个画完,再在上面画手臂。

补什么、不补什么

:部件被其他部件遮挡的区域,在遮挡边界向内一个合理深度(建议 ≤ 部件等效半径的 40%)。

不补

  • 部件被画框裁掉的部分(画布外没有真值,也不需要)
  • 背景(它已经是铺满整幅的,见第 12 章
  • 遮挡太深的区域(躯干被裙子挡住的下半身——补出来的东西没有任何约束,是编造)

在流程里的位置

拆分 (4–7)  →  补全 (8–11)  →  叠层 (12–16)
                 │
                 └─ 输入: 每个部件的 mask / α / 色阶 / 周边上下文
                    输出: 补完整的部件 RGBA, 以及重新解出的 α 边界

补全的输出要重新走一遍第 5 章第 7 章——新的边界要解 α、要矢量化。所以补全模块的产出格式和拆分的中间产物一致,下游不需要知道有没有补过。

这一部的状态

本书完成时 ./paint trace 直接从拆分跳到叠层,跳过补全。所有实测数字都是在没有补全的前提下量的。补全实现之后,第 15 章的判据不应变差;如果变差了,是补全引入的。