game-1 님의 블로그

Open_GL 공부 본문

OpenGl

Open_GL 공부

game-1 2025. 1. 10. 21:57

예전에  open gl을 이용해서 space tank라는 게임을 제작했었는데

파일 분리도 제대로 안되고 너무 못만든 것 같아서,, ㅋㅋㅋㅋㅋ

부끄럽지만 한 번 다듬어 볼겸, 오픈지엘 공부와 함께 게임 제작과정을 블로그에 남겨보고자 합니다. 

오늘은 오픈지엘의 기본 개념과 필요한 정보들을 정리해 보았습니다. 

옛날에 만들었던 것 ㅋㅋ..

1. OpenGL의 기본 개념

  • 렌더링 파이프라인
  • 1.입력 데이터 (VAO, VBO)
    2.버텍스 셰이더
    3.테셀레이션 셰이더
    4.지오메트리 셰이더
    5.래스터화
    6.프래그먼트 셰이더
    7. Depth Test & Blending 
    8.프레임 버퍼 출력
  • 좌표계 이해: 로컬 → 월드 → 뷰 → 클립 → 스크린 좌표로 변환되는 과정 이해가 중요합니다.
  • 셰이더 프로그래밍: GLSL로 작성하며, 각 단계에서 데이터를 변환하고 처리하는 역할을 합니다.

2. 필수 라이브러리 및 도구

  • GLEW: OpenGL 확장 기능 로더.
  • GLFW: 창 및 입력 처리용 라이브러리.
  • GLM: 수학 라이브러리로, 벡터 및 행렬 연산을 지원합니다.
  • Assimp: 3D 모델 파일 로딩 라이브러리.
  • SOIL: 텍스처 로드 라이브러리.

3. 학습 자료 및 튜토리얼

  • OpenGL 공식 문서: Khronos OpenGL
  • Learn OpenGL: Learn OpenGL
  • OpenGL SuperBibleOpenGL Programming Guide(레드북) 같은 참고 서적.

4. 기능별 심화 학습

  • 조명: Phong, Blinn-Phong, PBR(Physically Based Rendering) 구현.
  • 텍스처 매핑: 2D/3D 텍스처, 큐브 맵, 텍스처 애니메이션.
  • 프레임 버퍼: 화면 이펙트(Post-processing) 구현.
  • 모델링: Assimp를 활용해 .obj, .fbx 모델 로드.
  • 물리: 물리 엔진과의 연동(Box2D, Bullet).

5. 성능 최적화

  • VAO/VBO 사용: 효율적인 데이터 관리.
  • Frustum Culling: 보이지 않는 객체 제외.
  • Instancing: 동일한 객체를 다수 렌더링할 때 성능 최적화.
  • 멀티스레드: 병렬 처리를 통해 CPU 활용률 증가.

6. 게임 제작을 위한 확장

  • UI 렌더링: ImGui와 같은 라이브러리 사용.
  • 오디오 처리: OpenAL 또는 FMOD 통합.
  • 네트워킹: SDL_net 또는 다른 네트워크 라이브러리.
  • 애니메이션: Skeletal Animation과 Morph Target Animation 학습.

 

'OpenGl' 카테고리의 다른 글

[open_GL] window에서 glew32.dll 파일 없는 문제  (0) 2025.01.21