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

OpenGL Rendering

OpenGL 수업 과제에서 모델·카메라·셰이더를 구현했습니다. G-buffer를 이용한 디퍼드 렌더링과 노멀 매핑, 큐브 맵 반사·굴절 효과를 추가했습니다.

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개 단계의 렌더링 과제와 파일·함수별 변경 기록
  • 포워드·디퍼드 렌더링 · G-buffer · 노멀 매핑
  • 반사·굴절 · Skybox · 카메라 행렬

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

다음 프로젝트WinSock Networking

포트폴리오 질문

질문 더 보기
최대 400자. Enter 전송, Shift+Enter 줄바꿈.