Skip to content

seoooa/ComputerGraphics-Project3

Repository files navigation

OpenGL API를 활용한 3D 뷰잉 구현 프로젝트

프로젝트 소개

목적

컴퓨터 그래픽스 수업에서 배운 OpenGL 3D 뷰잉 과정을 실습해 봄으로써 래스터화 기반의 실시간 렌더링 파이프라인에 관한 이해도를 높임에 목적이 있다. NVDIA에서 배포하는 3D장면 데이터(https://developer.nvidia.com/ue4-sun-temple)를 사용하여 기능을 확장하는 방식으로 진행한다.

  • 가상의 세상에 다양한 모델링 변환을 통하여 3D 기하 물체들을 배치한다
  • 가상의 카메라의 인자들을 키보드와 마우스를 사용하여 대화식으로 조작 가능하게 한다

기능

물체의 배치 및 움직임 구현

다양한 물체들에 적절한 모델링 변환을 적용하여 가상의 세상에 돌아다니도록 한다

  1. 동적 사람 물체
    • 직사각형의 궤적을 따라 가상의 세상에서 복도를 돌아다닌다
    • 키보드와 마우스 동작을 통해 움직임과 멈춤을 조절할 수 있다
  2. 동적 호랑이 물체
    • 원의 궤적을 따라 가상의 세상에서 돌아다닌다
    • 키보드와 마우스 동작을 통해 움직임과 멈춤을 조절할 수 있다
    • 특정 키보드 이벤트가 발생하면 움직임의 경로를 변경한다
  3. 정적 물체
    • 로봇, 자전거, 개미, 고양이 등 여러 물체들을 적절한 모델링 변환을 통해 가상의 세상에 배치한다

가상 카메라의 배치 및 조절 기능 구현

  1. 세상 관찰 고정 카메라
    • 가상의 세상에 카메라를 배치하여 고정된 장소에서 해당 공간을 감시하는 역할을 한다
    • CCTV 형태로 해당 공간을 바라볼 수 있도록 카메라 위치와 방향 인자를 설정한다
    • 키보드와 마우스 동작을 통해 카메라가 바라보는 방향과 줌인/줌아웃을 조절할 수 있다
  2. 세상 이동 카메라
    • 키보드와 마우스 입력에 따라 가상의 3차원 공간을 자유롭게 이동할 수 있다
    • 키보드와 마우스 동작을 통해 카메라가 상하/좌우/전후를 이동하고, 위아래/좌우 둘레로 자유롭게 회전하며 줌인/줌아웃을 조절할 수 있다
  3. 특정 물체 시점 카메라
    • 가상의 세상에 배치하여 돌아다니는 동적 사람 물체의 시점에서 보이는 세상을 나타낸다

성과 및 회고

3D 장면 데이터를 활용하여 OpenGL API와 함께 실습해봄으로써 기하 파이프라인의 3D 뷰잉 과정을 더 심도있게 이해할 수 있었다. 다양한 키보드 마우스 이벤트가 발생함에 따라 적절하게 모델링 변환을 적용하여 가상의 세상에 사물을 배치하고, 가상의 카메라를 자유롭게 조절할 수 있음에 흥미를 느꼈다. 하지만 아직 동적 물체들과 가상 카메라의 움직임이 부드럽지 못하고, polygon으로만 물체를 나타낸 것에 아쉬움이 있다.

About

OpenGL 라이브러리를 활용한 렌더링 구현

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published