목차
추천사 ... 3
역자 서문 ... 4
저자 서문 ... 6
본문에서 구현한 주요 그림 ... 8
부록 CD-ROM 소개 ... 16
Chapter 01 DirectX 개론
   1-1. 역사 ... 26
      1-1-1. CG의 역사 ... 26
      1-1-2. DirectX의 성립 과정 ... 28
      1-1-3. OpenGL ... 31
   1-2. 그래픽 카드 ... 33
      1-2-1. GPU의 능력 ... 33
      1-2-2. 그래픽 카드의 메모리 크기와 표시 색의 관계 ... 35
      1-2-3. ATI ... 36
      1-2-4. NVIDIA ... 40
      1-2-5. Matrox ... 44
      1-2-6. SiS ... 46
      1-2-7. S3 Graphics ... 46
   1-3. GPU는 무엇을 하고 있는가? ... 47
      1-3-1. 화면에 폴리곤이 표시될 때까지 ... 47
      1-3-2. 렌더링 처리 상세 해설 ... 49
      1-3-3. 렌더링 흐름과 GPU ... 53
Chapter 02 처음 하는 DirectX 프로그래밍
   2-1. DirectX 개발 방법 ... 58
      2-1-1. DirectX의 경험치를 모으는 방법 ... 58
      2-1-2. RenderMonkey나 Cg 등의 개발툴에 대하여 ... 62
   2-2. DirectX SDK 설치 ... 65
   2-3. 처음 하는 윈도우 프로그래밍 ... 68
      2-3-1. 어쨌든 프로그램을 만든다 ... 69
      2-3-2. 윈도우 프로그램의 흐름 ... 72
   2-4. 처음 하는 DirectX 프로그래밍 ... 78
      2-4-1. 헤더 읽기와 변수의 추가 ... 81
      2-4-2. 인터페이스 오브젝트의 처리 ... 82
      2-4-3. main.cpp 고치기 ... 86
      2-4-4. DirectX 프로그램 실행 ... 89
      2-4-5. C나 Visual Basic.NET으로도 개발 가능한가? ... 91
      2-4-6. 이전의 Visual C++ 6.0에서도 개발할 수 있을까? ... 92
   2-5. 폴리곤 출력 ... 92
   2-6. 애플리케이션 마법사 ... 101
      2-6-1. DirectX 9 Visual C++ Wizard 사용하기 ... 102
      2-6-2. 애플리케이션 마법사의 내용 ... 103
      2-6-3. FPS 표시 ... 112
      2-6-4. framework 폴더에 파일 모으기 ... 114
   2-7. 텍스처 입히기 ... 117
   2-8. 알파 합성 ... 125
      2-8-1. 개요 ... 125
      2-8-2. 다양한 합성 방법 ... 128
      2-8-3. 프로그래밍 ... 133
Chapter 03 수학
   3-1. 벡터 ... 140
      3-1-1. 벡터의 정의 ... 140
      3-1-2. 내적 ... 144
      3-1-3. 외적 ... 146
   3-2. 접선 벡터 ... 148
   3-3. 행렬 ... 152
      3-3-1. 행렬의 계산 방법 ... 152
      3-3-2. 회전 행렬 ... 156
      3-3-3. 확대 축소 행렬 ... 158
      3-3-4. 평행 이동 행렬 ... 160
      3-3-5. 기저 변환 ... 162
   3-4. 좌표계 ... 166
      3-4-1. 3D 좌표계 ... 166
      3-4-2. 동차 좌표계 ... 168
      3-4-3. 기하 변환 ... 171
   3-5. 3D 폴리곤 ... 180
   3-6. X 파일 출력(X File) ... 193
Chapter 04 셰이더 프로그래밍
   4-1. 정점 셰이더 ... 204
      4-1-1. 구성 ... 204
      4-1-2. 버전 ... 206
      4-1-3. 레지스터 ... 208
      4-1-4. 수식자 ... 210
      4-1-5. 명령 ... 213
   4-2. 정점 셰이더 프로그래밍 ... 221
      4-2-1. 셰이더 프로그램 ... 222
      4-2-2. 오브젝트 ... 223
      4-2-3. 초기화 ... 224
      4-2-4. 렌더링 호출 ... 230
   4-3. 픽셀 셰이더 ... 233
      4-3-1. 구성 ... 233
      4-3-2. 버전 ... 235
      4-3-3. 레지스터 ... 237
      4-3-4. 수식자 ... 239
      4-3-5. 명령 ... 246
   4-4. 픽셀 셰이더 프로그래밍 ... 251
      4-4-1. 셰이더 프로그램 ... 251
      4-4-2. 오브젝트 ... 252
      4-4-3. 초기화 ... 252
      4-4-4. 렌더링 호출 ... 254
   4-5. 상위 레벨 셰이더 언어 ... 256
      4-5-1. 이펙트 파일 ... 257
      4-5-2. 명령 ... 262
   4-6. HLSL 프로그래밍 ... 264
      4-6-1. HLSL 프로그램 ... 264
      4-6-2. 컴파일러를 사용한 파일 읽기 ... 270
Chapter 05 조명 효과
   5-1. 램버트 확산 조명 ... 274
      5-1-1. 확산 반사광 ... 274
      5-1-2. 환경광 ... 276
      5-1-3. 프로그래밍 ... 278
      5-1-4. 로컬 좌표계에서의 계산 ... 287
      5-1-5. 최적화 ... 289
   5-2. 퐁 반영 반사 ... 292
      5-2-1. 퐁 반영 반사광 ... 292
      5-2-2. 블린-퐁 반영 반사광 ... 295
      5-2-3. 픽셀 단위 반영 반사 계산 ... 298
   5-3. 금속 반사 모델 ... 301
      5-3-1. 쿡-토런스 반사 모델 ... 301
      5-3-2. 컬러 시프트 ... 312
   5-4. 범프 맵핑 ... 316
      5-4-1. 범프 맵핑 ... 316
      5-4-2. 범프 맵 ... 317
      5-4-3. 정점 좌표계(표면 좌표계) ... 320
Chapter 06 그림자
   6-1. 원형그림자 ... 337
      6-1-1. 프로그래밍 ... 338
   6-2. 평면 투영 그림자 ... 343
      6-2-1. 투영 행렬 도출 ... 343
      6-2-2. 프로그래밍 ... 347
   6-3. 오브젝트 형태를 한 원형 그림자 ... 348
   6-4. 투영 텍스처 그림자 ... 352
      6-4-1. 프로그래밍 ... 356
   6-5. 우선 순위 버퍼 그림자 ... 363
      6-5-1. 프로그래밍 ... 365
   6-6. 깊이 버퍼 그림자 ... 368
      6-6-1. 프로그래밍 ... 369
   6-7. 스텐실 그림자 ... 377
      6-7-1. 프로그래밍 ... 382
   6-8. 부드러운 그림자 ... 395
      6-8-1. 프로그래밍 ... 397
Chapter 07 포스트 이펙트
   7-1. 흐림 필터 ... 406
      7-1-1. 선형 텍스처 필터링 ... 407
      7-1-2. 16박스 필터 샘플링 ... 411
      7-1-3. 9콘 필터 샘플링 ... 421
      7-1-4. 64박스 필터 샘플링 ... 423
   7-2. 가우스 필터 ... 425
      7-2-1. 프로그래밍 ... 429
   7-3. 크로스 필터 ... 436
      7-3-1. HDR ... 436
      7-3-2. 크로스 필터 ... 439
      7-3-3. 프로그래밍 ... 441
   7-4. 영역 총합 테이블 ... 467
      7-4-1. 영역 총합 테이블에 의한 흐리게 뭉개기 프로그램 ... 470
      7-4-2. 회화 필터 ... 477
   7-5. 모자이크 ... 484
      7-5-1. 축소 버퍼를 사용한 모자이크 ... 484
      7-5-2. 셰이더에 의한 모자이크 ... 490
   7-6. 모노톤 필터(단색 필터) ... 494
      7-6-1. 모노크롬 화상 ... 495
      7-6-2. 세피아 톤 ... 496
      7-6-3. 서서히 변하는 세피아 톤 ... 497
   7-7. 중앙값 필터 ... 499
      7-7-1. 프로그래밍 ... 501
   7-8. 포스트 이펙트 잔상 ... 504
      7-8-1. 단순한 잔상 효과 ... 504
      7-8-2. 휘도를 고려한 잔상 효과 ... 509
   7-9. 모션 블러 ... 514
      7-9-1. 멀티 렌더링 ... 515
      7-9-2. 늘이기에 의한 모션블러 ... 520
      7-9-3. 멀티 샘플링 ... 525
   7-10. 윤곽 추출 ... 532
      7-10-1. 색 성분에 의한 윤곽 추출 ... 533
      7-10-2. ID 엣지 추출 ... 536
      7-10-3. 깊이 엣지 추출 ... 537
      7-10-4. 법선 엣지 추출 ... 538
      7-10-5. 색 성분 엣지 추출 구현 ... 539
      7-10-6. 휘도 엣지 추출 구현 ... 543
      7-10-7. 색상 엣지 추출 구현 ... 544
      7-10-8. ID 엣지 추출 구현 ... 545
      7-10-9. 깊이 엣지 추출 구현 ... 547
      7-10-10. 법선 엣지 추출 구현 ... 549
      7-10-11. 확대한 모델에 의한 엣지 추출 ... 554
   7-11. 포커스 필터 ... 556
      7-11-1. 프로그래밍 ... 557
   7-12. 피사계 심도 ... 566
      7-12-1. 프로그래밍 ... 568
      7-12-2. 뭉개진 부분이 눈 앞에 있을 때의 부자연스러움 해결 ... 574
      7-12-3. 광학적 피사계 심도 ... 577
      7-12-4. 착란원 ... 584
      7-12-5. F 값과 초점 심도를 인수로 사용한 피사계 심도 ... 586
Chapter 08 포그
   8-1. 포그 ... 594
      8-1-1. 개요 ... 594
      8-1-2. 프로그래밍 ... 595
   8-2. 거리 포그 ... 598
   8-3. 높이 포그 ... 601
   8-4. 볼륨 포그 ... 602
Chapter 09 그 외의 주제
   9-1. 변위 맵핑 ... 614
      9-1-1. 개요 ... 615
      9-1-2. 프로그래밍 ... 616
   9-2. 펄린 노이즈 ... 624
      9-2-1. 개요 ... 624
      9-2-2. 2차원 펄린 노이즈 ... 629
      9-2-3. 3차원 펄린 노이즈 ... 633
찾아보기 ... 640
닫기