본문 바로가기 주메뉴 바로가기

전체메뉴

국회도서관 홈으로 정보검색 소장정보 검색

목차보기

목차
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정리

이용현황보기

이용현황 테이블로 등록번호, 청구기호, 권별정보, 자료실, 이용여부로 구성 되어있습니다.
등록번호 청구기호 권별정보 자료실 이용여부
0002856039 794.81526 -22-2 서울관 서고(열람신청 후 1층 대출대) 이용가능
0002856040 794.81526 -22-2 서울관 서고(열람신청 후 1층 대출대) 이용가능
B000053263 794.81526 -22-2 부산관 주제자료실(2층) 이용가능

출판사 책소개

알라딘제공
39가지 실시간 렌더링 게임 프로그래밍 실습 예제를 하나씩 따라 해보며 독자가 직접 체득하는 흥미로운 게임 수학의 세계!
게임 개발자와 그래픽 아티스트들이 궁금해 했던 3D 가상 세계와 메타버스 구현을 위한 수학적 원리와 응용 기법!
취업과 이직을 원하는 개발자와 아티스트가 꼭 알아야 할 게임 수학의 모든 것!


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

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

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

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

책속에서

알라딘제공


챗봇 챗봇