프로젝트 목록
실시간 렌더링 프로젝트 · 2024.09–11

OpenGL Rendering

모델·카메라·셰이더를 구현하고 지연 조명, 노멀 매핑, 반사·굴절로 확장한 OpenGL 렌더링 과제입니다.

C++OpenGLGLSLG-bufferNormal MappingCube Map
OVERVIEW

프로젝트 소개

수업 프레임워크에 모델·메시·카메라와 셰이더를 단계적으로 구현했습니다. 픽셀 색을 계산할 때 사용하는 위치·법선·광원의 좌표 공간을 직접 다뤘습니다.

전방 렌더링과 G-buffer 기반 지연 렌더링을 구성하고 노멀 맵과 큐브 맵을 이용해 표면·반사·굴절 표현을 확장했습니다.

MY CONTRIBUTION

담당한 구현

01

G-buffer와 두 단계 렌더링

위치·법선 등 조명 계산에 필요한 정보를 geometry pass에서 텍스처에 저장하고, light pass에서 읽어 조명을 계산합니다. G-buffer 텍스처 설정, 오브젝트 변환과 deferred geometry/light 셰이더를 작성했습니다.

02

카메라와 메시의 좌표 변환

카메라 이동과 view matrix, 오브젝트의 model-view 및 normal matrix를 계산했습니다. 절차적으로 큐브 메시를 만드는 코드와 광원 좌표 변환을 함께 구현해 같은 공간에서 조명 값을 계산하도록 연결했습니다.

03

표면과 환경 표현

UV와 표면 법선, bump-to-normal 변환을 다루고 노멀 매핑을 구현했습니다. 반사·굴절 구체 셰이더와 skybox, 거울·구체용 카메라 행렬 및 cube texture 설정까지 확장했습니다.

DELIVERED WORK

구현 결과

  • 5개 단계의 렌더링 과제와 파일·함수별 변경 기록
  • Forward / Deferred rendering · G-buffer · Normal mapping
  • Reflection / Refraction · Skybox · Camera matrices

수업 제공 프레임워크에서 렌더링 패스·셰이더·카메라 수학을 구현한 과제입니다.

다음 프로젝트WinSock Networking