ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 좋은 게임을 만드는 핵심원리 (게임수학과 물리)
    내 이야기/COM 북 2005. 8. 31. 05:09

    사용자 삽입 이미지

     

       
     
    좋은 게임을 만드는 핵심원리 (게임수학과 물리)


    최종현 외  | 한빛미디어
     

     

     

     

     

     


     
     ■ 부/장별 내용 요약
    3D 게임 개발은 일반적인 프로그래밍과 약간 다르다. 프로그램 자체에 대한 이해도 필요하지만, 현실 세계의 현상을 게임에 반영하기 위해서는 물리나 수학에 대한 지식이 필수적이다. 이 책은 게임 프로그래머의 길로 나가려는 사람이나 기초가 부족한 초급 게임 프로그래머에게 물리와 수학의 원리를 풀어 소개하고 있다. 그렇다고 다른 책들처럼 수식과 정의만으로 이야기를 끝내는 것이 아니라, 구현 내용을 실제 게임으로 보여주어 이론을 이해하는 데 한층 도움이 된다. - 김세진(트루웍스 기술 개발 이사)

    1장. 벡터
    수학 및 물리에서 가장 기본적으로 사용되는 것이 벡터다. 벡터는 3차원 그래픽스에서 카메라의 방향, 면의 방향, 광원의 방향 등 어떤 방향을 나타내는 요소로 쓰인다. 물리에서는 힘, 모멘트, 변위, 속도, 가속도 등이 벡터로 표현되기 때문에 가장 기초적으로 알아야 하는 내용이다.

    2장. 행렬
    그래픽스에서 행렬은 어떤 물체의 위치와 자세를 표현하는 수단이며, 임의의 점을 다른 위치로 이동시키거나 형상이 있는 물체의 방향을 변화시키기 위한 변환의 가장 기초적인 지식이다.

    3장. 변환
    3차원에서 어느 한 점(좌표) 또는 벡터를 다른 곳으로 이동시키는 방법에 대한 것이다. 변환에는 위치를 이동하는 이동 변환, 자세를 회전하는 회전 변환, 크기를 늘려주거나 줄여주는 크기 변환 등이 있다.

    4장. 사원수
    3차원 게임에서 회전 변환을 위해 행렬 대신에 많이 사용되는 개념이다. 캐릭터의 움직임을 애니메이션할 때 키 프레임간의 보간에 가장 일반적으로 사용되는 사원수를 알아본다.

    5장. 기하학
    점, 선, 평면에 대한 내용이다. 3D 게임에서는 어떤 캐릭터나 물체가 보이는지 여부를 판단하기 위해 가시성 판단이라는 방법을 사용하는데, 가시성 판단을 위해서는 점, 선, 평면간의 교차를 계산해야 한다. 또한 게임 물리에서 물체간의 충돌을 검사할 때도 점, 선, 평면의 기하학이 필요하다.

    6장. 카메라
    게임에서 어디를 볼 것인가 결정하는 방법을 카메라가 알고 있다. 게이머가 보고자 하는 영역을 보여주기 위해 필요한 수학 알고리즘을 설명하고, 가시성 판단에서도 필요한 시야 절두체의 계산을 위한 기본 수학을 설명하며, 1인칭 슈팅 게임에서 카메라의 적용 방법에 대해 알아본다.

    7장. 조명
    게임이 보다 현실감 있는 3차원 공간으로 게이머가 인식하게끔 물체와 공간에 입체감을 부여하는 중요한 역할을 수행하는 조명에 대해 설명한다. 실시간 3D 게임에서 조명 모델은 주변광, 분산 조명, 반영 조명으로 크게 나뉘며, 평면의 법선 벡터와 광원들과의 관계를 수학적으로 모델링하여 어떤 물체의 밝기와 색상을 결정한다.

    8장. 고급 렌더링
    조명 기법에 추가적으로 수행하여 좀더 현실감있는 3D 그래픽을 만들어 낼 수 있는 텍스처매핑에 대해서 설명한다. 최근의 3D 게임들을 보면 실사인지 게임인지 구분하기 어려울 정도로 게임 그래픽이 정교해지고 있다. 이러한 실사 같은 그래픽은 고급 텍스처 매핑을 사용하여 이루어진다. 최근 프로그래밍 가능한 그래픽 카드가 보급되어 셰이더라는 기능을 통해 기존에 정해진 조명 모델 외에 개발자가 새로운 조명 모델을 추가할 수 있게 되었다.

    9장. 가시성 판단
    게임 그래픽 개발자들 사이에서 통용되는 “가장 빠른 렌더링은 렌더링하지 않는 것이다.”라는 명제가 있다. 이 말은 게이머에게 보이지 않을 부분들을 미리 검사해서 화면에 표시하지 않는다는 의미로, 렌더링할 대상을 줄여 게임의 속도를 향상시킨다. 후면 제거와 시야 절두체에 의한 컬링 기법으로 대표되는 가시성 판단은 시야에 보이지 않는 대상을 골라내어 게임의 속도를 향상시키는 디딤돌이 된다.

    10장. 다각형 기법
    게임의 속도와 정교한 그래픽은 게임 성공을 위한 첫걸음이 된다. 이 두 마리 토끼를 잡기 위한 방법이 다각형 줄이기와 테셀레이션이다. 다각형 줄이기는 원 모델의 다각형 수를 줄여 속도를 빠르게 하는 방법으로, 테셀레이션은 다각형을 세분화하여 정교한 그래픽을 보여주는 방법으로 사용되고 있다.

    11장. 운동학
    게임 중에 움직이지 않는 것은 거의 없다. 일상생활에서 움직임 없이 무언가를 할 수 없듯이 움직임은 게임에서도 없어서는 안 될 기본적인 요소다. 입자와 같은 작은 물체의 단순한 움직임에서부터 로봇과 같이 여러 물체가 복잡한 구조를 갖는 요소에 이르기까지 모두 운동학을 통해 표현할 수 있다.

    12장. 동력학
    보다 사실적인 움직임을 표현하려면 동역학적 요소가 추가되어야 한다. 게임과 관계된 역학 문제를 풀 때 물체에 작용하는 힘과 이에 따른 운동학적 측면을 고려하여 물체의 운동을 기술하는 것에 대해 배워보자.

    13장. 발사체
    발사된 물체는 어떤 물리 현상에 영향을 받는지 알아본다. 발사체가 어떻게 날아가며, 날아가면서 어떠한 영향을 받는지 게임을 통해 익혀왔지만, 이제 그럴 필요가 없다.

    14장. 길찾기
    게임에서 직접적으로 조종되지 않는 적 캐릭터나 인공지능 유닛들이 스스로 장애물을 피해서 특정한 목적지를 찾아가도록 누군가가 도와줘야 한다. 이를 수행하는 것이 바로 길찾기 알고리즘이다.

    댓글