J'essaie d'apprendre OpenGL et d'améliorer mes compétences C++ en passant par le Nehe guides, mais tous les exemples sont pour Windows et je suis actuellement sur Linux. Je n'ai vraiment aucune idée de comment faire fonctionner les choses sous Linux, et le code sur le site qui a été porté pour Linux contient beaucoup plus de code qui n'est pas expliqué (jusqu'à présent, le seul que j'ai obtenu le travail est l'exemple SDL: http://nehe.gamedev.net/data/lessons/linuxsdl/lesson01.tar.gz). Existe-t-il d'autres ressources plus spécifiques à OpenGL sous Linux?Apprendre OpenGL dans Ubuntu
Répondre
La première chose à faire est d'installer les bibliothèques OpenGL. Je recommande:
freeglut3 freeglut3-dev libglew1.5 libglew1.5-dev libglu1-mesa libglu1-mesa-dev libgl1-mesa-glx libgl1-mesa-dev
Une fois que vous les avez installés, un lien vers eux lorsque vous compilez:
g++ -lglut -lGL -lGLU -lGLEW example.cpp -o example
En example.cpp, inclure les bibliothèques OpenGL comme ceci:
#include <GL/glew.h>
#include <GL/glut.h>
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glext.h>
Ensuite, , pour activer les options opengl plus avancées comme les shaders, placez ceci après votre appel glutCreateWindow:
GLenum err = glewInit();
if (GLEW_OK != err)
{
fprintf(stderr, "Error %s\n", glewGetErrorString(err));
exit(1);
}
fprintf(stdout, "Status: Using GLEW %s\n", glewGetString(GLEW_VERSION));
if (GLEW_ARB_vertex_program)
fprintf(stdout, "Status: ARB vertex programs available.\n");
if (glewGetExtension("GL_ARB_fragment_program"))
fprintf(stdout, "Status: ARB fragment programs available.\n");
if (glewIsSupported("GL_VERSION_1_4 GL_ARB_point_sprite"))
fprintf(stdout, "Status: ARB point sprites available.\n");
Cela devrait permettre toutes les fonctionnalités OpenGL, et si ce n'est pas le cas, il devrait vous indiquer les problèmes.
est-il un moyen d'obtenir la fonctionnalité opengl 4.5? ou au moins 4,1? –
'fprintf (stdout,"% s \ n ", glGetString (GL_VERSION));' sorties '3.0 Mesa 17.3.0-devel' bien que j'en ai 4.5 'Chaîne de version de profil de noyau OpenGL: 4.5 (Profil de base) Mesa 17.3.0-devel' –
Peut-être que vous voulez utiliser Qt pour dessiner les fenêtres et les widgets.
Here est un tutoriel sur la base des Nehe guides pour vous montrer comment créer des images OpenGL avec Qt.
Pour en savoir OpenGL, le OpenGL Red Book est un incontournable. Il y a une version en ligne. Il a de très bonnes explications et des exemples.
Je suppose que c'est le processus de compilation qui est la plus grande différence au départ. Voici un Makefile utile pour compiler des applications OpenGL simples sur Ubuntu.
INCLUDE = -I/usr/X11R6/include/
LIBDIR = -L/usr/X11R6/lib
FLAGS = -Wall
CC = g++ # change to gcc if using C
CFLAGS = $(FLAGS) $(INCLUDE)
LIBS = -lglut -lGL -lGLU -lGLEW -lm
All: your_app # change your_app.
your_app: your_app.o
$(CC) $(CFLAGS) -o [email protected] $(LIBDIR) $< $(LIBS) # The initial white space is a tab
Enregistrer ce trop un fichier appelé Makefile, et devrait être dans le même répertoire. Compiler en écrivant make à partir du terminal ou: make from Vim.
Bonne chance
une petite mise à jour pour le makefile parce que je trouve cette ancienne réponses de @Millthorn et il n'a pas travaillé: vous ne devez definde le chemin d'inclusion car il est dans la norme lib https://stackoverflow.com/a/2459788/1059828
un Makefile pour compiler un minimum GL ouvert pourrait ressembler à ceci:
LDFLAGS=-lglut -lGL -lGLU -lGLEW -lm
all: your_app
http://surflab.cise.ufl.edu/wiki/Getting_Started_with_OpenGL_in_Ubuntu
- 1. OpenGL/SDL problème dans Ubuntu
- 2. Apprendre OpenGL par Java
- 3. Scènes de fondu enchaîné dans OpenGL
- 4. Installation d'eclipse php dans ubuntu
- 5. Quels livres et ressources sont bons pour apprendre OpenGL ES pour iPhone OS rapidement?
- 6. Plusieurs fenêtres dans OpenGL?
- 7. Depth Buffer dans OpenGL
- 8. Draw Commande dans OpenGL
- 9. Problème d'éclairage dans OpenGL
- 10. OpenGL à OpenGL-ES - glBegin();
- 11. Créer les liens d'une chaîne dans OpenGL
- 12. Serait-il utile pour moi d'apprendre OpenGL?
- 13. Utiliser Boost sur Ubuntu
- 14. ubuntu et Virtual PC
- 15. Emacs - Initialisation Ubuntu
- 16. détection de navigateur Firefox dans Ubuntu
- 17. Comment installez-vous simplehtmldom dans ubuntu
- 18. Problème avec le plugin Eclipse dans Ubuntu
- 19. l'installation RMagick a échoué dans Ubuntu 9.04
- 20. Comment ajouter un utilisateur dans Ubuntu?
- 21. Comment lancez-vous Xilinx91i dans ubuntu?
- 22. où django s'installe-t-il dans ubuntu
- 23. Utilisation de Doxygen avec PHP dans Ubuntu
- 24. Wx.choice ne fonctionne pas dans Ubuntu
- 25. Perl Ora2Pg sur Ubuntu
- 26. Étrange problème d'écrêtage dans OpenGL
- 27. Auto-Référencement Renderbuffers dans OpenGL
- 28. Utiliser open2300 avec Ubuntu
- 29. Apprendre J/K/APL
- 30. Apprendre Invisible Caractéristiques
J'admets que les clôtures de sujets sur Stack Overflow deviennent un peu nazies, mais je suis sûr que beaucoup de gens ont ce problème; il serait mieux adapté à [GameDev StackExchange] (http://gamedev.stackexchange.com/) – cossacksman