Je viens de découvrir que GLUT est obsolète.
C'est ce qui se passe lorsque vous acceptez la première réponse que vous rencontrez; vous obtenez de mauvaises informations. GLUT 3.7 ne devrait pas être utilisé, mais FreeGLUT est complètement rétrocompatible avec lui.
Cependant, votre question va ailleurs. Pour créer un jeu réel, GLUT de forme * est inapproprié. Cela ne vous donne pas le contrôle de la boucle principale, et vous en avez vraiment besoin dans un jeu (FreeGLUT a un moyen de contrôler la boucle principale, mais c'est toujours étrange). GLUT est destiné à l'écriture de démos graphiques. C'est très important lors du test de nouveaux effets graphiques, il devrait donc être présent dans votre boîte à outils en cas de besoin. Mais votre code de jeu principal ne devrait jamais l'utiliser.
GLFW est une alternative légère centrée sur le jeu à GLUT. Il fournit un support de base pour des choses au-delà de la création d'une fenêtre OpenGL. Il vous permet d'obtenir des entrées, de charger des images sous forme de textures et quelques autres choses.
SDL , SFML et Allegro 5 sont tous des kits d'outils multimédias. Ils peuvent créer des fenêtres OpenGL, mais ils font bien plus que cela. Ils fournissent un support complet pour l'entrée, l'audio et divers autres éléments dont vous avez besoin pour créer un jeu. Si vous créez un jeu, n'importe lequel d'entre eux est un bon point de départ. Personnellement, j'aime Allegro 5, mais c'est juste mon parti pris pour une bonne documentation et une API propre.
Vous pouvez trouver une alternative à GLUT sur cette page:
http://www.opengl.org/resources/libraries/windowtoolkits/
À cela, j'ajouterais également SFML:
http://www.sfml-dev.org/index.php
la source
Si votre objectif est de développer un jeu,
Cela dépend si vous voulez que votre jeu soit multiplateforme ou non. Pour les jeux portables (Windows, Mac, Linux), SDL semble être le seul choix.
Si vous ne ciblez que Windows et / ou XBox, il existe de bien meilleures alternatives, par exemple XNA qui vous évite d'écrire beaucoup de code manuellement.
Si votre objectif est d'apprendre OpenGL,
Il suffit de programmer en OpenGL brut, mais préparez-vous à affronter de nombreux concepts peu intuitifs, des mathématiques et d'énormes manuels.
la source
GLUT est à la fois une API et une bibliothèque. La bibliothèque d'origine est en effet obsolète. L'API est quelque chose de différent, c'était assez bien pour commencer, il a juste besoin de révisions pour surmonter les limitations et répondre aux nouveaux besoins. La principale implémentation actuelle est FreeGLUT, qui est prise en charge et non obsolète. Cela signifie qu'une bonne alternative à GLUT (comme dans la bibliothèque GLUT) est GLUT (comme dans FreeGLUT).
Le problème noté ci-dessus avec le "contrôle de la boucle principale" est incorrect. Avec les nouvelles versions de GLUT, vous pouvez mieux contrôler votre boucle de jeu (si cela est important pour vous). La limitation a été fixée par glutMainLoopEvent (). Cette limitation et d'autres sont traitées ici:
http://en.wikipedia.org/wiki/OpenGL_Utility_Toolkit
la source
glutMainLoopEvent
n'est guère une bonne façon de gérer la boucle principale. Il utilise toujours un modèle événementiel pour vous alimenter en données, plutôt qu'un modèle d'interrogation où vous obtenez les données que vous voulez quand vous le souhaitez.Qt prend en charge OpenGL. Jetez un œil à Open Inventor et demandez-vous si cela vous semble logique d'aller directement à une API 3D de niveau supérieur.
la source