Je me suis mise en œuvre d'une interface graphique construite sur le toit d'OpenGL. Je suis venu pour le problème que chaque GUI ont -- rendu de texte. Je connais plusieurs méthodes de rendu de texte en OpenGL, cependant, je suis wonderin lequel d'entre eux serait le mieux adapté pour une interface graphique.
Généralement dans une interface graphique, nous avons deux types de texte -- statiques et en direct. Statique est assez facile, nous pouvons rendre une TTF à une texture et l'oublier. C'est le "live" de texte qui est plus à me tracasser ... imaginez la console, ou un chat en direct dans un jeu multi-joueurs.
J'ai pensé à plusieurs options:
- pas de cas particuliers -- rendu et de charger une texture à chaque fois que le texte change, tout en gardant à l'esprit alors rendre à nouveau quand de nouveau, le texte apparaît, et en essayant de diviser le texte plus grand dans les petites pièces (comme par chat en ligne). Cependant ce serait encore nous laisser suspendus dans les cas comme une ligne de score qui change tout le temps, ou un texte d'introduction qui rend "par le caractère" (machine à écrire de style vu dans certains de sci-fi jeux)
- quad-par caractère, elle semble également une solution populaire, vous préparez une texture avec la table ASCII, et de rendre une texture quad caractère. Cependant, j'ai de sérieux doutes sur l'efficacité d'une telle solution. Conseils sur la manière de faire que le plus rapide serait également la bienvenue.
- les solutions hybrides -- cependant je n'ai aucune idée de comment le mettre en œuvre que proprement
La question est donc: comment rendre le texte en OpenGL efficacement?
(si cela aide, je code en STL/Boost-lourds C++ et visant à GForce 6 et, plus tard, les cartes graphiques)
Toutes les suggestions de bienvenue.