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

3 量对对象的三条铁律

✅ 已验证——每一条都是栽过之后写下来的

Krita 的 API 大量不校验参数、不报错、静默失效,所以这本书里的每一个结论都要靠测量。但测量本身会骗人,而且骗得比 API 更狠:它不报错,只给出一个看起来合理但方向相反的结论。 这个项目在五版里至少栽了 28 次,全部记在第 34 章。这里先立三条铁律。

一、量单层还是量合成,先想清楚

Krita 的 clip(inherit alpha)机理是合成时只写 RGB 不写 A。所以:

  • 读一个 clip 层的 pixelData,alpha=0 的地方 RGB 照样被写过——只看 RGB 会得出「没裁剪」
  • 读一张累积合成图,几十层的边界叠在一起——某一层脏不脏根本看不出来
  • 塑造画在 Shade 层上,量 Flat 层永远是「颜色数=1」

规矩:量图层效果一律用 s.projection(group);判 clip 必须同时看 alpha;判某一层的边缘质量就只量那一层。

二、跨分辨率比是无效比较

梯度 p99 是逐像素的差分,随分辨率变。同一张 8K 成品:

量的时候归一到梯度 p99
8192px 宽33.2
2508px 宽42.2
1024px 宽56.2

拿 8192 的读数(33.2)去比参考画在它原生 2508px 上的读数(59.4–74.6),结论是「差一倍」;归一到 2508 再比是 42.2,差距只有一半,方向和量级都变了

规矩:画面指标一律先归一到同一物理宽度再量gauge.py 默认归到 2508(参考画的原生宽度)。

三、门槛以源图为锚,不以参考画为锚

参考画(两张人类画的 2508px 插画)说明「人画的长什么样」。但它是另一张画:它有成套的深色线稿,而 origin 是色トレス风格,本来就没有独立线稿。同样归一到 2508px:

梯度 p99
参考画59.4–74.6
origin 自己41.6

要求临摹品比自己的源头还锐,是一道永远达不到的门。规矩:门槛写成「源图的百分比」(现在是 85%),参考画的区间只作参照打印,不当门槛。

附:三条铁律之外的两个提醒

探针的几何要匹配实际用法。 在长平滑曲线上量出 path()stroke() 干净 23–47%,据此改线稿;换到实际的短线段上结论完全反过来(stroke() K90 0.032 最好,path() 0.0437 最差)。点少时 paintPath 的 quadTo 平滑会改变形状。

一次只改一件,每件有独立判据。 为修一圈锯齿黑描边一次上了三件事(抽线稿 + 去抗锯齿 + 平滑 SDF),结果比它们要修的问题糟 9 倍(PSNR 38.53 → 24.99),而且花了六轮才分清是哪一件在坏事。