Textos com fontes True Type em OpenGL.
Criação de biblioteca C++ para renderização
de textos com fontes True Type
no contexto do OpenGL. Essa lib depende apenas do
OpenGL e da lib FreeType,
para consultar as informações de arquivos de Fonte. Há duas formas de desenho
disponíveis:
·
Textura
·
Polígonos.
Para textos pequenos, que necessitam de
baixa resolução, a lib escolhe automaticamente o
desenho por textura, que aloca em uma única textura (atlas) todos os caracteres
utilizados pelo cliente para determinada fonte. Os caracteres alocados na
memória da placa gráfica são apenas os caracteres utilizados, de modo que a
memória de textura utilizada é a mínima necessária (isso possibilitou o desenho
de textos em máquinas com poucos recursos de placa).
Para textos de tamanhos consideráveis, a lib escolhe o desenho da triangulação gerada de cada glifo.
Internamente faço uma discretização das splines que
representam cada caracter e triangulo o(s)
polígono(s) (com furos ou não) gerados.
A seguir apresento exemplos de renderização
com textura em 3 níveis de resolução e as duas últimas imagens apresentam a
renderização com triangulação (implementei o algoritmo de ear-clipping,
que já é suficiente). A definição do polígono (com furo ou não) de cada
caractere é lido pela lib FreeType.
Baixa Resolução:
Média Resolução:
Alta Resolução:
Desenho por triangulação dos caracteres:
Triangulação utilizada: