Skip to content

mingdyuo/OpenGL-Graphics-3D-world

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OPENGL-Graphics-3D-world

물체의 배치

  1. 정적인 물체 배치

    1. bike : 사람에게서 출발, 골대를 향하여 이동
    2. bus : 골대 역할을 하도록 여러 대를 배치
    3. ironman : 축구장 곳곳에 배치
  2. 동적인 물체 배치

    1. spider : 골키퍼 역할
    2. wolf : 축구장의 양 옆에서 파도처럼 움직임
    3. ben : 축구공을 차는 역할
  3. 정적인 물체의 움직임 생성

    bike가 축구공 역할을 하며, 사람이 현재 서 있는 위치에서 출발하여 골대까지 향한다. 골대를 지나가면 다시 사람의 현재 위치에서 새로 출발한다. 방향의 변화에 따라 현재 좌표의 이동과 더불어 오토바이 차체의 방향도 y축에 대하여 회전시켰다.

  4. 동적인 물체의 움직임 생성

    1. spider : 골대 주변에서 bike를 막기 위해 움직인다.
    2. wolf : 축구장 양 옆에서 파도타기를 한다.
    3. ben : 축구장 중앙부에서 리본 모양으로 이동하며, 축구공이 골대를 넘어가면 축구공을 새로 찬다.

광원의 배치

  1. 4개의 광원을 설정하였으며, 초기에 0,1번 광원은 켜져 있고, 2,3번 광원은 꺼져 있다.
  2. 0번 광원은 축구장을 전체적으로 밝혀주는 광원이고, 1번 광원은 골키퍼를 밝혀주는 광원이다.
  3. 2번 광원은 카메라에 고정되어 있는 붉은 색 조명이며, 카메라가 촬영하는 시선 방향과 조명의 방향이 일치하도록 하였다. 카메라의 시선이 이동하면 함께 이동한다.
  4. 3번 광원은 스폿 형태로 축구공 역할을 하는 오토바이에 배치하였다. 오토바이의 진행방향과 스폿 광원이 향하는 방향을 일치하도록 하였다. 오토바이가 전진할 때 함께 이동한다.

카메라의 움직임

  1. 카메라의 이동 0) 'm'을 누르면 양의 방향/음의 방향 이동을 토글할 수 있다. 초기 설정은 양의 방향이다.
    1. ','을 누르면 u축 방향으로 이동한다.
    2. '.'을 누르면 v축 방향으로 이동한다.
    3. '/'을 누르면 n축 방향으로 이동한다.
  2. 카메라의 회전 0) 'k'를 누르면 양의 방향/음의 방향 회전을 토글할 수 있다. 초기 설정은 시계 반대 방향이다.
    1. 'l'을 누르면 u축 방향으로 회전한다.
    2. ';'을 누르면 v축 방향으로 회전한다.
    3. '''을 누르면 n축 방향으로 회전한다.
  3. 줌인/줌아웃 : 'i'를 누르면 줌인, 'o'를 누르면 줌아웃이 실행된다. 줌 인을 할 때에는 fovy 값을 감소, 줌 아웃을 할 때에는 fovy 값을 증가시킨다. fovy 값이 가능하도록 한 범위는 최소 5.0에서 최대 100.0이다. 이 범위를 벗어나지 않는다.

새로운 텍스쳐

floor, bus, ironman, wolf, bike에게 새로운 texture를 적용하였다. 여기서 't' 버튼을 누를 때에는 ironman texture만 토글되도록 설정하였다. 't' 버튼을 누르면 총 세 가지 모드로 텍스쳐를 확인할 수 있다. 첫째로 custom 텍스쳐가 적용된 모습, 둘째로 ironman만 기존에 제공된 tiger 텍스쳐가 적용된 모습, 셋째로 어떠한 텍스쳐도 적용되지 않는 모습이다.


추가 기능

축구장 뒤쪽으로 새로운 사각형을 생성하고 텍스쳐를 입혀 배경 화면 효과가 나타나도록 하였다. 'r'키를 누르면 해당 배경이 사라진다.


기하 물체 정의 부분

  • Object.h에 물체의 데이터와 구현하는 함수가 나타난 클래스를 선언하였고, Object.cpp에서 해당 클래스에 대해 물체의 종류별로 저장할 데이터와 수행할 함수의 내용을 작성하였다.
  • Dynamic_Obj class 또한 Object.h, Object.cpp에 포함되어 있는데, 이 클래스는 Object 클래스를 상속하였고, frame에 대한 정보가 추가되었다

About

Making 3d world with openGL

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors