이득우의 게임 수학 - 39가지 예제로 배운다! 메타버스를 구성하는 게임 수학의 모든 것, 2022년 우수학술도서
이득우 지음 / 책만 / 2022년 2월
평점 :
장바구니담기


#게임수학 #게임 #수학 #이득우 #책만 #책만출판사 #메타버스 #수 #함수 #벡터 #삼각함수 #행렬 #아핀공간 #내적 #삼각형 #게임엔진 #3차원공간 #외적 #원근투영 #절두체 #복소수 #오일러공식 #사원수 #캐릭터 #이벤트

책만 출판사 페이스북에서 <이득우의 게임 수학> 책의 이벤트를 하는 것을 보게 되었다. 나는 과거에 공공기관에서 주관하는 <언리얼 엔진을 이용한 VR/AR 콘텐츠 개발>이라는 강의를 수강하고 간단한 VR 콘텐츠를 만들어 본 경험이 있었다. 그러나 내가 강의를 수강하고 VR 콘텐츠를 만들긴 했지만, 많이 허접하고 내 실력에 대해 부족함을 느꼈다. (특히 프로그래밍 언어인 C++이 어려웠다) 또 수업이 교재가 없이 진행되어 교재가 없는 것에 대해 아쉬움도 있었다. 이 책에는 메타버스 콘텐츠 제작을 위한 39가지 예제 구성과 최적화된 3D 가상 공간을 구축하는 데 사용되는 고급 기법, 프로그래밍 능력을 한 단계 높이기 위한 사원 수 등의 고급 수학 이론 등 내가 배우고 싶은 내용들이 수록되어있었고 책의 개발환경에서 C++ 언어를 사용해서 내가 어려워하는 C++ 언어도 공부할 수 있기 때문에 이러한 내용들을 책을 통해 열심히 배운다면 나의 VR 콘텐츠 개발 능력을 성장시킬 수 있다고 생각했다. 또 나는 게임과 수학을 관심이 많고 게임과 수학을 동시에 배울 수 있는 좋은 책이기 때문에 이 책을 꼭 읽고 공부하고 싶었다. 그래서 이벤트에 신청했고 당첨되어서 책을 받게 되었다.

책만 출판사 이벤트로 받은 <이득우의 게임 수학>

책의 저자-이득우

게임 및 IT 개발 분야에서 20년 가까이 일해왔으며, 지난 10년간 게임 엔진에 관련된 다양한 교육/저술 활동을 진행해왔다. 현재는 청강문화산업대학교에서 상용게임엔진을 활용한 콘텐츠 개발 방법과 수학을 기반으로 한 게임 엔진 제작 방법 등을 강의하며 메타버스 시대에 걸맞는 창작자와 개발자를 양성하고 있다. 2012년 유니티 테크놀로지스 코리아 설립 당시 초대 에반젤리스트로 합류해 게임 엔진에 관련된 폭넓은 교육 활동을 진행했고, 이후 언리얼 엔진에 대한 강의도 활발히 전개해 2017년도에는 언리얼 엔진의 제작사인 에픽 게임즈 본사가 공인한 우수 교육자로 선정된 바 있으며, 2022년에는 언리얼 공인강사Unreal Authorized Instructor 인증을 취득했다. 집필한 책으로는 『유니티 게임 개발의 정석』(2013, 이하 에이콘출판), 『이득우의 언리얼 C++ 게임 개발의 정석』(2018) 등이 있다.

책의 목차

1장 메타버스를 지탱하는 게임 수학

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

1.2 게임 엔진의 구성

1.3 게임 수학의 구성

1.4 이 책의 실습 환경 구축

__1.4.1 실습 예제 구성

__1.4.2 개발 환경의 구성

__1.4.3 소스 코드의 빌드

__1.4.4 소스 코드의 구성

1.5 정리

1부 | 가상 세계의 구축

2장 수: 가상 세계를 구성하는 가장 작은 단위

2.1 수와 집합

__2.1.1 연산과 수의 구조

__2.1.2 수의 구조

__2.1.3 수의 표현

2.2 함수

__2.2.1 함수의 개념과 종류

__2.2.2 합성함수

__2.2.3 항등함수와 역함수

__2.2.4 곱집합을 활용한 좌표 평면으로의 확장

2.3 정리

3장 벡터: 가상 공간의 탄생

3.1 데카르트 좌표계

3.2 벡터 공간과 벡터

__3.2.1 스칼라와 벡터

__3.2.2 벡터 공간의 연산

__3.2.3 벡터의 크기와 이동

3.3 벡터의 결합과 생성

3.4 정리

4장 삼각함수: 회전을 위한 수학

4.1 삼각함수

__4.1.1 삼각함수의 성질

__4.1.2 각의 측정법

4.2 삼각함수를 활용한 물체의 회전

4.3 삼각함수의 역함수

4.4 극좌표계

4.5 정리

5장 행렬: 가상 세계의 변환 도구

5.1 선형성: 예측 가능한 비례 관계

__5.1.1 선형 함수

__5.1.2 벡터 공간의 선형 변환

5.2 행렬

__5.2.1 행렬의 기본 연산

__5.2.2 행렬의 곱셈

__5.2.3 정방행렬의 곱셈

5.3 행렬의 설계

__5.3.1 크기 변환행렬

__5.3.2 회전 변환행렬

__5.3.3 전단 변환행렬

__5.3.4 삼각함수의 덧셈 정리

5.4 역행렬

__5.4.1 역행렬의 존재를 판별하는 행렬식

__5.4.2 크기 변환행렬의 역행렬

__5.4.3 전단 변환행렬의 역행렬

__5.4.4 회전 변환행렬의 역행렬

__5.4.5 행렬 곱의 역행렬

5.5 정리

2부 | 콘텐츠 제작 기초

6장 아핀 공간: 움직이는 가상 세계의 구축

6.1 이동 변환을 위한 아핀 공간

6.2 아핀 공간의 구성 요소

__6.2.1 점

__6.2.2 이동 벡터

__6.2.3 아핀 공간의 성질

6.3 아핀 결합

__6.3.1 두 점의 결합

6.4 선 그리기 알고리즘

__6.4.1 벡터를 모니터의 점으로 표현

__6.4.2 선 그리기 알고리즘

__6.4.3 라인 클리핑 알고리즘

6.5 정리

7장 내적: 벡터 공간의 분석과 응용

7.1 벡터의 내적

__7.1.1 내적의 성질

__7.1.2 내적과 삼각함수와의 관계

__7.1.3 행렬의 곱셈을 내적으로 표현하기

7.2 시야 판별

__7.2.1 앞뒤 판별

__7.2.2 시야 판별

7.3 조명 효과의 구현

7.4 투영 벡터

7.5 정리

8장 삼각형: 물체를 구성하는 가장 작은 단위

8.1 세 점의 결합

8.2 메시

8.3 무게중심좌표

__8.3.1 무게중심좌표의 계산

__8.3.2 정점에 설정된 부가 정보의 활용

8.4 텍스처 매핑

8.5 정리

9장 게임 엔진: 콘텐츠를 만드는 기술

9.1 게임 엔진의 구성 요소

__9.1.1 씬의 구조

__9.1.2 모델링 행렬의 설계

__9.1.3 로컬 공간과 로컬 축

__9.1.4 리소스 관리

9.2 게임 엔진의 워크플로우

__9.2.1 CK소프트렌더러의 워크플로우

__9.2.2 렌더링 파이프라인

9.3 카메라 시스템

__9.3.1 가상 공간의 카메라

9.4 정리

3부 | 3차원 콘텐츠 제작

10장 3차원 공간: 입체 공간의 생성

10.1 3차원 공간의 설계

10.2 3차원 공간의 트랜스폼

__10.2.1 오일러 각

__10.2.2 회전행렬의 유도

__10.2.3 3차원 모델링 행렬

10.3 카메라 공간

10.4 오일러 각의 특징

__10.4.1 짐벌락 현상

__10.4.2 회전 보간의 계산

10.5 정리

11장 외적: 3차원 공간의 분석과 응용

11.1 벡터의 외적

__11.1.1 평행성 판별

__11.1.2 법선 벡터

__11.1.3 좌우 방향 판별

11.2 벡터로부터 회전행렬 생성

11.3 렌더링 계산량을 줄여주는 백페이스 컬링

11.4 오일러 각의 문제를 해결하는 로드리게스 회전 공식

11.5 삼중곱

__11.5.1 스칼라 삼중곱

__11.5.2 벡터 삼중곱

11.6 정리

12장 원근 투영: 화면에 현실감을 부여하는 변환

12.1 원근 투영 변환의 원리

12.2 동차 좌표계

12.3 깊이 값

12.4 원근 보정 매핑

12.5 깊이 버퍼

12.6 정리

13장 절두체: 최적화된 3차원 공간

13.1 절두체 컬링

__13.1.1 평면의 방정식

__13.1.2 평면의 방정식의 정규화

__13.1.3 평면의 방정식을 활용한 절두체 표현

__13.1.4 원근 투영 행렬로부터 평면의 방정식 만들기

13.2 바운딩 볼륨

__13.2.1 구 바운딩 볼륨의 판정

__13.2.2 AABB와의 판정

13.3 삼각형 클리핑

13.4 정리

4부 | 4차원 수학과 캐릭터

14장 복소수: 2차원 평면의 수

14.1 복소수

__14.1.1 허수

__14.1.2 복소수의 구조

14.2 복소평면

__14.2.1 단위 복소수와의 곱

__14.2.1 켤레 복소수의 회전 변환

14.3 복소수와 행렬의 관계

14.4 정리

15장 오일러 공식: 허수로 표현하는 회전 변환

15.1 자연지수함수

__15.1.1 무리수 e

__15.1.2 자연지수함수

15.2 미분

__15.2.1 도함수

__15.2.2 자연지수함수의 도함수

__15.2.3 sin 함수와 cos 함수의 도함수

15.3 급수

__15.3.1 등비수열

__15.3.2 급수

__15.3.3 매클로린 급수

15.4 오일러 공식

15.5 정리

16장 사원수: 4차원 수로 설계한 3차원 회전

16.1 사원수 대수

__16.1.1 사원수를 구성하는 세 허수

__16.1.2 사원수의 구조

__16.1.3 사원수와 벡터

16.2 사원수의 회전

__16.2.1 사원수와 오일러 공식

__16.2.2 회전 사원수를 이용한 3차원 공간에서의 회전

16.3 사원수의 변환

__16.3.1 오일러 각에서 사원수로의 변환

__16.3.2 사원수에서 오일러 각으로의 변환

__16.3.3 사원수에서 회전 변환행렬로의 변환

__16.3.4 회전 변환행렬에서 사원수로의 변환

16.4 사원수의 보간

16.5 사원수의 활용

16.6 정리

17장 캐릭터: 게임에 생기를 불어넣는 기술

17.1 스켈레탈 애니메이션

17.2 트랜스폼 계층 구조

__17.2.1 트랜스폼 계층 구조의 변환

__17.2.2 로컬 트랜스폼으로부터 월드 트랜스폼의 계산

__17.2.3 월드 트랜스폼으로부터 로컬 트랜스폼의 계산

17.3 캐릭터 메시와 애니메이션

17.4 정리

책의 목차

책의 특징

이 책은 게임 엔진을 구성하는 수학과 동작 원리에 대해서 설명해준다. 게임 엔진 제작에 필요한 수학지식이 첨부되어 있으며 단계별로 39가지 예제를 실습하면서 2D, 3D 개발 기술을 익힌다. 또한 최적화된 3D가 가상 공간을 구축하는 데 사용되는 고급기법과 프로그래밍 능력을 한 단계 높이기 위한 사원수 등의 고급수학 이론도 배울 수 있다. 주로 선형대수학에 대해 배우며 그중에서도 컴퓨터 그래픽스에 특화된 선형대수학에 대해서 배운다. 수학을 게임 분야에서의 응용에 중점을 두고 학습한다.

책의 장점

이 책은 시각적인 자료가 많아서 이해하기가 쉽고 프로그래밍 코드 옆에 번호가 매겨있어서 번호의 의미를 보고 코드가 무엇을 의미하는지 이해할 수 있다. 다른 책들의 경우 코드만 적혀 있는 경우가 많아서 코드를 잘 이해하지 못하고 그냥 따라 치기만 한 경험이 많다. 이 책은 코드에 번호가 매겨져 있고 번호에 코드가 무슨 의미인지 알려줘서 학습하기 편리하다. 또 예제를 해보면서 컴퓨터 화면이 움직이는 것이 보이니 내가 어떤 명령을 내렸는지, 명령이 어떻게 시행되는지를 이해할 수 있었다. 또 책과 관련된 깃허브가 있어서 예제 코드를 다운받을 수도 있다. 또 책이 칼러로 깔끔하게 편집되어서 책을 읽기에도 편하다.



 




책 안에 시각적인 자료가 많아 이해하기 쉽다.

책의 일부 중

책 안의 수학 내용

코드에 번호가 매겨져 있고 번호가 무슨 의미인지 알려줘서 코드를 이해하기 편하다.

책의 후기

게임에 수학이 많이 쓰인다고는 들었지만, 실제로 어떤 수학이 많이 쓰이는지는 잘 몰랐다. 이 책으로 게임에서 쓰이는 수학을 알게 되었고, 게임과 관련된 수학 분야를 따로 더 공부해보고 싶다는 생각이 들었다. 어렵기도 했지만, 차근차근 예제를 하나하나씩 해보면서 이해했고 c++언어와 수학을 배울 수 있어서 좋았다. 언리얼 엔진을 사용할 때 c++언어를 사용할 줄 몰라 블루프린트 기능만 사용했는데 c++로도 한번 도전해봐야겠다. 이 책은 VR 콘텐츠를 제작하려고 3차원 가상 세계를 만들려 하는 사람, 게임엔진을 개발하고 싶은 사람, 선형대수학을 배우고 싶은 사람들에게 유용한 책이라는 생각이 든다.



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo