컴퓨터 그래픽스 수업에서 배운 OpenGL 3D 뷰잉 과정을 실습해 봄으로써 래스터화 기반의 실시간 렌더링 파이프라인에 관한 이해도를 높임에 목적이 있다. NVDIA에서 배포하는 3D장면 데이터(https://developer.nvidia.com/ue4-sun-temple)를 사용하여 기능을 확장하는 방식으로 진행한다.
- 가상의 세상에 다양한 모델링 변환을 통하여 3D 기하 물체들을 배치한다
- 가상의 카메라의 인자들을 키보드와 마우스를 사용하여 대화식으로 조작 가능하게 한다
다양한 물체들에 적절한 모델링 변환을 적용하여 가상의 세상에 돌아다니도록 한다
- 동적 사람 물체
- 직사각형의 궤적을 따라 가상의 세상에서 복도를 돌아다닌다
- 키보드와 마우스 동작을 통해 움직임과 멈춤을 조절할 수 있다
- 동적 호랑이 물체
- 원의 궤적을 따라 가상의 세상에서 돌아다닌다
- 키보드와 마우스 동작을 통해 움직임과 멈춤을 조절할 수 있다
- 특정 키보드 이벤트가 발생하면 움직임의 경로를 변경한다
- 정적 물체
- 로봇, 자전거, 개미, 고양이 등 여러 물체들을 적절한 모델링 변환을 통해 가상의 세상에 배치한다
- 세상 관찰 고정 카메라
- 가상의 세상에 카메라를 배치하여 고정된 장소에서 해당 공간을 감시하는 역할을 한다
- CCTV 형태로 해당 공간을 바라볼 수 있도록 카메라 위치와 방향 인자를 설정한다
- 키보드와 마우스 동작을 통해 카메라가 바라보는 방향과 줌인/줌아웃을 조절할 수 있다
- 세상 이동 카메라
- 키보드와 마우스 입력에 따라 가상의 3차원 공간을 자유롭게 이동할 수 있다
- 키보드와 마우스 동작을 통해 카메라가 상하/좌우/전후를 이동하고, 위아래/좌우 둘레로 자유롭게 회전하며 줌인/줌아웃을 조절할 수 있다
- 특정 물체 시점 카메라
- 가상의 세상에 배치하여 돌아다니는 동적 사람 물체의 시점에서 보이는 세상을 나타낸다
3D 장면 데이터를 활용하여 OpenGL API와 함께 실습해봄으로써 기하 파이프라인의 3D 뷰잉 과정을 더 심도있게 이해할 수 있었다. 다양한 키보드 마우스 이벤트가 발생함에 따라 적절하게 모델링 변환을 적용하여 가상의 세상에 사물을 배치하고, 가상의 카메라를 자유롭게 조절할 수 있음에 흥미를 느꼈다. 하지만 아직 동적 물체들과 가상 카메라의 움직임이 부드럽지 못하고, polygon으로만 물체를 나타낸 것에 아쉬움이 있다.