강의

멘토링

커뮤니티

로드맵 썸네일

그래픽스

작성자 프로필 이미지

김하은

OpenGL
glsl
fragment-shader

초급 대상

로드맵 참여중인 유저 프로필 사진

1명 참여중

조회수

7

로드맵 코스

제가 공부하려 만든것

컴퓨터 그래픽스의 세계에 오신 것을 환영합니다! OpenGL은 로우 레벨 그래픽스 API의 표준과도 같아서, 이를 배우면 Unity나 Unreal 같은 상용 엔진이 내부적으로 어떻게 작동하는지 깊이 이해할 수 있게 됩니다.

하지만 처음 시작할 때는 방대한 수학과 생소한 개념 때문에 길을 잃기 쉽습니다. 초심자부터 심화 단계까지 차근차근 밟아나갈 수 있는 체계적인 로드맵을 제안해 드립니다.


1단계: 준비 운동 (Prerequisites)

코드를 작성하기 전에 반드시 갖춰야 할 기초 체력입니다.

  • C++ 언어: OpenGL은 대부분 C++ 환경에서 학습합니다. 포인터, 클래스, 메모리 관리에 대한 이해가 필요합니다.

  • 선형대수학 (Linear Algebra): 그래픽스의 핵심입니다.

    • 벡터(Vector): 방향과 크기, 내적(Dot Product), 외적(Cross Product).

    • 행렬(Matrix): 이동, 회전, 크기 변환(Translation, Rotation, Scale).

  • 개발 환경 세팅:

    • IDE: Visual Studio 또는 CLion/VS Code.

    • 라이브러리: GLFW (창 생성 및 입력 처리), GLAD 또는 GLEW (OpenGL 함수 로더).

2단계: 삼각형 띄우기 (The Hello World)

그래픽스 프로그래밍에서 삼각형 하나를 화면에 띄우는 것은 일반 프로그래밍의 "Hello World"보다 훨씬 어렵지만, 가장 중요한 단계입니다.

  • 그래픽스 파이프라인 이해: 데이터가 GPU를 거쳐 화면의 픽셀이 되기까지의 과정.

  • VBO, VAO, EBO: 정점(Vertex) 데이터를 GPU 메모리에 보내고 관리하는 방법.

  • 쉐이더(Shaders - GLSL):

    • Vertex Shader: 정점의 위치를 결정.

    • Fragment Shader: 픽셀의 색상을 결정.

  • 목표: 검은 화면에 흰색(또는 컬러) 삼각형 하나를 띄우는 것.

3단계: 3D 공간으로의 확장

평면적인 삼각형을 넘어, 깊이가 있는 3D 세계를 구축합니다.

  • 텍스처(Textures): 이미지 파일을 불러와 도형에 입히는 방법 (UV 매핑).

  • 변환(Transformations): GLM 라이브러리를 사용하여 도형을 이동, 회전, 확대/축소하기.

  • 좌표계 (Coordinate Systems): 가장 헷갈리는 부분입니다.

    • Local Space $\rightarrow$ World Space $\rightarrow$ View Space (Camera) $\rightarrow$ Clip Space (Projection).

    • MVP 행렬 (Model, View, Projection)의 개념 확실히 잡기.

  • 카메라(Camera): 키보드/마우스로 3D 공간을 날아다니는 1인칭 카메라 구현.

4단계: 빛과 그림자 (Lighting)

3D 그래픽의 리얼리티는 '조명'에서 나옵니다.

  • 기본 조명 이론: 색상과 빛의 상호작용.

  • Phong Lighting Model: Ambient(주변광), Diffuse(확산광), Specular(반사광)의 이해.

  • 재질(Materials): 물체마다 빛에 반응하는 정도를 다르게 설정.

  • Light Maps: Diffuse Map과 Specular Map을 사용해 디테일한 질감 표현.

  • 광원의 종류: Directional Light(태양), Point Light(전구), Spot Light(손전등).

5단계: 중급 테크닉 (Intermediate)

이제 그럴싸한 3D 씬을 만들 수 있는 도구들을 배웁니다.

  • 모델 로딩 (Model Loading): 하드코딩된 큐브 대신, Blender 등에서 만든 복잡한 3D 모델 불러오기 (Assimp 라이브러리 활용).

  • 심도 테스트 & 스텐실 테스트: 물체의 앞뒤 관계를 판별하고 특정 영역만 그리기.

  • 블렌딩 (Blending): 투명한 유리창이나 풀잎 표현하기.

  • 프레임버퍼 (Framebuffers): 화면을 바로 출력하지 않고 텍스처로 저장하여 후처리(Post-processing) 효과 주기 (예: 흑백 필터, 흐림 효과).

6단계: 고급 조명과 효과 (Advanced Lighting)

사실적인 그래픽을 위한 고급 기술들입니다.

  • 그림자 매핑 (Shadow Mapping): 물체에 의해 생기는 그림자 구현.

  • 노멀 매핑 (Normal Mapping): 적은 폴리곤으로 표면의 굴곡을 디테일하게 표현.

  • HDR & Bloom: 눈부심 효과와 명암비 극대화.

  • Deferred Shading: 수백 개의 광원을 효율적으로 처리하는 렌더링 기법.

  • PBR (Physically Based Rendering): 물리 기반 렌더링. 현대 게임 엔진 그래픽의 표준입니다. (가장 어렵지만 결과물이 가장 좋습니다).

로드맵 상세보기

10개 코스

로드맵에 포함된 강의 썸네일
인프런
게임 개발자를 위한 3D 그래픽스, 쉐이더, OpenGL (9) - 스텐실, 커브&서피스, glTF
✅ 3D 그래픽스 프로그래밍: 기초부터 고급 응용까지
✅ GLSL Shading Language: 이론에서 실습까지 
✅ 9개의 시리즈 강의: (1) ~ (9)로 구성 : 완결 !

20,790

29,700

로드맵 코스 10