Ich habe gerade herausgefunden, dass GLUT veraltet ist.
Das passiert, wenn Sie die erste Antwort akzeptieren, auf die Sie stoßen. Sie bekommen schlechte Informationen. GLUT 3.7 sollte nicht verwendet werden, FreeGLUT ist jedoch vollständig abwärtskompatibel.
Ihre Frage geht jedoch woanders hin. Für ein tatsächliches Spiel ist GLUT von * Form ungeeignet. Es gibt Ihnen keine Kontrolle über die Hauptschleife, und Sie brauchen das wirklich in einem Spiel (FreeGLUT hat eine Möglichkeit, die Hauptschleife zu kontrollieren, aber es ist immer noch seltsam). GLUT dient zum Schreiben von Grafikdemos. Dies ist sehr wichtig, wenn Sie neue grafische Effekte testen. Sie sollten sie daher bei Bedarf in Ihrer Toolbox haben. Ihr Hauptspielcode sollte ihn jedoch niemals verwenden.
GLFW ist eine spielbezogene, leichte Alternative zu GLUT. Es bietet grundlegende Unterstützung für Dinge, die über das Erstellen eines OpenGL-Fensters hinausgehen. Hier können Sie Eingaben abrufen, Bilder als Texturen laden und ein paar andere Dinge tun.
SDL , SFML und Allegro 5 sind Multimedia-Toolkits. Sie können OpenGL-Fenster erstellen, aber sie können noch viel mehr. Sie bieten volle Unterstützung für Eingabe, Audio und verschiedene andere Dinge, die Sie für ein Spiel benötigen. Wenn Sie ein Spiel machen, ist eines davon ein guter Ausgangspunkt. Ich persönlich mag Allegro 5, aber das ist nur meine Neigung zu guter Dokumentation und einer sauberen API.
Eine Alternative zu GLUT finden Sie auf dieser Seite:
http://www.opengl.org/resources/libraries/windowtoolkits/
Dazu würde ich auch SFML hinzufügen:
http://www.sfml-dev.org/index.php
quelle
Wenn Ihr Ziel ist, ein Spiel zu entwickeln,
Es hängt davon ab, ob Sie Ihr Spiel plattformübergreifend haben möchten oder nicht. Für tragbare Spiele (Windows, Mac, Linux) scheint SDL die einzige Wahl zu sein.
Wenn Sie nur auf Windows und / oder XBox abzielen, gibt es viel bessere Alternativen, z. B. XNA, mit dem Sie nicht viel Code manuell schreiben müssen.
Wenn Sie OpenGL lernen möchten,
Programmieren Sie einfach in OpenGL, aber stellen Sie sich vielen unintuitiven Konzepten, Mathematik und umfangreichen Handbüchern.
quelle
GLUT ist eine API sowie eine Bibliothek. Die ursprüngliche Bibliothek ist in der Tat veraltet. Die API ist eine andere Sache, es war ein guter Anfang, es sind nur Überarbeitungen erforderlich, um Einschränkungen zu überwinden und neue Anforderungen zu erfüllen. Die primäre aktuelle Implementierung ist FreeGLUT, die unterstützt wird und nicht veraltet ist. Das heißt, eine gute Alternative zu GLUT (wie in der Bibliothek GLUT) ist GLUT (wie in FreeGLUT).
Das oben mit "Steuerung der Hauptschleife" festgestellte Problem ist falsch. Mit neueren GLUT-Versionen haben Sie eine bessere Kontrolle über Ihre Spielschleife (wenn dies für Sie wichtig ist). Die Einschränkung wurde durch glutMainLoopEvent () behoben. Diese und andere Einschränkungen werden hier angesprochen:
http://en.wikipedia.org/wiki/OpenGL_Utility_Toolkit
quelle
glutMainLoopEvent
ist auch kaum ein guter Weg, um die Hauptschleife zu verwalten. Es wird weiterhin ein ereignisgesteuertes Modell zum Einspeisen von Daten verwendet, anstatt ein Abfragemodell, mit dem Sie die gewünschten Daten zum gewünschten Zeitpunkt abrufen können.Qt unterstützt OpenGL. Schauen Sie sich Open Inventor an und überlegen Sie, ob es für Sie sinnvoll ist, direkt zu einer übergeordneten 3D-API zu wechseln.
quelle