A descrição e interpretações dos pontos e curvas da fonte TrueType

8

Recentemente, foi feita uma pergunta em outro fórum que me fez repensar minha compreensão dos formatos vetoriais. As fontes TrueType estão em um formato vetorial e - eu pensava anteriormente - que, se um editor de vetores as apresentasse para edição, apresentaria apenas os pontos descritos na forma da fonte original e, se houver curvas, apresentaria identificadores apropriados apenas esses pontos.

Não vejo como um pacote de software ( Glyphs ) pode interpretar um em Arial como 20 pontos e outro (Illustrator) o interpreta como 37 pontos quando convertido em contornos ou expandido. Não tenho Glyphs em mãos, mas posso confirmar que o Illustrator apresentou 37 pontos ao me testar. O pôster original forneceu ilustrações de ambos os resultados da seguinte forma:

A um de Arial em Glyphs :

A palavra arial na mesma fonte no Illustrator (concentre-se nos pontos da letra a versus o mesmo nos glifos ):

Eu entendo o conceito básico de arquivos de imagem vetorial; que os dados são uma série de coordenadas para pontos e outras informações que detalham matematicamente a quantidade de curva (ou falta de) entre pontos. O que eu não entendo são duas coisas:

  1. Os dados em uma fonte TrueType não são descritos de maneira que possam ser traduzidos literalmente para uma forma editável no Illustrator quando descritos? Por que o Illustrator adicionou pontos adicionais? Ou o formato TrueType não é descrito usando pontos (não vejo como)?

  2. Os glifos parecem demonstrar que é possível descrever certas curvas em uma quantidade limitada de pontos. Por que um software de renome como o Illustrator precisaria de mais pontos para descrever a mesma curva? Eu consideraria isso uma tradução ruim e imagino que a maioria dos usuários também esperaria isso. Isso se sobrepõe um pouco à pergunta um, talvez uma resposta única cubra ambos.

pilha de biscoitos
fonte
Você pode incluir um link para a discussão anterior (e fonte das imagens, IIUC)?
Wrzlprmft
Receio que o post original tenha sido uma bagunça profana e tenha sido formulado em torno da questão de malware / vírus que causa esse problema (e não era um fórum de design gráfico, então as pessoas estavam entendendo essa ideia sem muito mérito na discussão). Não me arrisquei, mas isso me levou a refletir sobre a pergunta que fiz aqui.
Biscuitstack #
Uma observação: sua imagem de arial no Illustrator mostra 37 pontos de ancoragem para a letra a, não 36. Além disso, recebo o que parecem ser exatamente os mesmos (37) nós no CorelDRAW, como são mostrados no exemplo do Illustrator, portanto, qualquer conversão do Illustrator o que está fazendo é provavelmente o mesmo no Corel (e, portanto, não é totalmente arbitrário).
1006a
@ 1006a Estou impressionado que você reservou o tempo para verificar! Interessante que o CorelDRAW corresponda ao Illustrator . Eu não esperaria que nenhum deles adicionasse pontos arbitrariamente (e acho que posso ver um padrão em que está adicionando âncoras de ponto médio se a linha se curvar além de um determinado ângulo), mas ainda não tenho certeza do motivo.
Biscuitstack
1
Heh, bem, na verdade eu não contei, apenas tentei a conversão no CorelDraw e notei que ele dizia 37 nós; então eu não conseguia ver onde isso era diferente da imagem, então é claro que tinha que contar ;-). Acho que essas perguntas e respostas sobre SO "O glifo da fonte TrueType são feitas de Bezier quadrático. Por que mais de um ponto consecutivo fora da curva aparece no contorno do glifo?" pareça útil para a pergunta de onde os pontos "extras" podem ter origem (também os recursos vinculados na resposta).
1006a

Respostas:

4

Embora eu não possa confirmar isso (verifiquei o manual Glyphs e a Ajuda / Tutoriais on-line), parece que o aplicativo Glyphs converte automaticamente os contornos TrueType em contornos PostScript (lembre-se de que os contornos TT são de 2ª ordem, os contornos PS são de 3ª ordem. OTF pode conter contornos TT ou PS, enquanto TTF pode conter contornos TT).

Se você estiver importando o tipo de letra Arial (que tenho quase certeza de que é um arquivo TTF), significa que você está importando TT Outlines, e então Glyphs é convertido em PS Outlines. Portanto, menos pontos. Aqui está Arial.ttf convertido em PS Outlines no FontLab VI (29 nós):

Arial PS Outline

Se você abrir a mesma fonte preservando os Contornos do TT (neste exemplo, aberto no FontLab Studio 5), obterá 37 nós (lembre-se, existe um nó implícito entre pontos de controle sucessivos):

Arial TT Outline

No ilustrador, o tipo é provavelmente tratado por um mecanismo de tipo que preserva o formato dos contornos, e os pontos quadráticos são traduzidos apenas no comando Criar contorno (tente criar o contorno do marcador, um círculo: ele criará 8 nós, coerentes com o formato subjacente quadrático ...) Portanto, mais pontos são criados. Aqui, no ilustrador cs6:

insira a descrição da imagem aqui

Mesmos 37 nós.

Edit : BTW, respondendo à pergunta: os glifos "simplificam" a curva TT usando a elevação de grau de Bezier , ou seja, convertendo o contorno do TT em PS.

Pepe Ochoa
fonte
1
De fato, é possível reduzir contornos quadráticos a contornos cúbicos sem perder a precisão. Isso significa que Glyphs preserva a precisão, mas modifica o formato. O Illustrator, por outro lado, está exagerando , pois, para cada nó quadrático, está criando um nó cúbico (verifique o contorno criado, cada nó tem dois pontos de controle, portanto, é cúbico). Introduz precisão desnecessária, mas pelo menos é computacionalmente rápida e exata. Aliás, o contrário (conversão de cubics para quadratics ou PS Outlines em TT Outlines) perde precisão.
Pepe Ochoa
1
Talvez eu tenha supervalorizado a afirmação sobre o Illustrator : that preserves the outlines formatsugerindo que os Glyphs não estavam preservando o esboço e cheguei à conclusão de que a conversão dos Glyphs era um pouco menos fiel. Voltarei à minha suposição original agora (o que fazia mais sentido de qualquer maneira). Obrigado.
Biscuitstack
1
Se o Illustrator estiver exagerando e adicionando detalhes desnecessários, e Glyphs simplificar a curva original - ambos sugerem que nenhum dos resultados é uma representação fiel. Se eu fosse o artista original que tivesse que intencionalmente colocar pontos de ancoragem para desenhar cada forma de caractere e arrastar alças para controlar curvas - qual tradução eu reconheceria como tendo as propriedades originais do meu design? Eu teria pensado em Glyphs, da nossa discussão acima, mas o termo simplificado me jogou de novo. Ou você está sugerindo que os algoritmos de bezier são simplificados e não a densidade dos pontos de ancoragem?
Biscuitstack
1
É por isso que uso aspas no simplify . Cito o wiki (que cita um livro na ref. 15): "Uma curva de Bézier de grau n pode ser convertida em uma curva de Bézier de grau n + 1 com a mesma forma ". Ao transformar os contornos TT (2º grau) em PS (3º grau), você não perde o design original - matematicamente falando. Se você tentar reverter do PS para o TT, poderá perder algumas informações. Agora, há também muitos fatores que podem introduzir distorções: a representação interna das formas, erros de arredondamento, etc.
Pepe Ochoa
1
Continuação: alguns editores usam coordenadas decimais para os nós / pontos e exportam coordenadas inteiras arredondadas, que afetam a forma exata das curvas. Sugiro usar ferramentas para editar fontes no formato original, se você quiser preservar a fidelidade. Caso contrário, minha preferência é usar sempre os contornos do PS. (Embora TT contornos permitem que você use alguns procedimentos insinuando maus: PI acho que eles serão úteis quando se trabalha com dispositivos de resolução muito baixa ...!)
Pepe Ochoa
11

O TrueType usa curvas quadráticas de Bézier, enquanto a maioria dos outros programas vetoriais (incluindo Glyphs e Illustrator) usa curvas cúbicas de Bézier. Você pode ver que seu exemplo de Glyphs não usa curvas quadráticas de Bézier, pois as alças das âncoras adjacentes não se conectam.

Agora, as curvas quadráticas de Bézier são um caso especial de curvas cúbicas de Bézier¹ e, portanto, a conversão da primeira para a segunda é direta e meu palpite do seu exemplo é que os Glyphs usam uma conversão tão direta. Por razões que estão além de mim, o Illustrator converte curvas quadráticas de Bézier em cúbicas de uma maneira diferente que usa mais âncoras².


¹ assim como todo quadrado também é um retângulo, todo círculo é uma elipse, e assim por diante
² aqui está uma observação mais detalhada do mesmo fenômeno em um fórum alemão

Wrzlprmft
fonte
Eu não sabia da distinção entre várias curvas bezier, obrigado por isso. Se você está sugerindo que as curvas quadráticas de bezier são (mais ou menos) um subconjunto de curvas cúbicas de bezier, ainda se pergunta por que o ilustrador está inserindo pontos desnecessários (no sentido em que Glyphs demonstrou) ao invés de fornecer uma conversão literal como pode. Sua explicação das curvas quadráticas para as cúbicas de bezier sugere que é muito improvável que os glifos reduzam a quantidade de pontos que, por sua vez, sugerem que o ilustrador está de fato acrescentando outros. Não comprovado, é claro.
Biscuitstack #
3
ele ainda levanta a questão de por que o ilustrador está inserindo pontos desnecessários (no sentido que Glyphs demonstrou) em vez de fornecer uma conversão o mais literal possível. - como eu disse, a razão disso está além de mim. Tudo o que posso dizer é que esse fenômeno (Illustrator adicionando âncoras adicionais) já foi observado antes.
Wrzlprmft
Essa pergunta de acompanhamento específica foi amplamente planejada para quem lê, embora eu entenda por que você a interpretou como direcionada a você @Wrzlprmft. Desculpas pela confusão e obrigado pela contribuição até agora.
Biscuitstack #
1
@joojaa: pode ser mais robusto dividir a curva no ponto de inflexão. - As curvas quadráticas de Bézier não podem ter pontos de inflexão fora das âncoras. Portanto, eles e seus equivalentes cúbicos são divididos automaticamente nos pontos de inflexão. - Além disso, se você espera degeneração ou algo semelhante em certos casos ao fazer uma conversão, geralmente também pode prever quando isso vai acontecer, para que você não precise mudar isso o tempo todo. Finalmente, muitos outros softwares parecem se sair bem com a conversão direta de quadrática para cúbica.
Wrzlprmft
-2

Possivelmente altera a quantidade de pontos de controle devido a violação de direitos autorais? Se correspondesse exatamente ao número de pontos, seria ilegal?

Eu sou a 758ª cópia registrada do illustrator nos EUA v1.0, que não podia delinear fontes então. No primeiro dia do lançamento da Adobe, vendeu menos de 1000 cópias, no segundo dia vendeu cerca de 16.000 cópias.

Apenas minha entrada, você sempre pode simplificar o caminho para adicionar ou remover pontos.

Eu também usei o fontographer naquela época e criar uma fonte perfeita com todos os personagens não é fácil. demorei mais de 45 dias para chegar perto, mas nunca foi perfeito.

Steve
fonte
Isso é motivo realmente muito razoável, mas IIF especula-se, então eu diria a sua algum tipo de resíduo do processamento inteiro
joojaa
3
Por que seria uma violação de direitos autorais quando o formato é nítido (curvas quadráticas de Bezier) e deveria ser possível reproduzir facilmente? Fora isso, não tenho certeza de que o restante da história sobre o lançamento do Illustrator e o Fontographer esteja relacionado ao TrueType.
Andrew T.
Além disso, se alterar o número de pontos de controle for suficiente para evitar problemas de direitos autorais, o pixelização fará o mesmo. Eu sinceramente duvido disso. (CC @joojaa)
Wrzlprmft
@Wrzlprmft Nenhum direito autoral não é o motivo, é mais difícil copiar as curvas. A Adobe costumava ter monopólio no mecanismo de fontes. Portanto, não permitir que as pessoas tenham acesso a dados subjacentes diretos dificulta a vida dos copiadores de fontes. Este ponto é discutível hoje, mas novamente ilustrador é incrivelmente velho
joojaa
1
@AndrewT. sim, talvez os direitos autorais sejam uma idéia equivocada, mas a cópia é um pouco prejudicada, dobrar as curvas dificulta a manipulação da fonte.
Joojaa