Como fazer a renderização de texto ao vivo do OpenGL para uma GUI?

Estou implementando uma GUI construída sobre o OpenGL. Eu cheguei ao problema que cada GUI terá - renderização de texto. Eu sei de vários métodos de renderização de texto em OpenGL, no entanto, estou imaginando qual deles seria mais adequado para uma interface gráfica.

Geralmente, em uma GUI, temos dois tipos de texto - estático e ao vivo. Estático é bastante fácil - podemos renderizar um TTF para uma textura e esquecê-lo. É o texto "ao vivo" que mais me incomoda - imagine console, ou um chat ao vivo em um jogo multi-player.

Eu pensei em várias opções:

não há casos especiais - renderize e carregue uma textura cada vez que o texto for alterado, tendo em mente apenas o novo processamento quando realmente aparecer um novo texto e tentando dividir o texto maior em partes pequenas (como por linha de bate-papo). No entanto, isso ainda nos deixaria pendurado em casos como uma linha de pontuação que muda o tempo todo, ou um texto de introdução que renderiza "por personagem" (estilo de máquina de escrever visto em alguns jogos de ficção científica)quad-per character - isso também parece uma solução popular, você prepara uma textura com a tabela ASCII e renderiza um caractere quádruplo texturizado. No entanto, tenho sérias dúvidas sobre a eficiência de tal solução. Dicas de como tornar isso mais rápido também seriam bem-vindas.soluções híbridas - no entanto, não tenho ideia de como implementarlimpo

A questão é: como renderizar texto em OpenGL de forma eficiente?

Se isso ajudar, estou codificando em C ++ com STL / Boost e apontando para as placas gráficas GForce 6 e posteriores.

questionAnswers(7)

yourAnswerToTheQuestion