초급자들에게는 선형대수학의 기초를 친절히 설명하고 중급자들에게는 3차원 공간과 캐릭터를 제작하는 데 필요한 게임 수학의 원리와 그 응용 방법을 제시하는 책이다. 이 책에서는 이론을 설명하는 것에 그치지 않고, 단계별로 제공되는 39가지의 예제를 실습해 직접 게임 엔진을 만들어보면서 게임 엔진의 기본 원리와 구성을 배울 수 있다.
저자소개
게임 및 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 정리
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 정리