フォントをデザインするときになぜ極値を追加するのですか?


9

フォントのグリフをデザインするときに、パスの水平および垂直の極値にアンカーポイントを追加することは明らかに重要です。ほとんどのフォントエディターにはこれらを追加する機能があり、それらを省略するとエラーが発生します。

ただし、次のようにパスを描くほうが簡単で自然な場合があります。

ここに画像の説明を入力してください

ほとんどの極値では、さまざまな角度と点がないことに注目してください。

以下はより良いパスですが、最初の画像のようなものから始めている場合、これに到達することはプロセスの追加のステップを意味します(元の画像に戻る必要がある場合があります):

ここに画像の説明を入力してください

では、なぜ極値ポイントを追加する必要があるのでしょうか。そうしない場合、どのような実用的な問題に直面するのでしょうか。

回答:


7

すでに述べたように、極値はフォントのレンダリング、特にヒントに必要です。

これを理解するために、最初に通常のピクセルグリッドでアンカー(緑)として極値を使用してグリフを自動ヒンティングするときにおおまかに何が起こるかを見てみましょう。任意に配置されたglyph²は通常この基準を満たさないため、レンダラーは垂直方向と水平方向のストロークを定義するため、極値を移動することによって、その端までわずかに変形します。

ヒンティングプロセスの重要な部分の図

このプロセスでは、レンダラーによる当て推量が必要です。そのため、デザイナーは、このプロセスでレンダラーを支援する一連のもの(マークされたステム、青い値)を定義できます。これは最初のステップの1つにすぎず、その後も多くのことが行われていることに注意してください。この質問については気にする必要はありません。

ここで、最初に、極値を使用してグリフを定義しただけでなく、その間にある斜めのアンカーも使用したと仮定します。次に、極値を移動するときにこれらのアンカーを徐々に移動する必要がありますが、これも当て推量が必要ですが、極値を移動する場合とは異なり、フォントデザイナーは状況の複雑さのためにこれを支援することができません。したがって、特にアンカーが極値に近い場合、この余剰アンカーを移動するとかなりのエラーの原因になります。

最後に、質問に戻り、極値でアンカーを定義しないとどうなるかを検討します。この場合、レンダラーは、極値(他のすべてのアンカーも一緒に)を移動する前に、極値(簡単に決定できる)を自動的に決定する必要があります。アンカーとして自然に選択するものは多くの種類の書体の極値に近いため、上記の理由により推測がうまくいかない可能性があります。

上記をいくらか要約すると:とにかくレンダリングする場合、極値は重要な役割を果たします。したがって、レンダラーが推測する必要がないように、グリフがそれらに基づいて構築されているとよいでしょう。

引用

特許US 7068276 B2から–フォントのヒントを与える方法とシステム

以下で説明するアルゴリズムのアプローチは、輪郭の方向や極値の存在などの機能を使用して、カーブ上の明示的なノットを一致させようとします。

ヒントに関するFontForgeのWikiから:

輪郭は正しい方向を持っている必要があります。そうしないと、ブルーゾーンへのスナップが損なわれます。(正確な)形状を形成するポイントが少ないほど良いです。しかし、H / Vステムでほのめかされたカーブは、極値でポイントを持つ必要があります。そうしないと、スナップされません。そのような点が「暗示的」である場合、その不法行為。


subサブピクセルヒンティングの場合もそれほど変わりません。
これは、ヒンティングを使用したグリフの配置がより複雑であるため、大幅に簡略化されたものです。この例ではそれで十分です


3

ベジェ曲線を操作するときに「極値内の点」が好ましい方法である3つの理由を次に示します。実際、特にレタリングに取り組んでいるとき、私はそれが不可欠であると説明されているのを見ました:

  1. (大幅に)自動ヒンティングとPostScript解釈が向上します。実際、ポイントを極値に設定することは、手動ヒントを設定するときの最初のステップの1つです。
  2. 後で形状を編集する方がはるかに簡単です。極値のポイントを使用すると、後でカーブを編集するのがはるかに簡単になります。極値でポイントを移動すると、最小限の追加の労力で曲線をきれいに保つ傾向があります。
  3. 全体的に少ないポイント。極値ポイントも、追加のポイントが少ない同じ形状を実現する傾向があります...その結果、ファイルサイズも小さくなります。

これらの理由から、多くのフォントソフトウェア設計プログラムには、最大値と最小値(極値)ではなくポイントを強調表示して修正するためのツールがあります。

それをすべて言って、私はすべてのポイントを極値に設定するために長い間努力してきましたが、まったく成功したことはありませんが、私は自分をベジェ忍者とは見なしていません!


私はヒントを得ますが、スペックを読んだことで、対称的な丸めの問題を信じました。無関係なニュースでは、変曲点を避けるべきです。ただし、他の2つの理由はわかりません。彼らはしばしば引用されますが、まだです。これがtrueの場合、回転されたアイテムには異なる最適ベジェハンドルがあり、オブジェクトがすべての方向で一定である場合はtrueではないように見えます。したがって、これらのポイントは、実際にはオーサリングツールの欠陥、または人間の脳の障害です。
joojaa

2と3の場合は、変曲点を使用し、曲率が最も高い点を使用することをお勧めします(私の回答を参照)。(CC @joojaa)
Wrzlprmft

@Wrzlprmftええ、私は同意します。変曲点は形状に対してグローバルであるためです。また、フォントエンジンはinvflectする曲線を本当に嫌うので、同時に2羽の鳥を殺します。
joojaa
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.