상세 컨텐츠

본문 제목

SCOP : 빌드 환경 설정 및 기본 구조 준비 - (3)

Computer Graphics/SCOP

by Banjosh 2024. 9. 19. 13:45

본문

이번 글에서는 SCOP 프로젝트의 시작인 빌드 환경 구성과 초기 OpenGL 설정 과정을 다루고자 한다. 

1. GitHub Repository 생성

프로젝트 시작을 위해 GitHub에 SCOP 프로젝트 저장소를 생성했다.

 

GitHub - seonjo1/SCOP

Contribute to seonjo1/SCOP development by creating an account on GitHub.

github.com

 

2. 빌드 환경 구성

이전에 OpenGL을 공부할 때는 CMake를 사용해 필요한 라이브러리를 추가하고, Visual Studio 프로젝트를 생성하여 프로그램을 실행했다. 그러나 이번 과제에서는 Makefile을 사용하라는 요구사항이 있어, 기존에 CMake extension으로 진행했던 configbuild 과정을 Makefile로 대체하여 진행할 예정이다.  

Makefile 작성

CMake로 configbuild를 수행한 후, 빌드된 실행 파일을 현재 폴더로 옮기는 작업을 해주는 Makefile을 작성하였다. 이로써 Visual Studio 환경에서의 편리함을 유지하면서도, 과제에서 요구한 Makefile 사용 조건을 충족시킬 수 있게 되었다.

라이브러리 구성

프로젝트에서는 다음과 같은 라이브러리들을 추가하였다:

  • GLFW: 창 생성 및 이벤트 처리를 위한 라이브러리
  • GLAD: OpenGL 함수 로딩을 담당
  • spdlog: 로그를 관리하여 디버깅을 편리하게 해주는 라이브러리

이 라이브러리들을 CMake 설정에 추가하고, Makefile로 프로젝트의 빌드 과정을 관리하였다.

3. 창 띄우기 및 초기 OpenGL 설정

빌드 환경이 설정된 후, OpenGL을 이용해 창을 띄우고 초기 설정을 진행하였다. 아래는 주요 작업들이다.

1. GLFW 초기화

  • GLFW 라이브러리를 사용해 창을 생성하고 이벤트 처리 설정을 진행하였다.
  • glfwWindowHint 함수로 OpenGL 컨텍스트 버전을 3.3으로 설정하고, Core Profile을 활성화했다.

2. GLAD로 OpenGL 함수 로딩

  • GLAD를 사용해 OpenGL 함수들을 로딩했다. 이를 통해 OpenGL 함수를 호출할 수 있게 되었다.

3. 이벤트 처리

  • 키 입력 및 창 크기 조정과 같은 이벤트를 처리하기 위해 key eventframebuffer size event 콜백을 등록했다.

4. 렌더링 루프 생성

  • 설정이 완료된 후, 기본적인 렌더링 루프를 생성하여 OpenGL이 정상적으로 실행되는지 확인했다.
  • glfwPollEvents와 glfwSwapBuffers를 사용하여 화면을 갱신하고, 이벤트를 처리하는 구조로 만들었다.

 

openGL window 띄우기 성공 화면


 

프로젝트 초기 설정을 성공적으로 완료했으며, 이제 다음 단계로 GLM, STB, ASSIMP와 같은 추가 라이브러리를 대체할 작업을 진행할 예정이다.

관련글 더보기