Je suis sur le point de reprendre une infographie pour un projet universitaire. Pour un projet précédent, j'ai utilisé une bibliothèque appelée FTGL qui ne m'a pas satisfait car elle me semblait un peu lourde (j'ai essayé beaucoup de techniques de rendu, le rendu de texte n'était pas très bien mis à l'échelle).
Ma question est, existe-t-il une bonne bibliothèque efficace pour cela? Sinon, quelle serait la façon de mettre en œuvre un texte rapide mais agréable à regarder? Certaines utilisations prévues sont:
- Étiquettes d'objets / caractères flottantes
- Dialogues
- Les menus
- HUD
EDIT: de préférence, il pourrait également charger des polices
Réponses:
L'interface graphique de Crazy Eddie est un framework populaire .
Mais bien que cela soit attrayant, il n'est pas inhabituel de rouler le vôtre (et peut-être le regrettera car la portée augmente plus tard;))
Il est normal d'avoir vos glyphes sur des bitmaps, puis de dessiner les bitmaps à l'aide d'OpenGL.
Parfois, vous affichez du texte transitoire qui ne peut apparaître que pour une poignée de cadres. Utiliser GL_QUADS + glVertex suffit. Mais pour toute grande quantité de texte ou toute longue durée de visibilité, il vaut la peine de mettre le GL_QUADS dans un VBO - j'ai remarqué de grandes améliorations de performances.
Il y a bien sûr la question de générer les glyphes réels dont vous avez besoin. Il existe des programmes comme bmfont que vous pouvez utiliser pour cela. Ou vous pourriez avoir besoin d'un rendu un peu plus compliqué, par exemple du freetype à la demande. J'ai utilisé bmfont avec mon propre moteur de rendu très heureusement, c'est très simple à déduire.
la source
Il y a beaucoup de façons - selon ce que vous voulez ... Comme partout ailleurs, il n'y a pas quelque chose comme "la meilleure solution". Quelle plate-forme est votre cible? Quelle langue utilisez-vous? Qu'en est-il du redimensionnement / rotation du texte - est-ce nécessaire? Avez-vous besoin de pouvoir rendre TrueTypeFonts? Qu'en est-il du multilingue / Unicode? Comment voulez-vous stocker votre texte (quel encodage etc.)?
J'ai utilisé dans le passé également FTGL, ainsi que du freetype pur (http://www.freetype.org/ FTGL est basé sur cela), différents types de polices bitmap, polices de contour ... Maintenant, je suis surtout accro au bitmap polices, mais c'est seulement ma préférence personnelle. Parce que je ne veux plus m'occuper de différents jeux de caractères, d'encodage et de trucs comme ça - et l'octroi de licences pour les bitmapfonts est également plus facile et moins cher que pour les TrueTypeFonts. Et son utilisable sur chaque plate-forme qui peut charger des images. J'utilise simplement un quad en openGL et mappe une partie de ma texture dessus. L'autre côté est le suivant: la police sera uniquement redimensionnable propre à un facteur d'environ +/- 50%. Si vous pouvez vivre avec cela, je suggère d'utiliser une police bitmap.
Si vous devez également gérer différents encodages / jeux de caractères, vous devez trouver un moyen de charger et d'utiliser TrueTypeFonts (comme avec freetype, en utilisant une autre bibliothèque ou avec votre propre implémentation) ...
Jetez également un œil aux différents didacticiels sur ce sujet:
http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=13 Polices bitmap
http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=14 Polices de contour
http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=15 Polices de contour mappées par texture
http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=17 Police de texture 2D
Bonne chance!
la source
Si vous souhaitez utiliser des polices bitmap, vous ne pouvez pas vous tromper avec le générateur de polices bitmap Angelcode: http://www.angelcode.com/products/bmfont/
Il convertit une police TrueType en une ou plusieurs textures (avec des glyphes bien emballés) et génère un petit fichier contenant les UV et les espacements (je trouve que la sortie XML est particulièrement facile à utiliser et la qualité des données d'espacement est généralement très bon, même sans vrai crénage)
la source
J'utilise les bibliothèques de Sean Barret pour rendre des glyphes de type vrai sous OpenGL (stb_image, stb_truetype).
Le projet Recast / Detour utilise ces bibliothèques pour créer une interface utilisateur ( IMUI )
la source
Considérez QML . Il s'agit d'une bibliothèque d'interface utilisateur entièrement fonctionnelle avec une syntaxe facile à utiliser. Son ensemble de fonctionnalités est nettement meilleur que CEGUI dans mon expérience, et il a une meilleure documentation, un meilleur support et une meilleure communauté car sa cible principale est les applications de bureau et la possibilité de rendre hors écran est juste une sorte de bonus.
Avantages:
Les inconvénients:
la source