Ubuntu에서 OpenGL 프로그래밍 환경 구축하기
우분투에서 OpenGL을 이용해서 빨간 창을 띄우는 방법을 소개해드리려 합니다.
1. Ubuntu를 설치하세요
Ubuntu 홈페이지에서 Ubuntu를 받아 USB에 부트디스크를 만들어 우분투를 설치합니다.
검색을 해보면 많은 사람들이 이 방법에 대해 설명을 해놓았으니 참고하시면 좋겠습니다.
2. 종속성 다운로드
처음 시작하는 사람들에게 openGL은 interface라는것을 아는것이 중요합니다.
opengl에서 제공해주는 여러 라이브러리들(예) glew) 그래픽스 프로그래밍을 편리하도록 함수(인터페이스)를
제공해주는 것이지요.
이제 이 관련 라이브러리들(종속성)을 다운 받습니다.
터미널을 실행시키고 다음 명령어를 실행합니다.
sudo apt-get install cmake libx11-dev xorg-dev libglu1-mesa-dev freeglut3-dev libglew1.5 libglew1.5-dev libglu1-mesa libglu1-mesa-dev libgl1-mesa-glx libgl1-mesa-devsudo apt-get install cmake libx11-dev xorg-dev libglu1-mesa-dev freeglut3-dev libglew1.5 libglew1.5-dev libglu1-mesa libglu1-mesa-dev libgl1-mesa-glx libgl1-mesa-dev libglfw3-dev libglfw3
3. 개발 코드 예제 작성
이제 라이브러리들을 사용해서 예제 코드를 작성해봅시다.
아래 코드를 복사해서 main.cpp를 하나 만들어줍시다.
아래 코드는 작고 빨간 배경을 가진 윈도우를 그려주는 코드입니다.
#include <GL/glew.h>
#include <GL/glu.h>
#include <GLFW/glfw3.h>
#include <iostream>
static void error_callback(int error, const char* description)
{
fputs(description, stderr);
}
static void key_callback(GLFWwindow* window, int key, int scancode, int action, int mods)
{
if (key == GLFW_KEY_ESCAPE && action == GLFW_PRESS)
glfwSetWindowShouldClose(window, GL_TRUE);
}
int main(void)
{
GLFWwindow* window;
static const GLfloat red[] = {1.0f, 0.0f, 0.0f, 1.0f};
glfwSetErrorCallback(error_callback);
if (!glfwInit()) {
exit(EXIT_FAILURE);
}
window = glfwCreateWindow(640, 480, "Simple example", NULL, NULL);
if (!window)
{
glfwTerminate();
exit(EXIT_FAILURE);
}
glfwMakeContextCurrent(window);
glfwSetKeyCallback(window, key_callback);
glewExperimental=GL_TRUE;
GLenum err=glewInit();
if(err!=GLEW_OK)
{
//Problem: glewInit failed, something is seriously wrong.
std::cout<<"glewInit failed, aborting."<<std::endl;
}
while (!glfwWindowShouldClose(window))
{
glClearBufferfv(GL_COLOR, 0, red);
glfwSwapBuffers(window);
glfwPollEvents();
}
glfwDestroyWindow(window);
glfwTerminate();
exit(EXIT_SUCCESS);
}
그리고 makefile을 작성합시다.
# OBJS specifies which files to compile as part of the project
OBJS = main.cpp
# CC specifies which compiler we're using
CC = g++ -std=c++11
# COMPILER_FLAGS specifies the additional compilation options we're using
# -Wall will turn on all standard warnings
COMPILER_FLAGS = -Wall
# LINKER_FLAGS specifies the libraries we're linking against
LINKER_FLAGS = -lGL -lGLU -lglut -lGLEW -lglfw -lX11 -lXxf86vm -lXrandr -lpthread -lXi -ldl -lXinerama -lXcursor
# OBJ_NAME specifies the name of our exectuable
OBJ_NAME = main
#This is the target that compiles our executable
all: $(OBJS)
$(CC) $(OBJS) $(COMPILER_FLAGS) $(LINKER_FLAGS) -o $(OBJ_NAME)
4. 빌드 및 실행!
make && ./main
make && ./main
이후 실행된 프로그램을 볼 수 있습니다 :)
'프로그래밍' 카테고리의 다른 글
Python Selenium Tutorial (0) | 2021.07.10 |
---|---|
xps 9550 포맷 후 랜 카드 안잡힐 때 (0) | 2018.06.03 |
CUDA Tutorial 2 (2) | 2018.05.12 |
CUDA Tutorial 1 (0) | 2018.04.15 |
Windows 에러 핸들링, GetLastError (0) | 2017.12.28 |