TGL::Text

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: