Je commence à apprendre OpenGL avec FreeGLUT en utilisant Superbible et les connaissances acquises grâce à mes graphiques élémentaires pour parfaire mes compétences.
Pour tirer davantage de cette expérience, je souhaite intégrer une interface graphique pour écraser celle utilisée par FreeGLUT. Ma question est la suivante: cette chose est-elle possible et quelle bibliothèque dois-je utiliser?
Quelques caractéristiques pour la bibliothèque:
- Open source
- Multiplateforme (Linux et Windows)
- C / C ++
Si vous avez d'autres recommandations, n'hésitez pas à les poster avec vos réponses à mon problème.
opengl
c++
gui
cross-platform
Cristina
la source
la source
Réponses:
Je n'ai pas encore essayé moi-même, mais cela semble très intéressant:
librocket
EDIT: Puisque vous aurez besoin d’un contexte pour effectuer le rendu, je vous recommanderais soit SFML, soit SDL 1.3.
la source
L’interface graphique de Crazy Eddie (CEGUI) est populaire, et vous pouvez créer un des moteurs de rendu existants ou écrire votre propre ciblage, quelle que soit l’API de votre choix basée sur OpenGL. Il est open source, multi-plateforme et C ++. Cependant, cela valorise la cohérence, qui n'est pas toujours un bon principe d'interface utilisateur pour les jeux, qui peuvent comporter des dizaines de contrôles personnalisés utilisés exactement au même endroit.
Un modèle populaire récent est l’interface graphique en mode immédiat (IMGUI) , qui est en quelque sorte une "bibliothèque sans interface graphique". Il a des avantages et des inconvénients - il est très simple, mais il peut être difficile d’optimiser, et je n’ai pas encore vu de très bons modèles IMGUI pour les contrôles avancés tels que les zones de liste déroulante ou les arborescences. Je n'ai pas non plus constaté de bonne mise en œuvre d'un système de fenêtrage IMGUI (et j'ai passé du temps à essayer d'en écrire un, ce qui ne m'a jamais plu): il est excellent pour les éléments simples du HUD, cependant, et simple à effectuer.
la source
Je suis récemment tombé sur Gwen . C'est une bibliothèque d'interface graphique écrite par l'auteur de Gary's Mod. Il est autorisé par le MIT comme toute bonne bibliothèque de jeux devrait l'être.
La bibliothèque a plusieurs objectifs.
Gwen est en développement depuis quelques années et cela se voit.
Ceci est un gros problème. La bibliothèque est livrée avec un moteur de rendu OpenGL reconstruit. Cependant, la création d'un moteur de rendu est assez simple pour que vous souhaitiez créer un moteur de rendu spécifique au système de rendu de votre jeu.
Gwen semble être du côté plus léger de l'interface graphique du jeu. Pas de XML, pas de rendu HTML, juste du C ++ simple. Gwen n'est pas livrée avec des chargeurs d'images non plus. Il attend que le moteur de rendu gère le chargement. J'aime cette fonctionnalité car elle garde la bibliothèque petite et que le système de rendu de mon jeu gère déjà les textures.
Pas la première chose dans vos jalons, mais vous devrez éventuellement personnaliser votre interface graphique pour votre jeu.
Je ne suis pas un développeur web et trouve les interfaces graphiques centrées sur les CSS CSS difficiles.
C'est gros pour les jeux. Il est toujours pénible d’utiliser des systèmes d’interface graphique qui souhaitent posséder la scrutation d’entrée.
La bibliothèque s'efforce d'être multiplate-forme, mais admet que vous pouvez rencontrer des problèmes sur des plates-formes moins utilisées.
En outre, il est beaucoup plus petit que CEGUI ou MyGUI, il est donc beaucoup plus pratique de le pirater ou de le soumettre.
Cependant, voici les inconvénients:
la source
Désolé pour la réponse tardive, mais vous voudrez peut-être jeter un coup d'œil sur un framework d'interface utilisateur OpenGL appelé GG . GG a été développé dans le cadre du projet FreeOrion et est inclus dans leur référentiel SVN (et leur SDK téléchargeable). Cela semble assez capable. J'ai inclus une capture d'écran ci-dessous; vous pouvez cliquer sur l'image pour voir la version complète.
la source
MyGUI est une bonne solution pour DirectX et OpenGL.
la source
Jetez un coup d’œil à AntTweakBar , il est utilisé par Cinder . Il existe également une nouvelle bibliothèque d'interface utilisateur graphique développée pour Cinder: SimpleGUI .
Si vous voulez utiliser HTML + CSS, il existe Awesomium (utilisé par Wolfire Games dans leur jeu Overgrowth ) et une alternative gratuite appelée Berkelium .
la source
J'ai tripoté QuickGUI et MyGUI . Ce sont deux bibliothèques d’interface graphique Ogre qui ont récemment abandonné l’exigence ogre. Je n'ai pas encore beaucoup d'expérience avec l'un ou l'autre, mais il semble que je vais rester avec QuickGUI, car il est beaucoup plus petit et plus simple.
Je ne sais pas si le wiki de QuickGUI a encore été mis à jour pour pointer vers la dernière version sans Ogre. Voici la dernière version.
http://www.stormsonggames.com/downloads/QuickGUI_10_8.zip
Il y a eu quelques mises à jour multi-plateformes dans le dépôt. Vous feriez donc mieux d'utiliser directement svn.
http://stormsonggames.com/svn/SSE/Gaia2/QuickGUI
http://stormsonggames.com/svn/SSE/Gaia2/QuickGUIOgreDemo
http://stormsonggames.com/svn/SSE/Gaia2/QuickGUIOGUIOgrePlatform
Nom d'utilisateur: anonyme
Mot de passe: QuickGUI
Enfin, voici un bref wiki sur la façon d’ajouter différents moteurs de rendu. http://www.ogre3d.org/tikiwiki/QuickGUI+Integration+Tutorial
MyGUI semble avoir plus de fonctionnalités au prix de gonflement. Et honnêtement, si la simplicité n’est pas une exigence, CEGUI jette MyGUI hors de l’eau.
la source
Je recommanderais QT, étant donné qu'il est multi-plateforme, C ++ et que vous pouvez en obtenir une version Open Source avec la licence LGPL. Il est également facile à utiliser et dispose de nombreux composants prédéfinis que vous pouvez utiliser.
la source
Les créateurs peuvent me tirer dessus pour l'avoir dit, mais j'ai trouvé que GLFW était tout simplement génial pour la création de cadres d'interface graphique multi-plateformes. Les gens du développement de GLFW ne cessent de parler de GLFW ne gère pas l’ interface graphique. Il ne fait cependant un travail agréable, simple, propre et totalement portable de manipulation graphiques, des événements et des tâches souris / clavier / joystick.
La bonne chose à propos de GLFW pour moi est qu’elle est assez petite, ne nécessite aucun code spécifique au système, pas de GLUT et est bien entretenue. A été stable pour une utilisation sur les projets OpenGL 4.1 jusqu'à présent. Comparé à quelque chose comme SDL, j'adore les frais généraux minimes et il était très facile d'écrire des classes de gestionnaires d'interface graphique.
Alternativement, jetez un coup d'oeil à FLTK . Il peut être utilisé pour toutes sortes de choses et reformulé très simplement. Il est vraiment utilisé pour la création d'applications, mais est parfaitement capable de gérer des objets 3D et est basé sur OpenGL. Très petit, bien pris en charge et même si je ne vois pas beaucoup de gens créer des interfaces personnalisées au niveau de la conception du jeu, certains semblent fonctionner parfaitement.
la source