[이득우 게임수학] 1. 게임수학

    책을 시작하며

    이득우 교수님의 이전 언리얼 책을 보면서 쉽게 따라할수 있는 예제로 기초를 다지는데 도움이 되었다. 그래서 이번에 나온 책도 구매하여 읽게 되었다.

    1.1 메타버스가 가져올 새로운 변화

    // 중략

    1.2 게임 엔진의 구성

    게임을 기술적으로만 바라본다면 현실 세계를 복제하여 실시간으로 움직이는 3차원의 가상 세계라 말할 수 있고, 그 복제 과정을 쉽고 안정적으로 만들어주는 것이 게임 엔진 기술이다.
    렌더링(Rendering)이란 가상 공간을 이루는 수의 규칙을 분석하고 이를 빠르게 화면에 보여주기위한 작업이다. 초창기 그래픽카드는 단순히 화면을 출력하는 기능만 수행하였다. 그러다 GPU로 명칭이 변경되고 게임 제작에 특화된 기능이 탑재되면서 계속 진화 하게 되어 게임 뿐 아니라 인공 지능 사업에도 기여하고 있다.
    가상 세계에 관한 수학은 선형대수학(Linear algebra)의 일종이다. 일반적인 선형대수학은 해를 구하는 데 치중되어 있다면, 가상 세계에서의 선형대수학은 렌더링을 위한 공간의 구조를 분석하고 데이터를 다루는데 고도화되어 있다. 렌더링을 중심으로 관련 이론과 기법을 다루는 학문을 컴퓨터 그래픽스(Computer Graphics)라고 한다. 컴퓨터 그래픽스에서 게임 기술은 실시간 렌더링(Realtime rendring) 기술로 분류된다. 가상 공간을 다룰 때 쓰이는 수학을 벡터 수학(Vector Math)라고 한다.

    1.3 게임 수학의 구성

    게임 엔진을 지탱하는 데 사용되는 수학은 크게 3가지 범주로 분류한다.

    • 공간을 다루는 수학 (벡터) >> (행렬)
    • 물체를 다루는 수학 (점) >> (삼각형)
    • 회전을 다루는 수학 (삼각함수) >> (사원수)

    첫째, 공간을 다루는 수학은 가상 공간을 구축하고 변환하고 분석하는 데 사용되는 수학을 의미한다. 가상 공간은 벡터로 구성되며, 행렬이라는 도구를 사용하면 원하는 대로 변형이 가능하다.

    둘째, 물체를 다루는 수학은 물체의 외형을 설정하고 이를 모니터 화면에 표현하는 데 사용되는 수학을 말한다.

    셋째, 회전을 다루는 수학은 가상 공간에서 안정적인 회전 변환을 구현하는 데 사용되는 수학이다.

    1.4 실습환경 구축

    책의 공식 깃허브 페이지(https://github.com/onlybooks/gamemath)에서%EC%97%90%EC%84%9C) 받을 수 있다.

    개발환경 구성

    • 비주얼 스튜디오 2022/2019
    • CMake

    비주얼 스튜디오는 이미 깔려 있어서 CMake를 설치하였다.

    소스 코드의 빌드

    깃허브 페이지에서 다운 받아서 CMake-VS-16-2019.bat 파일을 실행하였다. 폴더내에 Project 폴더가 생겼고, SoftRenderer.slm 솔루션 파일을 열어 빌드를 하였고, 프로그램이 정상적으로 뜨는 것을 확인하였다.

    소스 코드의 구성

    입력에 대해 설명이 되어있는데 설명과 다른 부분이 있다.
    좌우화살표는 캐릭터를 좌우 회전하고, 위아래화살표는 캐릭터가 앞뒤로 이동한다.
    페이지 업과 페이지 다운이 확대 축소라고 되어있지만 아무런 동작이 없다.
    홈과 엔드키는 회전 혹은 기타용도라고 되어있으나 확대 축소 동작을 하고 있었다.

    요약

    • 게임 수학 구성에 대한 설명
    • 실습환경 구축

    출처

    반응형

    댓글

    Designed by JB FACTORY