Renderização Subpixel

Essa é uma curiosidade sobre como os computadores usam uns truques inteligentes pra tornar as coisas mais agradáveis.

Tenho a fotografia como um hobby, e recentemente comprei uns tubos de extensão; são um elemento que vai entre a câmera e a objetiva (lente) que diminui a distância mínima de foco; quer dizer, com isso, dá pra tirar foto mais de perto.

Por curiosidade tirei uma foto de perto do meu monitor e notei algo engraçado:

Os pixels se dão em RGB (vermelho, verde e azul) como esperado: são tão pequenos que de longe, dão a aparência de branco. Um pixel é composto por uma linha vermelha, uma verde e uma azul (a azul e vermelha meio que se misturam na imagem e dão aparência de roxo), e é quadrado.

O que me surpreendeu foi que algumas partes do preto do texto não são quadradas! Em geral se pensa no pixel como a menor unidade possível de display, mas pra deixar a fonte mais suave e menos quadrada ao olho humano, usa-se o artifício de apagar somente uma cor de cada píxel. Assim, o detalhe do C ocupa só 1/3 de píxel, e o ponto não é precisamente quadrado, tem 2 pixels de altura por 1 e 2/3 de largura.

Podemos observar esse efeito ampliando uma print-screen de texto:

Mesmo com fonte cinza-escura, o texto ampliado aparenta ser colorido, porque a definição de cada cor acende ou apaga LEDs individuais em cada pixel de modo a criar um escuro (preto) na posição certa pra tornar o texto mais "fino".

Pesquisei um pouco e descobri que esse truque se chama "renderização subpixel". A página da Wikipedia mostra o quanto o negócio é interessante. Por exemplo, diferentes tipos de monitor têm diferentes padrões de LED RGB e isso tem que ser levado em consideração quando as cores são geradas pela renderização de fonte do sistema operacional:

Fonte: Wikipedia
Show Comments

Get the latest posts delivered right to your inbox.