목차
1. DirectX 고수준 셰이딩 언이 HLSL에 대한 소개  / Craig Peeper ; Jason L. Mitchell
   소개 ... 26
   간단한 예제 ... 26
   어셈블리 언어와 컴파일 타겟 ... 28
      하드웨어에 대한 현실적 고려 ... 30
      컴파일 실패 ... 30
      커맨드라인 컴파일러 - fxc ... 31
   언어의 기초 ... 32
      키워드 ... 32
      데이터 유형 ... 33
      형 수정자(type modifier) ... 36
      스토리지 클래스 수정자(storage class modifier) ... 37
      초기화 ... 38
      벡터로 작업하기 ... 38
      생성자(constructor) ... 39
      형 변환(type casting) ... 39
      구조체(structure) ... 41
      샘플러(sampler) ... 41
   내장 함수 ... 43
      수학 내장 함수 ... 43
      텍스처 샘플링 내장 함수 ... 46
   셰이더 입력 ... 48
      uniform 입력 ... 49
      varying 입력 ... 50
   셰이더 출력 ... 52
   셰이더의 적용 예 ... 55
   최적화 ... 62
      행렬 데이터형의 사용법 ... 63
      정수 데이터형의 사용법 ... 64
      조건 분기와 성능 ... 65
      입력 데이터형 선언의 중요성 ... 67
      정밀도 문제(logp, expp, lit) ... 67
ps_1_x 컴파일 타겟의 사용 ... 68
ps_1_x 타겟을 위한 전략 ... 73
   D3DX Effect를 사용하여 엔진에 적용하기 ... 73
      Effect 파일 ... 74
      Effect API ... 78
   D3DX Effect를 사용하지 않고 엔진에 적용하기 ... 80
      상수 테이블 ... 81
   SDK 업데이트 ... 82
   결론 ... 83
   감사의 말 ... 83
2. Vs_3_O 및 ps_3_O 셰이더 모델 소개  / Nicolas Thibieroz ; Krisfof Beets ; Aaron Burton
   소개 ... 86
   Vs_3_O과 ps_3_O의 일반적인 기능 ... 86
      유연한 입ㆍ출력 선언 ... 86
      조건자(Predication) ... 87
      정적, 동적 조건 분기 ... 89
      임의의 스위즐(Arbitary Swizzle) ... 91
      텍스처 명령어 상의 쓰기 금지 마스크 ... 92
   vs_3_O의 기능 ... 93
      레지스터 ... 93
      명령어 ... 95
      텍스처 샘플링 ... 96
      정점 스트림 빈도 ... 98
ps_3_O 기능 ... 100
      레지스터 ... 100
      명령어 ... 102
      무제한의 텍스처 샘플과 의존적 읽기 ... 103
   결론 ... 104
   참고 자료 ... 104
3. Direct3D 9로 구현한 향상된 조명과 셰이딩  / Michal Valient
   소개 ... 106
   픽셀 당 퐁(phong) ... 107
      퐁 조명 방정식 ... 107
      정점과 픽셀 셰이더 2.0 ... 107
      정점과 픽셀 셰이더 3.0 ... 120
   프레넬 항을 이용한 픽셀 당 환경 범프 매핑 ... 131
      수학적 배경 ... 132
      정점 셰이더 ... 134
      픽셀 셰이더 1.4 ... 137
      픽셀 셰이더 2.0 ... 139
      HLSL 버전 ... 141
   진보적인 모델을 위한 배경 지식 ... 144
      구 좌표계 ... 144
      표면의 거칠기 ... 145
      마스킹과 섀도잉 ... 146
   오렌-나야르 모델 ... 147
      셰이더들 ... 149
      HLSL 버전 ... 154
   쿡-토르란스 모델 ... 157
      셰이더 2.0 ... 158
      셰이더 1.4 ... 163
      HLSL 버전 ... 166
      품질 비교 ... 169
   결론 ... 171
   참고 자료 ... 172
4. 다양한 안개 효과 소개  / Markus Nuebel
   소개 ... 174
   안개 계산 이면의 이론 ... 174
   기법 하나: 선형 안개 ... 176
      안개 방정식 ... 176
      구현 ... 177
   기법 둘: 지수 안개 ... 179
      안개 방정식 ... 180
      구현 ... 181
   기법 셋: 지수 제곱 안개 ... 185
      안개 방정식 ... 185
      구현 ... 186
   기법 넷: 레이어 안개 ... 189
      이론과 방정식 ... 189
      구현 ... 191
   기법 다섯: 움직이는 안개 ... 196
      이론과 방정식 ... 198
      구현 ... 199
   결론 ... 201
   참고 자료 ... 202
5. Direct3D 9로 구현한 그림자 매핑  / Michal Valient
   소개 ... 204
   그림자 알고리즘(Shadow Algorithm) ... 204
   깊이 보정 문제 ... 206
   그림자 맵 필터링 ... 207
   그림자 맵 생성을 위한 셰이더 ... 209
   최종 렌더링을 위한 셰이더 ... 211
   결론 ... 217
   참고 자료 ... 217
6. 스텐실 그림자 입체 이론  / Hun Yen Kwoon
   소개 ... 220
   그림자 입체의 개념 ... 221
      depth-pass(z-pass) ... 223
      depth-fail(z-fail) ... 226
   문제와 해법 ... 230
      유한 그림자 덮개 ... 230
      고스트 그림자 ... 231
      시야 절두체 절단 ... 232
   CPU에서의 실행 ... 239
      어떤 방식으로 실행되나? ... 239
      외곽선 찾기 ... 240
      그림자 입체 만들기 ... 244
      그림자 입체 덮개 ... 248
      Depth-pass 스텐실 작업(DepthPassCPU) ... 250
      Depth-fail 스텐실 작업(DepthFailCPU) ... 255
      그림자 입체 덮개의 렌더링 ... 258
   GPU(셰이더)에서의 실행 ... 260
      어떤 방식으로 실행되나? ... 260
      데이터의 전처리 ... 261
      셰이더에서 그림자 입체 만들기 ... 264
      정점 셰이더에서 실행하기(FiniteGPU) ... 265
      정점 셰이더에서 실행하기(InfiniteGPU) ... 270
      셰이더 방식이 더 좋은가? ... 274
   DirectX 9 HLSL 샘플 ... 276
   효율과 견고함 ... 279
      많은 것을 위해 적게 사용하라 ... 280
      가능한 한 편법을 사용하라 ... 281
      보이지 않는 영역의 계산 ... 282
      안쪽과 바깥쪽의 장면 관리 ... 283
      언제나 효과적인 전환을 하라 ... 285
      혼합과 배치 ... 286
   결론 ... 286
   참고 자료 ... 287
7. 렌더몽키를 사용한 셰이더 개발  / Natalya Tatarchuk
   소개 ... 290
   IDE 개괄 ... 291
   기본 조명 효과 제작 ... 292
   실행 시간 데이터베이스 개괄 ... 294
      작업 공간 뷰 ... 295
      변수 생성과 관리 ... 297
      미리 정의된 렌더몽키 변수들 ... 298
      스트림 매핑 모듈 ... 300
      모델 관리 ... 303
      효과 관리 ... 304
   픽셀과 정점 셰이더들 ... 305
      셰이더 편집하기 ... 306
      정점 셰이더 설정과 편집 ... 308
      셰이더 컴파일하기 ... 311
      출력 창 ... 311
      셰이더 어셈블리 혹은 컴파일 에러 ... 312
      어셈블리 편집하기 ... 313
      픽셀 셰이더 설정과 편집 ... 315
      미리보기 창 ... 317
      변수 편집하기 ... 319
   렌더 스테이트 블록 관리 ... 323
   렌더몽키에서의 텍스처링 ... 325
      텍스처 오브젝트 ... 326
      HLSL 셰이더로 텍스처 사용하기 ... 329
   텍스처에 렌더링하기 ... 331
      렌더 패스 ... 331
      렌더 가능한 텍스처 지원 ... 332
   렌더 가능한 텍스처 편집 ... 336
   렌더 타겟 편집하기 ... 337
      아티스트 편집기 ... 337
      아티스트 편집 모듈에서 변수 편집 ... 339
   요약 ... 341
8. 셰이더 친화적 3D 모델 제작을 위한 팁  / Gim Guan Chua
   소개 ... 344
   적절한 텍스처 좌표 생성하기 ... 344
   "정점 가중치"의 영향 ... 345
   비볼록(Non-Convex) 평면의 문제 ... 347
   결론 ... 349
찾아보기 ... 350
닫기