그래픽스 프로그래밍(321190) 실습 #3

- 3D model loading & oglclass

(321190)

강사: 박경신

2009년 5월 19일

제출 방법: 2009년 6월 8일(월) 밤12시까지

(e-learning 강의실에 실행파일과 소스코드와 리포트를 전부 “학번이름_숙제3.zip”으로 묶어서 제출하도록 합니다. 또한, 소스코트 폴더에 .cpp만 담지 말고 비주얼 스튜디오에서 만든 프로젝트 폴더를 담기 바랍니다.)

참고자료: oglclass-fps.zip

http://en.wikipedia.org/wiki/First-person_shooter

1. Display window 크기는 1000 x 1000로 한다.

2. oglclass를 사용하여 미로 안을 돌아다니면서 괴물을 쏘는 Simple First Person Shooter 게임을 만든다. (30점)

-gluPerspective(90, 1, 0.1, 1000)를 사용한다.

-3단계의 게임 레벨 (초급, 중급, 고급)을 구축한다.

-4가지 이상의 괴물을 제작하고, 적어도 2단계 이상의 계층적 구조의 (즉, 부분적으로 다른) 움직임을 적용한다.

-벡터 클래스를 사용하여 3차원 환경에서 총알이 나올 수 있도록 Bullet 클래스를 수정한다. 그리고 총알이 괴물을 맞혔을 경우 점수 (Score)가 증가한다.

-카메라 클래스를 사용하여 자유롭게 시점 변환을 수행할 수 있도록 한다.

-게임 레벨에 따라서 더욱 복잡하게 움직이는 괴물 (Monster)들이 나타난다.

-게임 제한 시간 (3~5분 정도) 안에 모든 괴물(레벨1: 6개, 레벨2: 10개, 레벨3: 15개)을 맞추면, 레벨이 올라간다. 만약 괴물을 못 맞추었으면, 게임이 종료된다 (GAME OVER).

-텍스트 클래스를 사용하여 게임경과시간 (Elapsed Time), 현재점수(Score), 레벨(Level), 남아있는 괴물의 개수 (Enemies)를 화면에 출력한다.

3. 전체적인 장면에 3차원 모델 로딩, 조명, 재질, 텍스쳐를 사용하여 3차원 장면의 사실감을 더한다. (30점)

-obj model loader를 사용하여 3DMAX나 MAYA로 적어도 3가지 이상의 모델(텍스쳐가 있는)을 제작하여 게임 환경 안에 넣어준다. (단, 본인이 직접 제작하지 않고 가져왔을 시 그 출처를 밝힐 것)

4. 사운드 클래스 (OpenAL 라이브러리)를 사용하여 배경음악과 이벤트 사운드 추가 (10점)

5. 사람과 벽면이 충돌했거나 벽면에 총알이 맞은 경우를 처리했을 시 추가 점수 (extra 10점) 힌트: plane과 point 충돌검사를 사용

6. 창의성, 소스코드 주석처리, 리포트 (30점)