Fontes: anti-aliasing, hinting e subpixel rendering

Dezembro 2016


Problema


A aparência de um texto na tela é sempre mais grosseira do que no papel.

O problema vem do fato que um caractere é uma definição geométrica fina, e é difícil restaurar a sua aparência original na tela por causa do tamanho do pixel (um pouco como se você quisesse fazer um círculo com Legos baby).

Foram inventadas diversas técnicas para melhorar a aparência do texto na tela:
  • O anti-aliasing (também chamado de "suavização de imagens", "antisserrilhamento" ou "smoothing").
  • O "hinting"
  • O subpixel rendering

Bruto


Se tentarmos desenhar caracteres a partir de sua definição geométrica, obtemos o seguinte:


É bem feio.

Hinting


Um ser humano pode ajudar o programa, dando pistas (hints) sobre a melhor maneira de colocar os pixels para dar um aspecto mais legível aos caracteres. É a isto que chamamos de hinting.

Anti-aliasing


Outra técnica é não , consiste em não usar apenas os pixels pretos e brancos, mas toda a paleta de cinzas, para fazer as transições. Este é o famoso anti-aliasing:

Anti-aliasing + Hinting


No entanto, isso dá um aspecto um pouco "mole" aos caracteres, especialmente em linhas horizontais ou verticais. Por conseguinte, podemos combinar o anti-aliasing com o hinting para obter melhores resultados:

Subpixel rendering


O subpixel rendering utiliza um recurso das telas LCD e do olho humano:

Um pixel da tela LCD é composto de três barras verticais - vermelha, verde e azul - posicionadas uma ao lado da outra.
Se só ativarmos a barra vermelha do pixel, só ativaremos realmente um terço da área do pixel.
Ativando a vermelha e a verde, ativaremos dois terços do pixel, e assim por diante.
De certa forma, podemos então, triplicar a resolução horizontal de uma exibição LCD e, assim, aumentar a fineza dos detalhes.


O método é semelhante ao do anti-aliasing, mas aqui se usam pixels de cor, em vez de níveis de cinza, para ativar uma parte do pixel .
Isso torna possível mostrar detalhes mais finos, mas com uma ligeira mudança de cores na tela.
Mas como o olho humano é mais sensível ao brilho do que à cor, em geral, isso não é um problema.


Nota: Você só poderá apreciar realmente a melhoria fornecida pelo subpixel rendering, se você tiver um monitor LCD.

Sub-pixel rendering + Hinting


Comparação das soluções


Renderização direta:


Hinting:


Anti-aliasing:


Anti-aliasing + Hinting:


Sub-pixel rendering:


Sub-pixel rendering + Hinting:

Observações

  • A técnica do "sub-pixel rendering" está disponível na maioria dos atuais sistemas operacionais (Windows, MacOS X, Linux, etc) . Com o freeware ClearTweak, você poderá configurá-la no Windows.
  • Mesmo se eles estão são parecidos, vários métodos de "subpixel rendering" estão sujeitos a patentes. Eles são encontrados sob o nome ClearType (na Microsoft), CoolType (na Adobe), Quartz (na Apple), etc.
  • As fontes de caracteres de boa qualidade contém as informações do hinting, o que lhes dá um bom aspecto na tela. As fontes de má qualidade sem hinting, ou com um hinting ruim, são muito difíceis de serem lidas na tela. A Microsoft sempre se preocupou com o hinting de todas as suas fontes de caracteres.
  • Quando uma fonte não tem informações sobre o hinting, certos softwares e sistemas operacionais tentam calcular um hinting automático. Os diversos métodos de hinting automáticos também estão sujeitos a patentes (aliás, é por isso que o hinting do Windows é melhor do que o do Linux (freetype)).
  • Na maioria dos sistemas, o anti-aliasing é automaticamente desativado abaixo de um determinado tamanho. O hinting, geralmente, é mantido. Em geral, o subpixel rendering é ativado em todos os tamanhos.

Vantagens e desvantagens do subpixel rendering


O subpixel rendering tem vantagens e desvantagens, e há argumentos para ambos os lados. Na verdade, é tudo uma questão de gosto.

Vantagens

  • Aspecto gráfico na tela mais próxima do design original da fonte (Esta é a principal vantagem).
  • Melhor fineza de caracteres (por exemplo, pequenos detalhes como vírgulas, parênteses ou as pontas da fonte "serif "como o Times New Roman, etc).
  • Melhor legibilidade em pequenos tamanhos
  • Na falta de hinting, permite um espaçamento de caracteres mais fiel (importante na área de paginação). Isso evita, por exemplo, uma palavra que pula o parágrafo na tela e que continua na mesma linha na impressão (por que o hinting força a colocação dos pixels).

Desvantagens

  • A Microsoft tem uma patente extensa sobre a técnica , expondo qualquer desenvolvedor de uma técnica semelhante a um julgamento.
  • Só funciona nas telas LCD.
  • Franjas coloridas, mais ou menos importantes (embora haja técnicas para atenuar o problema).
  • Sem o hinting, pode dar um aspecto "embaçado" às fontes.
  • A renderização nem sempre é boa em fundos coloridos.

Quem tem razão? Apple ou Microsoft ?


A Apple usa o anti-aliasing, mas sem o hiting, com o objetivo de obter uma exibição mais fiel possível à fonte original.
A Microsoft utiliza subpixel rendering, (disponível no Windows XP, mas desativado por padrão no Vista) mas, frequentemente, com um forte hiting . O objetivo é obter uma tela a mais nítida possível.
Em teoria, a Apple está certa: O ideal é exibir as fontes de caracteres o mais fiel possível ao design original.
Na prática, a Microsoft tem razão: nossas telas têm resoluções baixas (72 ou 96 dpi), então, é melhor fazer o necessário para obter uma exibição clara e nítida, fazendo entrar caracteres na grade de pixels.

Depois, é uma questão de escolha pessoal.
Dito isto, se você olhar para o futuro com telas de alta resolução (200 dpi ou mais), a técnica da Microsoft começará a causar problemas, induzindo deslocamentos desnecessários.

Se o futuro pertence às telas de alta resolução, o hiting e o subpixel rendering tornar-se-ão desnecessárias.

(Para mais informações, consulte os links).

Links


(artigos em inglês):


Tradução feita por Lucia Maurity y Nouira


Veja também :
Este documento, intitulado « Fontes: anti-aliasing, hinting e subpixel rendering »a partir de CCM (br.ccm.net) está disponibilizado sob a licença Creative Commons. Você pode copiar, modificar cópias desta página, nas condições estipuladas pela licença, como esta nota aparece claramente.