La description et les interprétations des points et des courbes de police TrueType

8

Une question a été posée récemment sur un autre forum qui m'a fait repenser ma compréhension des formats vectoriels. Les polices TrueType sont dans un format vectoriel et - j'avais pensé auparavant - que si un éditeur de vecteur devait les présenter pour modification, il ne présenterait que les points décrits dans la forme de police d'origine et, s'il y a des courbes, présentait des poignées appropriées uniquement ces points.

Je ne vois pas comment un progiciel ( Glyphes ) peut interpréter un dans Arial comme 20 points et un autre (Illustrator) l'interpréter comme 37 points lorsqu'il est converti en contours ou développé. Je n'ai pas de glyphes à portée de main, mais je peux confirmer qu'Illustrator a présenté 37 points lors de mon essai. L'affiche originale a illustré les deux résultats comme suit:

Le a d'Arial dans les glyphes :

Le mot arial dans la même police dans Illustrator (concentrez-vous sur les points de la lettre a contre les mêmes dans les glyphes ):

Je comprends le concept de base des fichiers d'images vectorielles; que les données sont une série de coordonnées pour les points et d'autres informations détaillant mathématiquement la quantité de courbe (ou l'absence de) entre les points. Ce que je ne comprends pas, c'est deux choses:

  1. Les données d'une police TrueType ne sont-elles pas décrites de manière à pouvoir être traduites très littéralement en une forme modifiable dans Illustrator lorsqu'elles sont décrites? Pourquoi Illustrator a-t-il ajouté des points supplémentaires? Ou le format TrueType n'est-il pas du tout décrit en utilisant des points (je ne vois pas comment)?

  2. Les glyphes semblent démontrer qu'il est possible de décrire certaines courbes en un nombre limité de points. Pourquoi un logiciel très réputé comme Illustrator aurait-il besoin de plus de points pour décrire la même courbe? Je verrais cela comme une mauvaise traduction et j'imagine que la plupart des utilisateurs s'y attendraient aussi. Cela chevauche un peu la première question, alors peut-être qu'une seule réponse couvre les deux.

biscuitstack
la source
Pouvez-vous inclure un lien vers la discussion précédente (et la source des images, IIUC)?
Wrzlprmft
Je crains que le message d'origine ne soit un gâchis impie et soit formulé autour de la question des logiciels malveillants / virus à l'origine de ce problème (et n'était pas un forum de conception graphique, donc les gens envisageaient cette idée sans grand mérite dans la discussion). Je ne m'y suis pas aventuré mais cela m'a amené à réfléchir à la question que j'ai posée ici.
biscuitstack
Une remarque: votre image d'arial dans Illustrator montre 37 points d'ancrage pour la lettre a, pas 36. De plus, j'obtiens ce qui semble être exactement les mêmes (37) noeuds dans CorelDRAW comme indiqué dans l'exemple Illustrator, donc quelle que soit la conversion Illustrator est probablement le même dans Corel (et donc pas entièrement arbitraire).
1006a
@ 1006a Je suis impressionné que vous ayez pris le temps de vérifier! Il est intéressant de noter que CorelDRAW correspond à Illustrator . Je ne m'attendrais pas à ce qu'aucun d'entre eux ajoute des points arbitrairement (et je pense que je peux voir un motif où il ajoute des ancres médianes si la ligne se plie au-delà d'un certain angle), mais je ne sais toujours pas pourquoi.
biscuitstack
1
Hé, eh bien, je n'ai pas vraiment compté au début, j'ai juste essayé la conversion dans CorelDraw et j'ai remarqué qu'il s'agissait de 37 nœuds; alors je ne pouvais pas voir où elle différait de l'image, donc bien sûr je devais compter ;-). Je pense que cette Q&R sur SO "Les glyphes de la police TrueType sont constitués de Bézier quadratique. Pourquoi plusieurs points hors courbe consécutifs apparaissent-ils dans le contour du glyphe?" regardez utile pour la question d'où les points "supplémentaires" pourraient provenir (également les ressources liées dans la réponse).
1006a

Réponses:

4

Bien que je ne puisse pas le confirmer (j'ai vérifié le manuel des glyphes et l'aide / les didacticiels en ligne), il semble que l'application Glyphs convertit automatiquement les contours TrueType en contours PostScript (rappelons-nous que les contours TT sont de deuxième ordre, les contours PS sont de troisième ordre. OTF peut contenir des contours TT ou PS, tandis que TTF peut contenir des contours TT).

Si vous importez la police Arial (dont je suis presque sûr qu'il s'agit d'un fichier TTF), cela signifie que vous importez des contours TT, puis Glyphs se convertit en contours PS. Par conséquent, moins de points. Voici Arial.ttf converti en PS Outlines dans FontLab VI (29 nœuds):

Arial PS Outline

Si vous ouvrez la même police en préservant les contours TT (dans cet exemple, ouvert dans FontLab Studio 5), vous obtenez 37 nœuds (rappelez-vous, il existe un nœud implicite entre les points de contrôle successifs):

Arial TT Outline

Dans illustrator, le type est très probablement géré par un moteur de type qui préserve le format des contours, et les points quadratiques sont simplement traduits sur la commande Créer un contour (essayez de créer le contour de la puce, un cercle: il créera 8 nœuds, cohérent avec le format quadratique sous-jacent ...) Ainsi, plus de points sont créés. Ici, dans l'illustrateur cs6:

entrez la description de l'image ici

Même 37 nœuds.

Edit : BTW, répondant à la question: les glyphes "simplifient" la courbe TT en utilisant l' élévation du degré de Bézier , c'est-à-dire la conversion du contour TT en PS.

Pepe Ochoa
la source
1
Non, en fait, il est possible de réduire les contours quadratiques en contours cubiques sans perdre en précision. Cela signifie que les glyphes préservent la précision, mais modifient le format. Illustrator, en revanche, le surpasse car, pour chaque nœud quadratique, crée un nœud cubique (vérifiez le contour créé, chaque nœud a deux points de contrôle, donc est cubique). Il introduit une précision inutile, mais au moins est rapide et exact sur le plan des calculs. BTW, l'inverse (conversion de cubiques en quadratiques ou de PS Outlines en TT Outlines) perd en précision.
Pepe Ochoa
1
J'ai peut-être surévalué la déclaration concernant Illustrator : that preserves the outlines formatcomme suggérant que les glyphes ne préservaient pas le contour et j'ai tiré la conclusion que la conversion des glyphes était légèrement moins fidèle. Je reviens maintenant à mon hypothèse d'origine (qui avait quand même plus de sens). Merci.
biscuitstack
1
Si Illustrator surpasse et ajoute des détails inutiles et que Glyphs simplifie la courbe d'origine - les deux suggèrent qu'aucun des résultats n'est une représentation fidèle. Si j'étais l'artiste d'origine qui devait délibérément placer des points d'ancrage pour dessiner chaque forme de personnage et faire glisser les poignées pour contrôler les courbes - quelle traduction reconnaîtrais-je comme ayant les propriétés originales de ma conception? J'aurais pensé des glyphes, de notre discussion ci-dessus, mais le terme simplifié m'a de nouveau jeté. Ou suggérez-vous que les algorithmes de Bézier sont simplifiés et non la densité des points d'ancrage?
biscuitstack
1
C'est pourquoi j'utilise des guillemets sur simplify . Je cite le wiki (qui cite un livre de la réf. 15): "Une courbe de Bézier de degré n peut être convertie en une courbe de Bézier de degré n + 1 avec la même forme ." En transformant les contours TT (2e degré) en contours PS (3e degré), vous ne perdez pas la conception originale - mathématiquement parlant. Si vous essayez de revenir de PS à TT, alors vous pourriez perdre des informations. Maintenant, il existe également de nombreux facteurs qui peuvent introduire des distorsions: la représentation interne des formes, les erreurs d'arrondi, etc.
Pepe Ochoa
1
Suite: certains éditeurs utilisent des coordonnées décimales pour les nœuds / points, puis exportent des coordonnées entières arrondies, qui affectent la forme exacte des courbes. Je suggère d'utiliser des outils pour modifier les polices dans leur format d'origine, si vous souhaitez préserver la fidélité. Sinon, ma préférence est d'utiliser toujours les contours PS. (Bien que les contours TT vous permettent d'utiliser certaines procédures d'indices méchantes!: PI suppose qu'ils seront utiles lorsque vous travaillerez avec des appareils à très basse résolution ...)
Pepe Ochoa
11

TrueType utilise des courbes de Bézier quadratiques, tandis que la plupart des autres programmes vectoriels (y compris Glyphes et Illustrator) utilisent des courbes de Bézier cubiques. Vous pouvez voir que votre exemple de glyphes n'utilise pas de courbes de Bézier quadratiques car les poignées des ancres adjacentes ne se connectent pas.

Maintenant, les courbes de Bézier quadratiques sont un cas particulier des courbes de Bézier cubiques¹ et donc la conversion de la première à la seconde est simple et ma supposition éclairée de votre exemple est que Glyphs utilise une telle conversion simple. Pour des raisons qui me dépassent, Illustrator convertit les courbes de Bézier quadratiques en cubes d'une manière différente en utilisant plus d'ancrages².


¹ tout comme chaque carré est aussi un rectangle, chaque cercle est une ellipse, etc.
² voici une observation plus détaillée du même phénomène dans un forum allemand

Wrzlprmft
la source
Je n'étais pas au courant de la distinction entre les différentes courbes de Bézier, merci pour cela. Si vous suggérez que les courbes de Bézier quadratiques sont (plus ou moins) un sous-ensemble de courbes de Bézier cubiques, cela pose toujours la question de savoir pourquoi l'illustrateur insère des points inutiles (dans le sens où les glyphes l'ont démontré) plutôt que de fournir une conversion littérale comme il peut. Votre explication des courbes de Bézier quadratiques à cubiques suggérerait qu'il serait très peu probable que les glyphes réduisent la quantité de points, ce qui, à son tour, suggérerait que l'illustrateur en ajoute effectivement d'autres. Pas prouvé, bien sûr.
biscuitstack
3
cela pose toujours la question de savoir pourquoi l'illustrateur insère des points inutiles (dans le sens où les glyphes l'ont démontré) plutôt que de fournir une conversion aussi littérale que possible. - comme je l'ai dit, la raison en est hors de moi. Tout ce que je peux dire, c'est que ce phénomène (Illustrator ajoutant des ancres supplémentaires) a déjà été observé.
Wrzlprmft
Cette question de suivi particulière était largement destinée à tous ceux qui lisent, bien que je comprenne pourquoi vous l'avez interprétée comme vous étant adressée @Wrzlprmft. Toutes mes excuses pour la confusion et merci pour la contribution jusqu'à présent.
biscuitstack
1
@joojaa: il peut être plus robuste de diviser la courbe au point d'inflexion. - Les courbes de Bézier quadratiques ne peuvent pas avoir de points d'inflexion en dehors des ancrages. Par conséquent, eux et leurs équivalents cubes sont automatiquement divisés aux points d'inflexion. - De plus, si vous vous attendez à une dégénérescence ou similaire dans certains cas lors d'une conversion, vous pouvez généralement également prévoir quand cela va se produire, vous n'avez donc pas à le changer tout le temps. Enfin, de nombreux autres logiciels semblent bien fonctionner avec la conversion directe du quadratique en cubique.
Wrzlprmft
-2

Modifie éventuellement le nombre de points de contrôle en raison d'une violation des droits d'auteur? Si cela correspondait exactement au nombre de points, alors ce serait illégal?

Je suis la 758e copie enregistrée de l'illustrateur aux États-Unis v1.0, qui ne pouvait pas alors faire de polices de contour. Le premier jour de sa sortie, Adobe a vendu moins de 1 000 exemplaires, le deuxième jour, il en a vendu environ 16 000.

Juste mon entrée, vous pouvez toujours simplifier le chemin pour ajouter ou supprimer des points.

J'ai également utilisé le fontographe à l'époque et faire une police de caractères parfaite avec tous les caractères n'est pas facile. il m'a fallu plus de 45 jours pour le rapprocher mais ce n'était jamais parfait.

Steve
la source
C'est en fait une raison assez raisonnable, mais si nous spéculons, je suppose que c'est une sorte de résidu du traitement entier
joojaa
3
Pourquoi serait-ce une violation du droit d'auteur lorsque le format est clair (courbes de Bézier quadratiques) et devrait pouvoir être reproduit facilement? À part cela, je ne suis pas sûr que le reste de l'histoire de la sortie d'Illustrator et de Fontographer soit lié à TrueType.
Andrew T.
De plus, si la modification du nombre de points de contrôle suffit pour éviter les problèmes de copyright, alors la pixellisation ferait de même. J'en doute sincèrement. (CC @joojaa)
Wrzlprmft
@Wrzlprmft Aucun droit d'auteur n'est pas la raison, ce qui rend la copie des courbes plus difficile. Adobe avait le monopole du moteur de polices. Donc, en ne permettant pas aux gens d'accéder aux données sous-jacentes directes, la vie des copieurs de polices est plus difficile. Ce point est sans objet aujourd'hui, mais encore une fois l'illustrateur est incroyablement vieux
joojaa
1
@AndrewT. oui, le droit d'auteur est peut-être une idée erronée, mais la copie est légèrement entravée, le fait de doubler les courbes rend la manipulation de la police plus difficile.
joojaa