[MPEG-OTSPEC] Some research on TT instructions and cubics
Skef Iterum
skef at skef.org
Fri Sep 22 14:01:21 CEST 2023
In the August meeting in Portland (and in some exchanges before that)
some questions were raised about the feasibility of hinting cubic
splines in glyf with the existing TT instruction set. One response was
that this was not likely to be a problem as it is relatively rare in
practice to move quadratic control points (as opposed to on-curve
points). The idea being that the fact that a cubic has two control
points rather than one shouldn't be an issue.
Some folks on our team at Adobe decided to look into this a bit more,
although not at great depth. From what we can tell, when the convention
of only moving on-curve points works, that is typically because of a
subsequent call to of the IUP instruction in one or both dimensions.
That instruction is described this way
<https://developer.apple.com/fonts/TrueType-Reference-Manual/RM05/Chap5.html#IUP>:
Interpolates untouched points in the zone referenced by zp2 to
preserve the original relationship of the untouched points to the
other points in that zone.
Unfortunately the documentation goes on to say:
Considers the reference glyph outline contour by contour, moving any
untouched points that fall sequentially between a pair of touched
points.
If neither cubic control point is hinted, neither will fall sequentially
between a pair of touched points, and therefore cubic control points
will typically not move in relation to how their adjacent on-curve
points move.
It may be possible to update the instruction to also operate on pairs of
untouched points sequentially between touched points, or to add a new
instruction that does so, but only if there are not other cases arising
from quadratics with the same pattern. More importantly, the heuristics
for the quadratic case -- how the instruction moves the control point in
relation to its adjacent quadratic on-curve points -- don't obviously
apply to the cubic case. This is not just because there is "another
point". How one cubic control point should move in a given case can
greatly depend on the position of the other control point. In general
the "behavior" of cubics is more complex than that of quadratics --
they're stranger creatures.
Anyway, if all this is accurate then hinting is likely to be a problem
if cubics are added to glyf and TT hinting is still considered to be
supported in glyphs that contain them, unless new instructions are also
added.
Skef
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.aau.at/pipermail/mpeg-otspec/attachments/20230922/5abdd639/attachment.html>
More information about the mpeg-otspec
mailing list