logo
logo
x
바코드검색
BOOKPRICE.co.kr
책, 도서 가격비교 사이트
바코드검색

인기 검색어

실시간 검색어

검색가능 서점

도서목록 제공

게임 물리 엔진 개발

게임 물리 엔진 개발

이안 밀링턴 (지은이), 김도균, 진석준, 박종규 (옮긴이)
지&선(지앤선)
38,000원

일반도서

검색중
서점 할인가 할인률 배송비 혜택/추가 실질최저가 구매하기
알라딘 로딩중
yes24 로딩중
교보문고 로딩중
11st 로딩중
영풍문고 로딩중
쿠팡 로딩중
쿠팡로켓 로딩중
G마켓 로딩중
notice_icon 검색 결과 내에 다른 책이 포함되어 있을 수 있습니다.

중고도서

검색중
서점 유형 등록개수 최저가 구매하기
알라딘 판매자 배송 6개 95,000원 >
로딩중

eBook

검색중
서점 정가 할인가 마일리지 실질최저가 구매하기
로딩중

책 이미지

게임 물리 엔진 개발
eBook 미리보기

책 정보

· 제목 : 게임 물리 엔진 개발 
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 게임 프로그래밍
· ISBN : 9788993827040
· 쪽수 : 640쪽
· 출판일 : 2016-01-25

책 소개

여러 수학적인 문제를 풀어야 하는 게임 엔진 개발 과정을 자세히 다루고 있는 책. 이 책은 게임에 바로 적용할 수 있는 수준의 완벽한 물리 엔진을 기초부터 고 난이도까지의 전 과정을 자세하게 소개하고 있다.

목차

CHAPTER 1 소개
1.1 게임 물리란 무엇인가… ………………………………………………… 2
1.2 물리 엔진이란 무엇인가… ……………………………………………… 3
1.2.1 물리 엔진의 장점… …………………………………………………… 4
1.2.2 물리 엔진의 약점… …………………………………………………… 5
1.3 물리 엔진으로의 접근방법………………………………………………… 6
1.3.1 물체의 종류… ………………………………………………………… 6
1.3.2 접촉 해소… …………………………………………………………… 7
1.3.3 충격량과 힘… ………………………………………………………… 8
1.3.4 만들고자 하는 것… …………………………………………………… 9
1.4 물리 엔진에서의 수학…………………………………………………… 10
1.4.1 알아야 할 수학… ……………………………………………………… 11
1.4.2 살펴볼 수학 연산… …………………………………………………… 12
1.4.3 이 책에서 다룰 수학 내용……………………………………………… 13
1.5 이 책의 소스코드………………………………………………………… 13
1.6 이 책의 구성……………………………………………………………… 15
1.6.1 연습문제와 프로젝트… ……………………………………………… 15

01 P A R T 입자 물리학

CHAPTER 2 입자 수학
2.1 벡터… …………………………………………………………………… 19
2.1.1 왼손 좌표계 vs 오른손 좌표계………………………………………… 24
2.1.2 벡터와 방향… ………………………………………………………… 26
2.1.3 스칼라와 벡터의 곱셈… ……………………………………………… 29
2.1.4 벡터의 덧셈과 뺄셈… ………………………………………………… 31
2.1.5 벡터의 곱셈… ………………………………………………………… 34
2.1.6 성분 곱셈… …………………………………………………………… 34
2.1.7 벡터의 내적… ………………………………………………………… 35
2.1.8 벡터곱…………………………………………………………………… 38
2.1.9 정규직교 기저… ……………………………………………………… 42
2.2 미적분학… ……………………………………………………………… 44
2.2.1 미분……………………………………………………………………… 44
2.2.2 적분……………………………………………………………………… 50
2.3 요약… …………………………………………………………………… 52
2.4 연습문제… ……………………………………………………………… 53

CHAPTER 3 운동법칙
3.1 입자… …………………………………………………………………… 58
3.2 운동 제1법칙과 제2법칙… …………………………………………… 59
3.2.1 힘 방정식… …………………………………………………………… 61
3.2.2 입자에 질량을 적용하기… …………………………………………… 62
3.2.3 운동량과 속도… ……………………………………………………… 64
3.2.4 중력……………………………………………………………………… 64
3.3 적분기… ………………………………………………………………… 66
3.3.1 업데이트 방정식… …………………………………………………… 67
3.3.2 완전한 형태의 적분기… ……………………………………………… 70
3.4 요약… …………………………………………………………………… 71
3.5 연습문제… ……………………………………………………………… 72

CHAPTER 4 입자 물리 엔진
4.1 탄도학… ………………………………………………………………… 75
4.1.1 발사체 속성 지정… …………………………………………………… 76
4.1.2 구현……………………………………………………………………… 78
4.2 불꽃놀이… ……………………………………………………………… 81
4.2.1 불꽃 데이터… ………………………………………………………… 81
4.2.2 불꽃놀이 계산 규칙… ………………………………………………… 82
4.2.3 구현……………………………………………………………………… 85
4.3 요약… …………………………………………………………………… 89
4.4 프로젝트… ……………………………………………………………… 89

02 P A R T 질량 집합 물리

CHAPTER 5 Aing General Forces
5.1 달랑베르의 원리………………………………………………………… 93
5.2 힘 발생기………………………………………………………………… 96
5.2.1 인터페이스와 다형성… ……………………………………………… 98
5.2.2 구현……………………………………………………………………… 98
5.2.3 중력 힘 발생기… …………………………………………………… 102
5.2.4 드래그 힘 발생기… ………………………………………………… 103
5.3 내장 중력과 댐핑………………………………………………………… 105
5.4 요약… …………………………………………………………………… 105
5.5 연습문제… ……………………………………………………………… 106

CHAPTER 6 스프링과 스프링 유사 물체
6.1 후크의 법칙……………………………………………………………… 107
6.2 스프링 힘 발생기………………………………………………………… 110
6.2.1 기본적인 스프링 힘 발생기………………………………………… 111
6.2.2 고정 스프링 힘 발생기……………………………………………… 113
6.2.3 탄성 고무줄 힘 발생기……………………………………………… 115
6.2.4 부력 힘 발생기… …………………………………………………… 117
6.3 뻣뻣한 스프링…………………………………………………………… 121
6.3.1 뻣뻣한 스프링 문제… ……………………………………………… 122
6.3.2 뻣뻣한 스프링을 흉내 내기………………………………………… 124
6.4 요약… …………………………………………………………………… 131
6.5 연습문제… ……………………………………………………………… 132

CHAPTER 7 강성 제약 조건
7.1 단순 충돌 해소…………………………………………………………… 135
7.1.1 접근 속도… ………………………………………………………… 136
7.1.2 반발 계수… ………………………………………………………… 137
7.1.3 충돌의 방향과 접촉 법선…………………………………………… 138
7.1.4 충격량 … …………………………………………………………… 140
7.2 충돌 처리………………………………………………………………… 142
7.2.1 충돌 검출… ………………………………………………………… 145
7.2.2 겹치는 부분의 해결… ……………………………………………… 146
7.2.3 정지 접촉… ………………………………………………………… 151
7.3 접촉 처리기 알고리즘…………………………………………………… 156
7.3.1 접촉 처리 순서… …………………………………………………… 157
7.3.2 시분할 엔진… ……………………………………………………… 161
7.4 충돌과 비슷한 것들……………………………………………………… 163
7.4.1 끈……………………………………………………………………… 163
7.4.2 막대기………………………………………………………………… 166
7.5 요약… …………………………………………………………………… 169
7.6 연습문제… ……………………………………………………………… 169

CHAPTER 8 질량 집합 물리 엔진
8.1 엔진 개요………………………………………………………………… 173
8.2 물리 엔진의 사용………………………………………………………… 179
8.2.1 출렁다리와 끈… …………………………………………………… 179
8.2.2 마찰…………………………………………………………………… 181
8.2.3 BLOB 게임…………………………………………………………… 181
8.3 요약… …………………………………………………………………… 182
8.4 프로젝트… ……………………………………………………………… 183

03 P A R T Rigid-Body Physics

CHAPTER 9 물체의 회전
9.1 2D에서 물체의 회전… ………………………………………………… 188
9.1.1 회전각………………………………………………………………… 188
9.1.2 각속도………………………………………………………………… 190
9.1.3 질량 중심과 원점… ………………………………………………… 191
9.2 3차원에서의 방향… …………………………………………………… 196
9.2.1 오일러 각… ………………………………………………………… 197
9.2.2 회전축과 회전각… ………………………………………………… 200
9.2.3 회전 행렬… ………………………………………………………… 201
9.2.4 사원수………………………………………………………………… 202
9.3 각속도와 각가속도… …………………………………………………… 205
9.3.1 점의 속도……………………………………………………………… 207
9.3.2 각가속도… …………………………………………………………… 207
9.4 코드로 구현하기… ……………………………………………………… 208
9.4.1 행렬 클래스…………………………………………………………… 208
9.4.2 행렬의 곱셈…………………………………………………………… 210
9.4.3 역행렬과 전치 행렬… ……………………………………………… 221
9.4.4 사원수를 행렬로 변환… …………………………………………… 229
9.4.5 벡터의 변환…………………………………………………………… 231
9.4.6 행렬의 기저 바꾸기… ……………………………………………… 236
9.4.7 사원수 클래스………………………………………………………… 237
9.4.8 사원수의 정규화……………………………………………………… 238
9.4.9 사원수의 결합………………………………………………………… 239
9.4.10 회전… ……………………………………………………………… 240
9.4.11 각속도에 의한 업데이트…………………………………………… 241
9.5 요약… …………………………………………………………………… 242
9.6 연습문제… ……………………………………………………………… 243

CHAPTER 10 강체의 운동 법칙
10.1 강체……………………………………………………………………… 247
10.2 회전을 위한 뉴튼의 운동 제2법칙… ………………………………… 251
10.2.1 토크… ……………………………………………………………… 251
10.2.2 관성 모멘트… ……………………………………………………… 253
10.2.3 월드 좌표계에서의 관성 텐서……………………………………… 258
10.3 회전에 대한 달랑베르의 원리… ……………………………………… 261
10.3.1 힘 발생기… ………………………………………………………… 266
10.4 강체 적분………………………………………………………………… 269
10.5 요약……………………………………………………………………… 271
10.6 연습문제………………………………………………………………… 271

CHAPTER 11 강체 물리 엔진
11.1 엔진 개요………………………………………………………………… 275
11.2 물리 엔진의 활용… …………………………………………………… 278
11.2.1 비행 시뮬레이터… ………………………………………………… 279
11.2.2 선박 시뮬레이터… ………………………………………………… 288
11.3 요약……………………………………………………………………… 295
11.4 프로젝트………………………………………………………………… 296

04 P A R T Collision Detection

CHAPTER 12 충돌 감지
12.1 충돌 감지 파이프라인… ……………………………………………… 302
12.2 포괄적 충돌 감지… …………………………………………………… 304
12.2.1 요구사항… ………………………………………………………… 305
12.3 바운딩 볼륨 계층 구조… ……………………………………………… 306
12.3.1 계층 구조… ………………………………………………………… 310
12.3.2 계층 구조 만들기…………………………………………………… 318
12.3.3 서브오브젝트 계층 구조…………………………………………… 327
12.4 공간 분할………………………………………………………………… 329
12.4.1 이진 공간 분할법…………………………………………………… 330
12.4.2 옥트 트리와 쿼드 트리……………………………………………… 336
12.4.3 그리드… …………………………………………………………… 340
12.4.4 다중해상도 맵… …………………………………………………… 345
12.5 요약 ……………………………………………………………………… 345
12.6 연습문제………………………………………………………………… 346

CHAPTER 13 접촉 발생
13.1 충돌 지오메트리………………………………………………………… 350
13.1.1 기본적인 도형의 조합……………………………………………… 352
13.2 접촉 발생………………………………………………………………… 353
13.2.1 접촉 유형… ………………………………………………………… 355
13.2.2 접촉 데이터… ……………………………………………………… 358
13.2.3 점-면 접촉…………………………………………………………… 361
13.2.4 선-선 접촉…………………………………………………………… 362
13.2.5 선-면 접촉…………………………………………………………… 363
13.2.6 면-면 접촉…………………………………………………………… 364
13.2.7 접촉 발생 이전에 필요한 테스팅… ……………………………… 365
13.3 간단한 충돌 알고리즘… ……………………………………………… 366
13.3.1 두 개의 구가 충돌하는 경우… …………………………………… 367
13.3.2 구와 평면이 충돌하는 경우………………………………………… 370
13.3.3 박스와 평면의 충돌………………………………………………… 374
13.3.4 박스와 구 충돌하기………………………………………………… 379
13.4 분리축 테스트…………………………………………………………… 384
13.4.1 SAT로 접촉 데이터 생성하기……………………………………… 386
13.4.2 2개의 박스 충돌하기… …………………………………………… 387
13.4.3 볼록 다면체 충돌하기……………………………………………… 393
13.5 일관성…………………………………………………………………… 395
13.6 요약……………………………………………………………………… 399
13.7 연습문제………………………………………………………………… 400

05 P A R T Contact Physics

CHAPTER 14 충돌 처리
14.1 충격과 충격 토크… …………………………………………………… 404
14.1.1 충격 토크… ………………………………………………………… 405
14.1.2 회전하는 충격… …………………………………………………… 407
14.1.3 회전 충돌 처리하기………………………………………………… 409
14.2 충돌 충격량……………………………………………………………… 409
14.2.1 접촉 좌표 변경하기………………………………………………… 410
14.2.2 충격에 의한 속도 변화……………………………………………… 419
14.2.3 속도에 의한 충격량 변화…………………………………………… 424
14.2.4 필요한 속도 변화 계산하기………………………………………… 424
14.2.5 충격량 계산하기… ………………………………………………… 426
14.2.6 충격량 적용하기… ………………………………………………… 427
14.3 상호 관통 처리하기… ………………………………………………… 429
14.3.1 처리 방법 선택하기………………………………………………… 430
14.3.2 비선형 투영법 구현하기…………………………………………… 434
14.3.3 과회전 방지하기… ………………………………………………… 438
14.4 충돌 처리 프로세스… ………………………………………………… 441
14.4.1 충돌 처리 파이프라인……………………………………………… 443
14.4.2 접촉 데이터 준비하기……………………………………………… 445
14.4.3 관통 처리하기… …………………………………………………… 451
14.4.4 속도 처리하기… …………………………………………………… 460
14.4.5 상대적인 업데이트 알고리즘……………………………………… 462
14.5 요약……………………………………………………………………… 466
14.6 연습문제………………………………………………………………… 467

CHAPTER 15 정지 접촉과 마찰
15.1 정지력…………………………………………………………………… 470
15.1.1 힘 계산하기… ……………………………………………………… 472
15.2 마이크로 충돌…………………………………………………………… 474
15.2.1 가속도 제거하기… ………………………………………………… 476
15.2.2 복원 계수 낮추기…………………………………………………… 478
15.2.3 새로운 속도 계산…………………………………………………… 479
15.3 마찰의 종류……………………………………………………………… 480
15.3.1 정적 마찰과 동적 마찰……………………………………………… 480
15.3.2 등방성 마찰과 비등방성 마찰……………………………………… 484
15.4 마찰 구현하기…………………………………………………………… 485
15.4.1 충격으로서의 마찰… ……………………………………………… 486
15.4.2 속도 처리 알고리즘 수정하기……………………………………… 489
15.4.3 모두 합치기… ……………………………………………………… 496
15.5 마찰과 연속적인 접촉 처리… ………………………………………… 499
15.6 요약……………………………………………………………………… 501
15.7 연습문제………………………………………………………………… 501

CHAPTER 16 안정성과 최적화
16.1 안정성…………………………………………………………………… 503
16.1.1 쿼터니온 변환… …………………………………………………… 505
16.1.2 경사면에서의 상호 관통…………………………………………… 506
16.1.3 안정성 통합… ……………………………………………………… 508
16.1.4 보수적인 충돌 감지의 이점………………………………………… 510
16.1.5 수학적인 정확도 바꾸기…………………………………………… 512
16.2 최적화…………………………………………………………………… 514
16.2.1 슬립… ………………………………………………………………… 514
16.2.2 관통과 속도의 오차 한계…………………………………………… 525
16.2.3 접촉 분류… ………………………………………………………… 528
16.2.4 코드 최적화… ……………………………………………………… 530
16.3 요약……………………………………………………………………… 534

CHAPTER 17 한데 모으기
17.1 엔진 개요………………………………………………………………… 535
17.2 물리 엔진 활용하기… ………………………………………………… 538
17.2.1 랙돌… ……………………………………………………………… 539
17.2.2 파괴 물리학… ……………………………………………………… 544
17.2.3 폭발 물리학… ……………………………………………………… 551
17.3 엔진의 한계……………………………………………………………… 560
17.3.1 무더기… …………………………………………………………… 560
17.3.2 반력 마찰… ………………………………………………………… 561
17.3.3 조인트 관절… ……………………………………………………… 561
17.3.4 빡빡한 스프링… …………………………………………………… 562
17.4 요약……………………………………………………………………… 562
17.5 프로젝트………………………………………………………………… 562

06 P A R T 더 살펴볼 물리학 주제

CHAPTER 18 2차원 물리학
18.1 2D 또는 3D?…………………………………………………………… 567
18.2 벡터 수학………………………………………………………………… 569
18.3 입자 및 질량 집합 물리학……………………………………………… 571
18.4 회전 수학………………………………………………………………… 572
18.4.1 회전 표시… ………………………………………………………… 572
18.4.2 행렬… ……………………………………………………………… 573
18.5 강체 동역학……………………………………………………………… 574
18.6 충돌 감지………………………………………………………………… 576
18.6.1 점?선 접촉… ……………………………………………………… 577
18.6.2 선?선 접촉… ……………………………………………………… 577
18.6.3 접촉 생성… ………………………………………………………… 578
18.7 충돌 반응………………………………………………………………… 579
18.8 요약……………………………………………………………………… 579
18.9 프로젝트………………………………………………………………… 580

CHAPTER 19 기타 프로그래밍 언어
19.1 ActionScript 3………………………………………………………… 581
19.2 C… ……………………………………………………………………… 586
19.3 자바……………………………………………………………………… 587
19.4 C#… …………………………………………………………………… 588
19.5 다른 스크립트 언어… ………………………………………………… 589

CHAPTER 20 다른 형식의 물리학
20.1 동시 접촉 해소… ……………………………………………………… 592
20.1.1 야코비안… ………………………………………………………… 592
20.1.2 선형 상보성 문제…………………………………………………… 594
20.2 좌표 줄이기 접근방식… ……………………………………………… 597
20.3 요약……………………………………………………………………… 599

부 록 A 유용한 관성 텐서
A.1 이산 질량… ……………………………………………………………… 602
A.2 연속 질량… ……………………………………………………………… 602
A.3 일반 도형… ……………………………………………………………… 603
A.3.1 직육면체… …………………………………………………………… 603
A.3.2 구… …………………………………………………………………… 603
A.3.3 원통… ………………………………………………………………… 604
A.3.4 원뿔… ………………………………………………………………… 605
A.3.5 반구체… ……………………………………………………………… 605
A.4 2D의 관성 모멘트… …………………………………………………… 606
A.4.1 2D 도형… …………………………………………………………… 606

부 록 B 유용한 마찰 계수

^6부 록 C 수학 정리
C.1 벡터… …………………………………………………………………… 611
C.2 사원수… ………………………………………………………………… 612
C.3 행렬… …………………………………………………………………… 613
C.4 적분법… ………………………………………………………………… 615
C.5 물리… …………………………………………………………………… 615
C.6 기타 공식… ……………………………………………………………… 617
■용어집… …………………………………………………………………… 618

저자소개

이안 밀링턴 (지은이)    정보 더보기
R’n’D Guy에서 인공 지능과 실시간 시뮬레이션, 그리고 물리학을 포함하는 다양한 게임 관련 기술과 연구 개발에 관한 컨설턴트로 일하고 있다. 다양한 게임 장르와 기술에 사용되는 AI 미들웨어로 유명한 마인드라테(Mindlatthe)를 설립했다.
펼치기
김도균 (옮긴이)    정보 더보기
2012년 회사 조직 일원으로서의 15년 삶을 정리한 뒤, 독립 IT 기술자가 되어 6년째 자기 시간의 주인으로 포트폴리오 인생을 살고 있다. 2003년, 처음 『Beginning Direct3D 게임 프로그래밍』을 번역한 이후로 지금까지 30여 권의 책을 번역했다. 에이콘출판사에서 출간한 『Azure와 도커를 활용한 마이크로서비스 구현』(2017) , 『Essential C# 6.0 한국어판』(2016), 『Essential C# 5.0 한국어판』(2014), 『처음 배우는 C#』(2015), 『MOS 2013 Microsoft PowerPoint』(2015), 『MOS 2013 Microsoft Word Expert』(2015), 『The C# Programming Language (Fourth Edition) 한국어판』(2012) , 『윈도우 7 완벽 가이드』(2010)를 번역했다. 개발자를 위한 IT 매거진 [마이크로소프트웨어]에 오랫동안 기술자와 삶에 관해 칼럼을 써오고 있으며, 『나홀로 개발자를 위한 안드로이드 프로그래밍의 모든 것』(2013)을 비롯해 여러 권의 저서에 참여했다. 17년 차 마이크로소프트의 공인 강사(MCT)이며, 마이크로소프트 MVP를 6회 수상했다. 마이크로소프트 기술 교육 전문 기업인 LearningWay의 대표 강사로 활동하고 있고, 독립 IT 기술자의 저술?번역.강연 상호부조 네트워크인 GoDev(www.godev.kr)에서 해적들을 이끌고 있는 선장이다.
펼치기
진석준 (옮긴이)    정보 더보기
데브시스터즈 기술본부에 재직하고 있으며 다양한 게임 관련 기술 서적을 번역해왔다. 끊임없이 변화하는 기술 트렌드에 맞춰 몸담고 있는 조직과 스스로가 어떻게 진화할 수 있는지를 늘 고민하고 있다. 『게임 물리 엔진 개발』(지앤선, 2016), 『언리얼 엔진 4로 나만의 게임 만들기』(에이콘, 2016), 『봇을 이용한 게임 해킹』(에이콘, 2018), 『게임 테스팅 3/e』(에이콘, 2019), 『시스템으로 풀어 보는 게임 디자인』(에이콘, 2022), 『로블록스 루아 프로그래밍 첫 발자국 떼기』(에이콘, 2022) 등을 번역했다.
펼치기
박종규 (옮긴이)    정보 더보기
서울대학교 대학원 박사과정을 수료했으며, 전공 연구를 위한 수단으로 시작한 프로그래밍이 본업이 되어 윈도응용 프로그래밍, 3D 그래픽스 프로그래밍을 주로 하고 있다. 현재 드림한스에서 소수 정예 개발팀을 이끌고 있다.
펼치기

책속에서





화려한 그래픽과 웅장한 사운드, 흥미진진한 스토리라인이 엮인 게임은 언제나 즐거움의 대상이자 동시에 늘 그런 게임을 만들고 싶다는 선망의 대상이었습니다. 게임을 테스트하고 품질을 검증하는 QA로서 몇 년의 세월을 보내면서 게임의 핵심, 즉 게임 엔진에 대해서 조금이라도 알아야 한다는 생각을 떨쳐낼 수가 없었는데, 하지만 워낙 다른 분야의 일이라서 쉽게 접근할 수 있는 방법을 찾기란 힘들었습니다.
그러다 우연히 이 책을 접하고, 번역에 참여하면서 게임 엔진에 관한 기초적인 지식과 함께 최신의 게임 엔진 기법을 이해할 수 있는 좋은 기회를 얻을 수 있었습니다. 물론 그 과정이 수월했다고 말하기 어렵지만, 게임 엔진을 처음부터 세세하게 알아보기를 원하는 사람이라면 전공과 업종에 관계없이 이 책이 큰 도움이 되리라고 생각합니다.
(중략)
-역자 서문 중


이 포스팅은 쿠팡 파트너스 활동의 일환으로,
이에 따른 일정액의 수수료를 제공받습니다.
이 포스팅은 제휴마케팅이 포함된 광고로 커미션을 지급 받습니다.
도서 DB 제공 : 알라딘 서점(www.aladin.co.kr)
최근 본 책