목차 일부
Chapter 01 개요 ... 1
Section 00 들어가는 말 ... 2
Section 01 게임의 정의 ... 2
1 게임이란 ... 2
2 컴퓨터게임의 요소 ... 4
Section 02 게임의 현재와 미래 ... 5
1 게임산업의 발전 ... 5
2 게임 개발자의 미래 ... 6
...
더보기
목차 전체
Chapter 01 개요 ... 1
Section 00 들어가는 말 ... 2
Section 01 게임의 정의 ... 2
1 게임이란 ... 2
2 컴퓨터게임의 요소 ... 4
Section 02 게임의 현재와 미래 ... 5
1 게임산업의 발전 ... 5
2 게임 개발자의 미래 ... 6
3 배경 지식 ... 6
4 학습 절차 ... 6
Section 03 내용 요약 ... 7
1 전체적인 내용 요약 ... 7
2 일러두기 ... 10
3 관련 학습자료 ... 10
Section 04 나오는 말 ... 11
Chapter 02 게임의 이해 ... 13
Section 00 들어가는 말 ... 14
Section 01 게임의 역사 ... 14
1 오래된 역사 ... 14
2 새로운 시대의 시작 ... 17
Section 02 게임의 분류 ... 19
1 게임의 분류학 ... 19
2 3차원 게임 ... 22
Section 03 게임시스템의 구성 ... 26
1 게임의 디자인 ... 26
2 게임시스템의 모듈 구성 ... 29
3 게임프로그램 구조 ... 32
4 객체지향적 게임디자인 ... 33
Section 04 나오는 말 ... 36
Chapter 03 프로그래밍 준비하기 ... 37
Section 00 들어가는 말 ... 38
Section 01 C/C++ 프로그래밍 준비 ... 38
1 개발 도구의 설치와 사용 ... 38
Section 02 윈도우 프로그래밍 준비 ... 42
1 기본적인 Win32API의 이해 ... 42
2 윈도우 응용프로그램을 위한 설정 ... 42
3 윈도우 응용프로그램의 필수 함수 ... 43
4 기타 프로젝트 관련 소스 파일 ... 46
5 간단한 텍스트 문자열을 화면에 표시하기 ... 47
6 디버그 용도의 문자열을 표시하기 ... 49
7 Win32에서 정의된 상수와 타입들 ... 50
8 문자열 ... 50
Section 03 템플릿과 STL ... 53
1 이름공간 ... 54
2 함수 템플릿 ... 56
3 클래스 템플릿 ... 57
4 표준 템팔릿 라이브러리 STL ... 60
5 vector ... 62
6 deque와 list ... 66
7 set와 map ... 67
8 STL 반복자 ... 69
9 컨테이너 어댑터 ... 71
10 STL 함수객체 ... 73
11 STL 알고리즘 ... 76
Section 04 DirectX 프로그래밍 준비 ... 77
1 COM에 대한 이해 ... 77
2 용어의 사용 ... 80
3 DirectX SDK의 설치 ... 81
4 프로젝트 속성 수정 ... 83
Section 05 나오는 말 ... 84
Chapter 04 선형대수와 DirectX 수학 함수 ... 85
Section 00 들어가는 말 ... 86
Section 01 선형대수 기초 ... 86
1 벡터 ... 86
2 행렬 ... 89
3 기타 ... 92
Section 02 Direct3D 유틸리티 API ... 92
1 D3DX API ... 92
2 Direct3D에서의 이름 짓기 관례 ... 93
Section 03 벡터 ... 94
1 벡터 표현 ... 94
2 겹지정 연산자를 통한 벡터 연산 ... 95
3 벡터 연산 함수를 통한 벡터 연산 ... 95
Section 04 행렬 ... 97
1 행렬의 표현 ... 97
2 겹지정 연산자를 통한 행렬 연산 ... 98
3 행렬 연산 함수를 통한 행렬 연산 ... 99
Section 05 변환 ... 99
1 변환 행렬 ... 99
2 조합된 변환 행렬 ... 101
3 변환 행렬을 적용하기 ... 102
Section 06 평면 ... 103
1 평면의 표현 ... 103
2 평면의 내적 ... 104
3 평면의 생성 ... 105
4 평면의 정규화 ... 106
5 평면의 변환 ... 106
Section 07 나오는 말 ... 107
Chapter 05 Direct3D의 초기화 ... 109
Section 00 들어가는 말 ... 110
Section 01 Direct3D란 무엇인가 ... 110
1 HAL과 REF ... 110
2 전면버퍼와 후면버퍼 ... 112
Section 02 Direct3D의 초기화 ... 114
1 Direct3D의 초기화 절차 ... 114
2 그래픽 어댑터 사양 및 성능 알아보기 ... 115
3 장치와 스왑체인의 생성 ... 116
4 렌더타겟뷰의 생성 ... 120
5 깊이버퍼의 사용 ... 121
6 뷰포트 초기화 ... 123
Section 03 D3D 응용프로그램 프레임워크 ... 123
1 초기화 및 소멸 함수의 작성 ... 124
2 간단한 응용프로그램의 작성 ... 127
Section 04 MFC를 사용하는 D3D 응용프로그램 프레임워크 ... 130
1 MFC 프로젝트 만들기 ... 130
2 D3D 응용 클래스의 추가 ... 133
3 D3D 응용 클래스의 연결 ... 135
4 부가적인 이벤트 처리 ... 139
Section 05 나오는 말 ... 144
Chapter 06 기하 데이터의 표현 ... 145
Section 00 들어가는 말 ... 146
Section 01 물체의 표현 ... 146
1 정점 ... 146
2 기본도형 타입들 ... 147
Section 02 정점 데이터 ... 149
1 정점 구조체 정의하기 ... 149
2 입력에이아웃 만들기 ... 150
3 정점버퍼와 인덱스버퍼 만들기 ... 153
4 버퍼를 파이프라인에 지정하기 ... 156
5 기본도형위상을 지정하기 ... 158
Section 03 기본도형 그리기 ... 159
1 그리기 준비 ... 159
2 그리기 함수의 호출 ... 161
3 2차원적으로 그리기 ... 163
Section 04 나오는 말 ... 166
Chapter 07 렌더링 파이프라인 ... 167
Section 00 들어가는 말 ... 168
Section 01 렌더링 파이프라인 ... 168
Section 02 변환 ... 169
1 월드변환 ... 170
2 뷰변환 ... 171
3 투사 ... 174
4 투사행렬의 분석 ... 175
5 투사행렬 편리 함수 ... 180
6 클립공간 ... 182
7 뷰포트변환 ... 183
Section 03 D3D 응용프로그램의 작성 ... 184
1 렌더링 절차 ... 185
2 렌더링 프레임워크 ... 186
3 문자열 표시하기 ... 188
4 스프라이트 그리기 ... 192
Section 04 셰이더 파이프라인 ... 195
1 렌더링 파이프라인 개요 ... 195
2 정점셰이더와 픽셀셰이더 ... 200
3 효과시스템 ... 202
Section 05 HLSL ... 205
1 HLSL 개요 ... 205
2 변수 ... 205
3 텍스처 객체 ... 211
4 시맨틱 ... 214
5 문 ... 216
6 내장 함수 ... 218
7 셰이더 모델 ... 220
8 셰이더 상수 ... 222
Section 06 파이프라인의 제어 ... 224
1 정점셰이더의 준비 ... 224
2 응용프로그램에서의 변환행렬들의 준비 ... 225
3 움직이는 여러 물체들을 그리는 응용프로그램 ... 229
Section 07 자원의 생성과 지정 ... 231
1 자원의 생성 ... 231
2 자원의 지정 ... 232
3 자원의 Usage 지정 ... 233
4 자원의 갱신 ... 236
Section 08 나오는 말 ... 236
Chapter 08 회전과 카메라 관리자 ... 237
Section 00 들어가는 말 ... 238
Section 01 회전과 오일러각도 ... 238
1 좌표계 설정 ... 238
2 회전행렬과 오일러각도 ... 238
3 도리-끄덕-갸웃 ... 240
4 오일러각도의 장단점 ... 241
Section 02 오일러각도에 기반을 둔 이동 카메라의 구현 ... 242
1 카메라의 표현 ... 242
2 카메라의 이동 및 회전 동작 ... 243
3 카메라의 동작 모드 ... 245
4 뷰행렬 ... 246
Section 03 사원수 ... 249
1 사원수란 ... 249
2 사원수의 표현 ... 249
3 사원수의 보간 ... 251
Section 04 사원수에 기반을 둔 이동 카메라의 구현 ... 253
1 사원수 편리함수 ... 253
2 카메라 관리자 ... 254
3 가상 트랙볼 ... 257
Section 05 축각도 회전 ... 259
Section 06 나오는 말 ... 262
Chapter 09 메시 ... 263
Section 00 들어가는 말 ... 264
Section 01 메시의 생성 ... 264
1 메시 인터페이스 ... 264
2 메시의 생성 ... 265
Section 02 메시 버퍼 채우기 ... 267
1 정점버퍼와 인덱스버퍼 채우기 ... 267
2 서브셋과 속성버퍼 ... 269
3 인접 정보 ... 271
Section 03 메시 다루기 ... 273
1 메시 최적화 ... 273
2 메시의 제출과 그리기 ... 275
3 기타 메시 함수들 ... 276
Section 04 메시 파일 불러오기 ... 278
1 모델 파일 생성 ... 278
2 모델 파일 불러오기 ... 279
3 X 파일 불러오기 ... 381
4 3DS 파일 불러오기 ... 283
Section 05 경계 볼륨 ... 285
1 경계상자와 경계구 ... 285
2 경계구와 경계상자 그리기 ... 287
Section 06 피킹 ... 289
1 투사창으로의 변환 ... 290
2 피킹광선의 계산 ... 291
3 광선과 메시와의 교차 테스트 ... 292
4 광선과 경계구와의 교차 테스트 ... 293
Section 07 나오는 말 ... 295
Chapter 10 외양 ... 297
Section 00 들어가는 말 ... 298
Section 01 조명 ... 298
1 컬러의 표현 ... 298
2 셰이딩 ... 299
3 빛과 재질 ... 300
4 노말 ... 303
5 광원 ... 304
6 조명식 ... 306
7 조명식의 구현 ... 311
Section 02 텍스처 준비하기 ... 316
1 텍스처의 표현 ... 316
2 텍스처 불러오기 ... 318
3 2D 텍스처 직접 그리기 ... 320
Section 03 텍스처 매핑 ... 322
1 정점 데이터 ... 323
2 셰이더자원부 ... 324
3 정점셰이더 ... 325
4 픽셀셰이더 ... 327
5 샘플러상태의 지정 ... 328
Section 04 텍스처 처리 ... 329
1 텍스처 필터링 ... 329
2 필터의 지정 ... 331
3 텍스처 번지모드 ... 334
4 텍스처 매핑의 구현 ... 336
5 구나 원통에 텍스처 매핑 ... 338
Section 05 래스터화 스테이지 ... 339
1 래스터화의 기본 기능 ... 339
2 래스터화상태의 지정 ... 340
3 멀티샘플링 ... 344
Section 06 나오는 말 ... 346
Chapter 11 블렌딩과 깊이스텐실 ... 347
Section 00 들어가는 말 ... 348
Section 01 알파블렌딩 ... 348
1 알파블렌딩의 개념 ... 348
2 알파블렌딩의 블렌드상태 지정 ... 349
3 셰이더에서의 블렌드상태 지정 ... 353
4 알파채널을 포함하는 텍스처 ... 354
Section 02 깊이와 스텐실 ... 355
1 깊이스텐실버퍼 ... 355
2 스텐실버퍼 ... 356
3 깊이테스트 ... 358
4 스텐실테스트 ... 360
5 스텐실버퍼의 갱신 ... 361
6 깊이스텐실상태의 지정 ... 363
Section 03 그림자 ... 365
1 평면 그림자 ... 365
2 평면 그림자의 구현 ... 367
3 그림자볼륨 ... 370
Section 04 반사 ... 375
1 평면 반사 ... 375
2 평면 거울의 구현 ... 377
Section 05 나오는 말 ... 380
Chapter 12 지형과 배경 ... 383
Section 00 들어가는 말 ... 384
Section 01 지형 ... 384
1 높이맵의 준비 ... 384
2 높이맵을 읽기 ... 386
3 지형 격자의 정의 ... 387
4 지형 기하 데이터 생성 ... 388
5 지형에 텍스처 입히기 ... 390
6 지형 텍스처에 음영 주기 ... 393
7 지형에서의 카메라 이동 ... 395
8 지형 렌더링의 고급 기법들 ... 398
Section 02 배경 처리 ... 401
1 스카이박스 ... 401
2 빌보드 ... 405
Section 03 기하 데이터의 처리 ... 408
1 기하인스턴싱 ... 409
2 기하셰이더 ... 413
3 스트림출력 ... 416
Section 04 나오는 말 ... 419
Chapter 13 비디오텍스처와 시각적 특수효과 ... 421
Section 00 들어가는 말 ... 422
Section 01 비디오텍스처 ... 422
1 동적 텍스처 매핑 ... 422
2 AVI 비디오텍스처 매핑 ... 426
3 WMV 비디오텍스처 매핑 ... 432
4 비디오텍스처 효과 구현 ... 438
Section 02 텍스처에 렌더링하기 ... 441
1 단일 텍스처에 렌더링하기 ... 441
2 여러 텍스처에 렌더링하기 ... 444
3 큐브맵에 렌더링하기 ... 448
Section 03 입자시스템 ... 450
1 입자의 표현 ... 451
2 입자시스템의 초기화 ... 452
3 입자의 렌더링 ... 455
4 입자시스템의 갱신 ... 456
5 입자에 대한 텍스처 매핑 ... 457
6 연기 효과 ... 459
Section 04 기타 특수효과 ... 462
1 안개 효과 ... 462
2 셀 셰이딩 ... 464
3 다중 렌더타겟을 사용한 셀 셰이딩 ... 470
4 고급 특수효과의 구현 ... 474
Section 05 나오는 말 ... 476
Chapter 14 애니메이션 ... 477
Section 00 들어가는 말 ... 478
Section 01 개요 ... 478
Section 02 정점 애니메이션 ... 479
1 MD2 파일 포맷 ... 479
2 헤더 읽기 ... 480
3 데이터 읽기 ... 481
4 애니메이션 ... 484
Section 03 뼈대 애니메이션 ... 487
1 캐릭터 메시 계층구조 ... 487
2 뼈의 표현과 뼈의 로컬변환 행렬 ... 488
3 스킨공간과 오프셋변환 ... 490
4 스킨 애니메이션 ... 491
Section 04 뼈대 애니메이션과 스키닝의 구현 ... 492
1 MD5 메시 파일의 포맷 ... 492
2 정점의 위치 계산 ... 495
3 MD5 애니메이션 파일의 포맷 ... 497
Section 05 기타 애니메이션 포맷 ... 504
1 X 파일 ... 504
2 ASE 파일 ... 504
Section 06 나오는 말 ... 505
Chapter 15 사운드와 입력 ... 507
Section 00 들어가는 말 ... 508
Section 01 사운드 ... 508
1 사운드 개요 ... 508
2 DirectSound 개요 ... 509
3 장치 객체 생성 ... 511
4 협력레벨 지정 ... 512
5 주버퍼 포맷 지정 ... 513
6 이차버퍼의 생성 ... 515
7 이차버퍼의 데이터 채우기 ... 516
8 이차버퍼의 사운드 재생과 정지 ... 517
Section 02 입력 ... 519
1 DirectInput 개요 ... 519
2 장치 객체 생성 ... 519
3 장치의 설정 ... 520
4 장치로부터 입력 데이터 얻기 ... 522
Section 03 나오는 말 ... 527
Chapter 16 게임 서버 ... 529
Section 01 들어가는 말 ... 530
Section 02 네트워크 개요 ... 530
1 온라인게임의 역사 ... 530
2 TCP/IP 프로토콜 ... 531
Section 03 소켓 프로그래밍 개요 ... 532
1 소켓 ... 532
2 소켓 사용 준비 ... 533
3 서버 프로그램의 초기화 ... 534
4 서버에서의 연결 및 데이터 주고받기 ... 537
5 클라이언트 프로그램 ... 538
6 UDP를 사용하는 서버 및 클라이언트 프로그램 ... 539
Section 04 통신 프로그램 구현을 위한 준비 ... 541
1 다중스레딩 ... 541
2 입출력 완료포트 ... 545
Section 05 서버와 클라이언트 간의 통신 ... 551
1 패킷 클래스의 정의 ... 551
2 클라이언트 프로그램의 구현 ... 554
3 서버 프로그램의 구현 ... 558
4 게임 서버 구현의 실제 ... 562
Section 06 나오는 말 ... 562
Chapter 17 게임 물리 ... 563
Section 00 들어가는 말 ... 564
Section 01 물리 개요 ... 564
Section 02 운동의 기초 ... 566
1 직선 운동 ... 566
2 포물선 운동 ... 567
Section 03 힘과 운동의 변화 ... 568
1 힘의 개념 ... 568
2 중력 ... 569
3 마찰력 ... 570
Section 04 스프링 운동 ... 573
1 단순한 스프링 운동 ... 573
2 감쇠된 스프링 ... 574
Section 05 운동량과 충돌 ... 576
1 운동량 보존 법칙 ... 576
2 입자의 평면의 충돌 검사 ... 577
3 입자의 평면의 충돌 반응 ... 578
Section 06 강체 역학 ... 579
1 강체 역학의 개념 ... 579
2 각속도와 구심력 ... 580
3 원운동의 개념 ... 581
Section 07 게임 물리의 구현 ... 582
1 적분 ... 582
2 시간간격 조절 ... 586
Section 08 나오는 말 ... 590
Chapter 18 게임 인공지능 ... 591
Section 00 들어가는 말 ... 592
Section 01 게임 인공지능의 개요 ... 592
1 게임에서의 인공지능 ... 592
2 인공지능의 진화 ... 593
3 게임 인공지능의 진화 ... 595
4 게임 인공지능 기술 ... 596
Section 02 유한상태기계 ... 597
1 유한상태기계란 ... 597
2 유한상태기계의 작성 ... 598
3 유한상태기계의 적용 예 ... 600
Section 03 길찾기 ... 607
1 길찾기 알고리즘 ... 607
2 A* 길찾기 알고리즘 ... 609
3 알고리즘 적용 예 ... 612
Section 04 나오는 말 ... 615
부록 A 참고문헌 ... 617
부록 B 찾아보기 ... 623
더보기 닫기