2016-08-01 4 views
0

J'utilise actuellement la bibliothèque Freetype pour afficher du texte dans mon application opengl es 2.0 (ios et android) et j'en suis arrivé au point où je dois sérieusement considérer les performances. J'ai un stock de textures (une pour chaque caractère) et chaque fois que je rends du texte, le personnage appelle de cette zone de texture et ensuite opengl se lie à lui, le rend à l'écran ... Pour chaque lettre! Très inefficace. Donc, je cherche des moyens de rendre cela plus rapide, et l'une des idées que j'avais était de pré-rendre chaque mot au lieu de chaque lettre. Alors, maintenant pour la grande question: comment combiner des textures côte à côte? Je sais que je dois créer un tampon et que ça va venir de FT_LOAD_CHAR, mais je ne connais pas grand-chose d'autre.Opengl Combiner la texture côte à côte

+0

"* Très inefficace. *" Pourquoi est-ce inefficace? –

+0

Demandez-vous comment faire un png à partir d'autres pngs, ou comment dessiner seulement des parties d'un png combiné (texture "atlas")? –

+0

C'est très inefficace car il est relativement coûteux de lier une texture à OpenGL. Quand vous le faites pour chaque personnage ... pas bon. Essaie actuellement de suivre la réponse de Codetiger. – iHowell

Répondre

1

En fait, vous avez mal compris comment utiliser FreeType. Vous pouvez charger la police à l'aide de la bibliothèque FT et charger tous les caractères dans une texture bitmap unique. Ensuite, vous pouvez simplement utiliser les coordonnées de texture pour pointer le bon UV. Ce lien peut aider dans une certaine mesure. Draw FreeType Font in OpenGL ES