이득우의 게임 수학 (39가지 예제로 배운다! 메타버스를 구성하는 게임 수학의 모든 것)

이득우의 게임 수학 (39가지 예제로 배운다! 메타버스를 구성하는 게임 수학의 모든 것)

$45.00
Description
39가지 실시간 렌더링 게임 프로그래밍 실습 예제를 하나씩 따라 해보며 독자가 직접 체득하는 흥미로운 게임 수학의 세계!
게임 개발자와 그래픽 아티스트들이 궁금해 했던 3D 가상 세계와 메타버스 구현을 위한 수학적 원리와 응용 기법!
취업과 이직을 원하는 개발자와 아티스트가 꼭 알아야 할 게임 수학의 모든 것!
초급자들에게는 선형대수학의 기초를 친절히 설명하고 중급자들에게는 3차원 공간과캐릭터를 제작하는 데 필요한 게임 수학의 원리와 그 응용 방법을 제시하는 책이다.이 책에서는 이론을 설명하는 것에 그치지 않고, 단계별로 제공되는 39가지의 예제를 실습해직접 게임 엔진을 만들어보면서 게임 엔진의 기본 원리와 구성을 배울 수 있다.
선정 및 수상내역
2022년 대한민국학술원 선정 교육부 우수학술도서

북 트레일러

  • 출판사의 사정에 따라 서비스가 변경 또는 중지될 수 있습니다.
  • Window7의 경우 사운드 연결이 없을 시, 동영상 재생에 오류가 발생할 수 있습니다. 이어폰, 스피커 등이 연결되어 있는지 확인 하시고 재생하시기 바랍니다.
저자

이득우

저자:이득우
게임및IT개발분야에서20년가까이일해왔으며,지난10년간게임엔진에관련된다양한교육/저술활동을진행해왔다.현재는청강문화산업대학교에서상용게임엔진을활용한콘텐츠개발방법과수학을기반으로한게임엔진제작방법등을강의하며메타버스시대에걸맞는창작자와개발자를양성하고있다.
2012년유니티테크놀로지스코리아설립당시초대에반젤리스트로합류해게임엔진에관련된폭넓은교육활동을진행했고,이후언리얼엔진에대한강의도활발히전개해2017년도에는언리얼엔진의제작사인에픽게임즈본사가공인한우수교육자로선정된바있으며,2022년에는언리얼공인강사UnrealAuthorizedInstructor인증을취득했다.
집필한책으로는『유니티게임개발의정석』(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.1CK소프트렌더러의워크플로우
__9.2.2렌더링파이프라인
9.3카메라시스템
__9.3.1가상공간의카메라
9.4정리

3부|3차원콘텐츠제작
10장3차원공간:입체공간의생성
10.13차원공간의설계
10.23차원공간의트랜스폼
__10.2.1오일러각
__10.2.2회전행렬의유도
__10.2.33차원모델링행렬
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.2AABB와의판정
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.3sin함수와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가지예제구성
-게임엔진을구성하는벡터수학과동작원리에대한충실한설명
-게임엔진제작에꼭필요한수학만발췌한효율적인구성
-수학을공부한지오래된개발자도처음부터시작할수있는기초제공
-단계별로제공되는39가지예제를실습하면서익히는실용적인2D,3D개발기술
-최적화된3D가상공간을구축하는데사용되는고급기법
-프로그래밍능력을한단계높이기위한사원수등의고급수학이론정리

|이책의대상독자|
-유저가자유롭게조종할수있는3차원가상세계를직접만들고싶은개발자
-게임엔진을직접만들어보고싶은게임개발자
-벡터를화면에시각화하는원리가궁금한테크니컬아티스트
-벡터,행렬로구성된선형대수학의기초를배우고싶은학생이나개발자,아티스트
-3차원그래픽과관련된기초이론을배우고싶은학생이나개발자,아티스트
-게임엔진이사용하는사원수체계와그구현방법이궁금한게임개발자

|이책의구성|
이책은수학의기초지식을배우거나다시정리하고싶은이들,혹은수학을중도포기한경험이있는게임개발자와그래픽디자이너들을위해집필했다.주된내용은선형대수학으로분류할수있겠으나,그중에서도컴퓨터그래픽스에특화된선형대수학이라고할수있겠다.이책은총4개부로구성되어있고,1부에서시작해점점완성도를높여나가4부에서마무리하도록순차적으로구성됐다.

이책의서막을여는1장‘메타버스를지탱하는게임수학’에서는메타버스로더욱발전하게될인터넷세상에서게임수학이왜필요한지에대한이야기를풀어봤다.
1부‘가상세계의구축’에서는수의질서로부터만들어지는가상공간의구조와,가상공간에서의변환의개념을이해해원하는대로공간의질서를바꾸는방법을다룬다.
2장‘수:가상세계를구성하는가장작은단위’에서는증명할필요가없는자명한명제인공리로부터수의구조를정의하고함수의기초개념과연산에대해배워본다.이어3장‘벡터:가상공간의탄생’에서는벡터공간을정의하고2차원벡터공간을배경으로연산과여러개념을학습해가상세계를구성하는기초이론을다진다.4장‘삼각함수:회전을위한수학’에서는벡터공간의회전변환을위해필수적으로알아야하는삼각함수를알아본다.1부의마지막5장‘행렬:가상세계의변환도구’에서는선형변환의개념을정립하고행렬을활용해벡터공간의변환을학습하는것으로마무리한다.

2부‘콘텐츠제작기초’에서는1부에서정리한수학이론을바탕으로콘텐츠를담는공간인아핀공간을정의하고아핀공간에서2차원게임을만드는데필요한구현방법을살펴본다.6장‘아핀공간:움직이는가상세계의구축’에서는선형변환의형태로이동,회전,크기변환을지원하는아핀공간과그구성요소를살펴본다.아핀공간에서정의한점들이모여선을이루는데,컴퓨터에서선을효과적으로그리는알고리즘도함께소개한다.7장‘내적:벡터공간의분석과응용’에서는벡터공간을분석하고다양한상황에적용할수있는연산인내적과그응용방법을배워본다.이와같이6장과7장에서콘텐츠제작에필요한수학적기반을확립한후,8장‘삼각형:물체를구성하는가장작은단위’부터는수학으로정의한삼각형을토대로가상공간의사물을형성하는방법을다룬다.이어지는9장‘게임엔진:콘텐츠를만드는기술’에서는다양한사물을한공간에모으고카메라를관리하는게임엔진의구조와실시간으로콘텐츠를그려내기위한워크플로우를소개한다.

3부‘3차원콘텐츠제작’에서는2부에서다룬2차원게임엔진구조를3차원으로확장시키는내용을담았다.10장‘3차원공간:입체공간의생성’에서는3차원공간을설계하는방법과3차원공간에서회전변환과카메라변환을구현하기위한방법과고려할사항을알아본다.3차원공간을분석하고응용하는연산인외적을학습하는11장‘외적:3차원공간의분석과응용’에서는,7장에서배운내적과함께응용해3차원공간에서활용할수있는다양한응용방법을살펴본다.12장‘원근투영:화면에현실감을부여하는변환’에서는3차원콘텐츠를표현할때필수적으로적용해야할원근감을구현하는방법과이로인해발생하는새로운문제와대처방법을배운다.그리고3부의마지막13장‘절두체:최적화된3차원공간’에서는평면의방정식을소개하고다수의평면을조합해절두체라는닫힌공간을수학적으로정의한후이를활용해시야에보이는물체만그려내는기법을다루면서3차원게임엔진을마무리한다.

4부‘4차원수학과캐릭터’에서는3부에서제작한3차원게임엔진에서회전변환을안정적으로구현하기위한수학과캐릭터를제작하는방법을다룬다.
3차원공간에서의변환이깔끔하게동작하기위해서는4차원공간의수인사원수를활용해회전변환을설계해야한다.사원수는대학교선형대수나공업수학에서도다루지않는생소한주제다보니,이를제대로학습하기위한교재나자료가충분하지않다.이책에서는밑바닥에서사원수를올바르게이해할수있는선행내용으로서14장‘복소수:2차원평면의수’에서는복소수,15장‘오일러공식:허수로표현하는회전변환’에서는오일러공식을다룬다.이를기반으로16장‘사원수:4차원수로설계한3차원회전’에서는사원수의구조를설명한후,실제게임엔진에적용할때필요한응용방법을총정리해서3차원게임엔진의기본기능을완성하도록구성했다.마지막으로,이책의대단원인17장‘캐릭터:게임에생기를불어넣는기술’에서는게임엔진에계층구조를구현하는방법을다루는데,이러한계층구조를활용해가상공간에서움직이는캐릭터를제작할수있도록그응용방법을알아본다.

|이책을활용하기위한개발환경|
수학을기반으로렌더링의모든과정을직접체험하고배울수있도록그래픽카드GPU를활용하지않고CPU프로그래밍에서모든것을다제작하도록교안을설계했다.이렇게GPU를사용하지않고컴퓨터그래픽을구현하는프로그램을보통소프트렌더러(Softrenderer)라부르는데,예제의이름은내가재직중인학교이름을따서CK소프트렌더러로지었다.CK소프트렌더러는CPU만으로동작하다보니현업실무에서사용하기에는적합하지않지만,렌더링의모든과정을직접구현해볼수있기때문에유용한학습교재라고할수있다.
렌더링속도를향상시키기위해다소진입장벽이높은C++언어를사용했고,윈도우10운영체제상의비주얼스튜디오2022와2019를기준으로예제를제작했다.예제를실습하기위해서는기본적으로C++프로그래밍능력이필요하지만,혹여독자가C++프로그래밍을몰라도결과를확인할수있도록완성된예제도함께제공한다.또한다음페이지에서는이책의실습예제를실행한전체예제의결과화면을한눈에볼수있다.혹시프로그래밍을잘몰라도게임제작에수학이어떻게활용되는지쉽게이해할수있을것이다.

〈실습예제결과화면미리보기〉
-https://bit.ly/math4game

|예제코드다운로드|
이책의특징은최종예제를만들어가는중간과정을모두정리해예제로제공한다는점이다.점을찍는것에서부터출발해2차원게임엔진을제작하고,3차원게임엔진으로확장하고캐릭터를만들어나가는순서대로총39개의예제를제공한다.이책의예제프로그램CK소프트렌더러는이책의깃허브에서내려받을수있다.깃허브에접속하면17장까지모두진행한최종완성예제를내려받아실행할수있다.
-github.com/onlybooks/gamemath