La descripción e interpretaciones de los puntos y curvas de fuente TrueType

8

Recientemente se hizo una pregunta en otro foro que me hizo repensar mi comprensión de los formatos vectoriales. Las fuentes TrueType están en formato vectorial y, como había pensado anteriormente, que si un editor de vectores las presentara para su edición, presentaría solo los puntos descritos en la forma original de la fuente y, si hay curvas, presentaría los identificadores apropiados solo esos puntos

No veo cómo un paquete de software ( Glifos ) puede interpretar un en Arial como 20 puntos y otro (Illustrator) lo interpreta como 37 puntos cuando se convierte en contornos o se expande. No tengo glifos a mano, pero puedo confirmar que Illustrator presentó 37 puntos cuando lo intenté. El póster original proporcionó ilustraciones de ambos resultados de la siguiente manera:

La a de Arial en Glifos :

La palabra arial en la misma fuente en Illustrator (enfóquese en los puntos en la letra a versus la misma en Glifos ):

Entiendo el concepto básico de archivos de imágenes vectoriales; que los datos son una serie de coordenadas para puntos y otra información que detalla matemáticamente la cantidad de curva (o falta de) entre puntos. Lo que no entiendo son dos cosas:

  1. ¿Los datos en una fuente TrueType no se describen de tal manera que se puedan traducir literalmente a una forma editable en Illustrator cuando se describen? ¿Por qué Illustrator ha agregado puntos adicionales? ¿O el formato TrueType no se describe utilizando puntos en absoluto (no veo cómo)?

  2. Los glifos parecen demostrar que es posible describir ciertas curvas en una cantidad limitada de puntos. ¿Por qué un software de gran reputación como Illustrator necesitaría más puntos para describir la misma curva? Vería esto como una traducción deficiente e imagino que la mayoría de los usuarios esperarían esto también. Esto se superpone un poco con la pregunta uno, por lo que tal vez una sola respuesta cubra ambas.

pila de galletas
fuente
¿Puede incluir un enlace a la discusión previa (y la fuente de las imágenes, IIUC)?
Wrzlprmft
Me temo que la publicación original fue un desastre profano y se formuló en torno a la cuestión del malware / virus que causa este problema (y no era un foro de diseño gráfico, por lo que la gente estaba entreteniendo esta idea sin mucho mérito en la discusión). No me aventuré en eso, pero me llevó a reflexionar sobre la pregunta que hice aquí.
biscuitstack
Una nota: su imagen de arial en Illustrator muestra 37 puntos de anclaje para la letra a, no 36. Además, obtengo lo que parecen ser exactamente los mismos (37) nodos en CorelDRAW como se muestran en el ejemplo de Illustrator, así que sea cual sea la conversión de Illustrator Lo que está haciendo es probablemente lo mismo en Corel (y, por lo tanto, no del todo arbitrario).
1006a
@ 1006a ¡Estoy impresionado de que se haya tomado el tiempo de verificar! Es interesante que CorelDRAW coincida con Illustrator . No esperaría que ninguno de ellos agregue puntos arbitrariamente (y creo que puedo ver un patrón en el que agrega anclas de punto medio si la línea se dobla más allá de cierto ángulo), pero todavía no estoy seguro de por qué.
biscuitstack
1
Je, bueno, al principio no conté, solo intenté la conversión en CorelDraw y noté que decía 37 nodos; entonces no pude ver en qué difería de la imagen, así que por supuesto tuve que contar ;-). Creo que este Q&A en SO "El glifo de la fuente TrueType está hecho de Bezier cuadrático. ¿Por qué aparecen más de un punto fuera de curva consecutivo en el contorno del glifo?" parece útil para la pregunta de dónde podrían provenir los puntos "adicionales" (también los recursos vinculados en la respuesta).
1006a

Respuestas:

4

Si bien no puedo confirmar esto (revisé el Manual de Glifos y la Ayuda / Tutoriales en línea), parece que la aplicación Glyphs convierte automáticamente los contornos TrueType en contornos PostScript (recordemos que los contornos TT son de segundo orden, los contornos PS son de tercer orden. Además, OTF puede contener contornos TT o PS, mientras que TTF puede contener contornos TT).

Si está importando el tipo de letra Arial (que estoy casi seguro de que es un archivo TTF), significa que está importando contornos TT, luego Glyphs se convierte en contornos PS. Por lo tanto, menos puntos. Aquí está Arial.ttf convertido a PS Outlines en FontLab VI (29 nodos):

Esquema de Arial PS

Si abre la misma fuente conservando los contornos TT (en este ejemplo, abierto en FontLab Studio 5), obtendrá 37 nodos (recuerde, hay un nodo implícito entre puntos de control sucesivos):

Esquema Arial TT

En Illustrator, lo más probable es que el tipo sea manejado por un motor de tipo que conserva el formato de los contornos, y los puntos cuadráticos solo se traducen en el comando Crear esquema (intente crear el contorno de la viñeta, un círculo: creará 8 nodos, coherente con el formato subyacente cuadrático ...) Por lo tanto, se crean más puntos. Aquí, en el ilustrador cs6:

ingrese la descripción de la imagen aquí

Los mismos 37 nodos.

Editar : Por cierto, respondiendo a la pregunta: Los glifos "simplifican" la curva TT usando la Elevación de Bezier , es decir, convirtiendo el contorno TT a PS.

Pepe Ochoa
fuente
1
No, de hecho, es posible reducir los contornos cuadráticos a contornos cúbicos sin perder precisión. Significa que Glyphs conserva la precisión, pero modifica el formato. Illustrator, por otro lado, lo está exagerando ya que, para cada nodo cuadrático, está creando un nodo cúbico (verifique el esquema creado, cada nodo tiene dos puntos de control, por lo tanto, es cúbico). Introduce precisión innecesaria, pero al menos es computacionalmente rápida y exacta. Por cierto, al revés (la conversión de cúbicos a cuadráticos, o PS Outlines a TT Outlines) pierde precisión.
Pepe Ochoa
1
Tal vez sobrevalore la afirmación con respecto a Illustrator : that preserves the outlines formatcomo sugiriendo que Glifos no conservaba el esquema y llegué a la conclusión de que la conversión de Glifos era un poco menos fiel. Volveré a mi suposición original ahora (que de todos modos tenía más sentido). Gracias.
biscuitstack
1
Si Illustrator está exagerando y agregando detalles innecesarios, y Glyphs simplifica la curva original, ambos sugerirían que ninguno de los resultados es una representación fiel. Si yo fuera el artista original que tuviera que colocar a propósito puntos de anclaje para dibujar la forma de cada personaje y arrastrar manijas para controlar las curvas, ¿qué traducción reconocería que tiene las propiedades originales de mi diseño? Hubiera pensado Glifos, de nuestra discusión anterior, pero el término simplificado me ha arrojado nuevamente. ¿O estás sugiriendo que los algoritmos bezier están simplificados y no la densidad de los puntos de anclaje?
biscuitstack
1
Es por eso que uso citas en simplificar . Cito el wiki (que cita un libro en la referencia 15): "Una curva Bézier de grado n puede convertirse en una curva Bézier de grado n + 1 con la misma forma ". Al convertir los contornos TT (segundo grado) en los contornos PS (tercer grado), no pierde el diseño original, matemáticamente hablando. Si intenta revertir de PS a TT, podría perder algo de información. Ahora, también hay muchos factores que pueden introducir distorsiones: la representación interna de las formas, los errores de redondeo, etc.
Pepe Ochoa
1
Continuación: algunos editores usan coordenadas decimales para los nodos / puntos, y luego exportan coordenadas enteras redondeadas, que afectan la forma exacta de las curvas. Sugiero usar herramientas para editar fuentes en su formato original, si desea preservar la fidelidad. De lo contrario, mi preferencia es usar siempre esquemas de PS. (Aunque los esquemas TT permiten utilizar algunos procedimientos dando a entender los malos: PI supongo que será útil cuando se trabaja con dispositivos de muy baja resolución ...!)
Pepe Ochoa
11

TrueType usa curvas Bézier cuadráticas, mientras que la mayoría de los otros programas vectoriales (incluidos Glifos e Illustrator) usan curvas Bézier cúbicas. Puede ver que su ejemplo de Glifos no utiliza curvas cuadráticas de Bézier ya que los mangos de los anclajes adyacentes no se conectan.

Ahora, las curvas de Bézier cuadráticas son un caso especial de curvas de Bézier cúbicas¹ y, por lo tanto, la conversión de la primera a la segunda es sencilla y mi suposición educada de su ejemplo es que Glyphs utiliza una conversión tan sencilla. Por razones que están más allá de mí, Illustrator convierte las curvas cuadráticas de Bézier en cúbicas de una manera diferente que usa más anclajes².


¹ así como cada cuadrado es también un rectángulo, cada círculo es una elipse, y así sucesivamente
² aquí hay una observación más detallada del mismo fenómeno en un foro alemán

Wrzlprmft
fuente
No estaba al tanto de la distinción entre varias curvas bezier, gracias por eso. Si está sugiriendo que las curvas bézier cuadráticas son (más o menos) un subconjunto de curvas bézier cúbicas, todavía surge la pregunta de por qué el ilustrador está insertando puntos innecesarios (en el sentido que los Glifos demostraron) en lugar de proporcionar una conversión literal como puede Su explicación de las curvas bezier cuadráticas a cúbicas sugeriría que sería muy poco probable que los glifos redujeran la cantidad de puntos que, a su vez, sugerirían que el ilustrador está agregando más. No probado, por supuesto.
biscuitstack
3
todavía plantea la pregunta de por qué el ilustrador está insertando puntos innecesarios (en el sentido que los glifos lo demostraron) en lugar de proporcionar una conversión tan literal como sea posible. - Como dije, la razón de esto está más allá de mí. Todo lo que puedo decir es que este fenómeno (Illustrator agregando anclas adicionales) se ha observado antes.
Wrzlprmft
Esa pregunta de seguimiento en particular estaba destinada en general a cualquiera que lea, aunque entiendo por qué la interpretaste como dirigida a ti @Wrzlprmft. Disculpas por la confusión y gracias por el aporte hasta ahora.
biscuitstack
1
@joojaa: puede ser más robusto dividir la curva en el punto de inflexión. - Las curvas de Bézier cuadráticas no pueden tener puntos de inflexión fuera de los anclajes. Por lo tanto, ellos y sus equivalentes cúbicos se dividen automáticamente en los puntos de inflexión. - Además, si espera degeneración o similar en ciertos casos al realizar una conversión, generalmente también puede predecir cuándo ocurrirá esto, por lo que no tiene que cambiar esto todo el tiempo. Finalmente, muchos otros softwares parecen funcionar bien con la conversión directa de cuadrático a cúbico.
Wrzlprmft
-2

¿Posiblemente cambia la cantidad de puntos de control debido a una infracción de derechos de autor? Si coincidiera exactamente con el número de puntos, ¿sería ilegal?

Soy la 758ª copia registrada de Illustrator en EE. UU. v1.0, que no podía hacer fuentes de contorno en ese momento. El primer día del lanzamiento de Adobe vendió menos de 1000 copias, el segundo día vendió alrededor de 16,000 copias.

Solo mi entrada, siempre puede simplificar la ruta para agregar o eliminar puntos.

También usé fontographer en ese entonces y hacer una tipografía perfecta con todos los caracteres no es fácil. Me llevó más de 45 días acercarme, pero nunca fue perfecto.

Steve
fuente
Esa es una razón bastante razonable, pero si especulamos, supongo que es algún tipo de residuo del procesamiento de enteros
Joojaa
3
¿Por qué sería una infracción de derechos de autor cuando el formato es claro (curvas de Bezier cuadráticas) y debería ser posible reproducirlo fácilmente? Aparte de eso, no estoy seguro de que el resto de la historia sobre el lanzamiento de Illustrator y Fontographer esté relacionado con TrueType.
Andrew T.
Además, si cambiar el número de puntos de control es suficiente para evitar problemas de derechos de autor, entonces pixelarlo haría lo mismo. Sinceramente lo dudo. (CC @joojaa)
Wrzlprmft
@Wrzlprmft Sin copyright no es la razón, lo que dificulta la copia de las curvas. Adobe solía tener el monopolio del motor de fuentes. Entonces, al no permitir que las personas tengan acceso a datos subyacentes directos, la vida de los copiadores de fuentes es más difícil. Este punto es discutible hoy pero nuevamente el ilustrador es INCREÍBLEMENTE viejo
joojaa
1
@AndrewT. sí, tal vez el copyright es una idea equivocada, pero la copia está ligeramente obstaculizada, duplicar las curvas hace que sea más difícil manipular la fuente.
joojaa