Я пытаюсь изучить OpenGL и улучшить свои навыки на С++, пройдя Nehe guide, но все примеры для Windows, и я сейчас в Linux. Я действительно не знаю, как заставить работу работать под Linux, а код на сайте, который был портирован для Linux, имеет больше кода в нем, который не объясняется (до сих пор я единственный, работа - это SDL: http://nehe.gamedev.net/data/lessons/linuxsdl/lesson01.tar.gz). Есть ли другой ресурс, который немного более специфичен для OpenGL под Linux?
Изучение OpenGL в Ubuntu
Ответ 1
Первое, что нужно сделать, это установить библиотеки OpenGL. Я рекомендую:
freeglut3 freeglut3-dev libglew1.5 libglew1.5-dev libglu1-mesa libglu1-mesa-dev libgl1-mesa-glx libgl1-mesa-dev
Как только вы их установили, соединитесь с ними при компиляции:
g++ -lglut -lGL -lGLU -lGLEW example.cpp -o example
В example.cpp включите библиотеки OpenGL, например:
#include <GL/glew.h>
#include <GL/glut.h>
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glext.h>
Затем, чтобы включить более продвинутые опции opengl, такие как шейдеры, поместите это после вызова 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");
Это должно включить все функции OpenGL, а если это не так, то это должно сообщить вам о проблемах.
Ответ 2
Я предполагаю, что именно процесс компиляции является самой большой разницей изначально. Вот полезный Makefile для компиляции простых приложений OpenGL на 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
Сохраните этот файл с именем Makefile и должен находиться в том же каталоге. Скомпилируйте, написав make из терминала или: сделайте из Vim.
Удачи.
Ответ 3
небольшое обновление для make файла, потому что я нашел эти старые ответы от @Millthorn, и это не сработало: вам не нужно указывать путь include, поскольку он находится в стандартном lib fooobar.com/questions/125709/...
минимальный make файл для компиляции открытого GL может выглядеть так:
LDFLAGS=-lglut -lGL -lGLU -lGLEW -lm
all: your_app
http://surflab.cise.ufl.edu/wiki/Getting_Started_with_OpenGL_in_Ubuntu
Ответ 4
Возможно, вы хотели бы использовать Qt для рисования окон и виджетов.
Здесь учебник, основанный на руководствах Nehe, чтобы показать вам, как создавать образы OpenGL с помощью Qt.
Чтобы узнать OpenGL, необходимо прочитать OpenGL Red Book. Там онлайн-версия. Он имеет очень хорошие объяснения и примеры.