PART 1 기초 필수 수학
CHAPTER 1 벡터 대수
1.1 벡터
1.2 길이와 단위 벡터
1.3 내적
1.4 외적
1.5 점
1.6 DirectXMath 라이브러리의 벡터
1.7 요약
1.8 연습문제
CHAPTER 2 행렬 대수
2.1 정의
2.2 행렬 곱셈
2.3 전치행렬
2.4 단위행렬
2.5 행렬식
2.6 딸림행렬
2.7 역행렬
2.8 DirectXMath의 행렬
2.9 요약
2.10 연습문제
CHAPTER 3 변환
3.1 선형변환
3.2 아핀변환
3.3 변환들의 합성
3.4 좌표 변경 변환
3.5 변환 행렬 대 좌표 변경 행렬
3.6 DirectXMath 라이브러리의 변환 관련 함수들
3.7 요약
3.8 연습문제
PART 2 Direct3D의 기초
CHAPTER 4 Direct3D의 초기화
4.1 기본지식
4.2 CPU와 GPU의 상호작용
4.3 Direct3D의 초기화
4.4 시간 측정과 애니메이션
4.5 예제 응용 프로그램 프레임워크
4.6 Direct3D 응용 프로그램의 디버깅
4.7 요약
CHAPTER 5 렌더링 파이프라인
5.1 3차원의 환상
5.2 모형의 포현
5.3 컴퓨터 색상의 기본 개념
5.4 렌더링 파이프라인의 개요
5.5 입력 조립기 단계
5.6 정점 셰이더 단계
5.7 테셀레이션 단계들
5.8 기하 셰이더 단계
5.9 절단
5.10 래스터화 단계
5.11 픽셀 셰이더 단계
5.12 출력 병합기 단계
5.13 요약
5.14 연습문제
CHAPTER 6 Direct3D의 그리기 연산
6.1 정점과 입력 배치
6.2 정점 버퍼
6.3 색인과 색인 버퍼
6.4 예제 정점 셰이더
6.5 예제 픽셀 셰이더
6.6 상수 버퍼
6.7 셰이더의 컴파일
6.8 래스터화기 단계
6.9 파이프라인 상태 객체
6.10 기하구조 보조 구조체
6.11 상자 예제
6.12 요약
6.13 연습문제
CHAPTER 7 Direct3D의 그리기 연산 제2부
7.1 프레임 자원
7.2 렌더 항목
7.3 패스별 상수 버퍼
7.4 도형 기하구조
7.5 도형 예제
7.6 루트 서명 추가 설명
7.7 지형과 파도 예제
7.8 요약
7.9 연습문제
CHAPTER 8 조명
8.1 빛과 재질의 상호작용
8.2 법선 벡터
8.3 조명의 주요 벡터
8.4 람베르트 코사인 법칙
8.5 분산 조명
8.6 주변 조명
8.7 반영 조명
8.8 조명 모형 정리
8.9 재질의 구현
8.10 평행광
8.11 점광
8.12 점적광
8.13 조명 구현
8.14 파도 조명 예제
8.15 요약
8.16 연습문제
CHAPTER 9 텍스처 적용
9.1 텍스처와 자원의 개괄
9.2 텍스처 좌표
9.3 텍스처 자료 원본
9.4 텍스처 생성 및 활성화
9.5 필터
9.6 텍스처 좌표 지정 모드
9.7 표본추출기 객체
9.8 셰이더에서 텍스처 표본 추출
9.9 나무 상자 예제
9.10 텍스처 변환
9.11 텍스처 입힌 언덕과 파도 예제
9.12 요약
9.13 연습문제
CHAPTER 10 혼합
10.1 혼합 공식
10.2 혼합 연산
10.3 혼합 계수
10.4 혼합 상태
10.5 예제
10.6 알파 채널
10.7 픽셀 잘라내기
10.8 안개
10.9 요약
10.10 연습문제
CHAPTER 11 스텐실 적용
11.1 깊이/스텐실 버퍼의 자료 형식과 버퍼 지우기
11.2 스텐실 판정
11.3 깊이/스텐실 상태의 서술
11.4 평면거울 구현
11.5 평면 그림자의 구현
11.6 요약
11.7 연습문제
CHAPTER 12 기하 셰이더
12.1 기하 셰이더 프로그래밍
12.2 나무 빌보드 예제
12.3 텍스처 배열
12.4 알파-포괄도 변환
12.5 요약
12.6 연습문제
CHAPTER 13 계산 셰이더
13.1 스레드와 스레드 그룹
13.2 간단한 계산 셰이더 예제
13.3 자료 입력 자원과 출력 자원
13.4 스레드 식별 시스템 값
13.5 추가 버퍼와 소비 버퍼
13.6 공유 메모리와 동기화
13.7 흐리기 예제
13.8 더 읽을거리
13.9 요약
13.10 연습문제
CHAPTER 14 테셀레이션 단계들
14.1 테셀레이션 기본도형 위상구조
14.2 덮개 셰이더
14.3 테셀레이터 단계
14.4 영역 셰이더
14.5 사각형 하나의 테셀레이션
14.6 삼차 베지에 사각형 패치
14.7 요약
14.8 연습문제
PART 3 응용
CHAPTER 15 1인칭 카메라 구축과 동적 색인화
15.1 시야 변환 개괄
15.2 카메라를 대표하는 Camera 클래스
15.3 주요 메서드 구현
15.4 카메라 예제 해설
15.5 동적 색인화
15.6 요약
15.7 연습문제
CHAPTER 16 인스턴싱과 절두체 선별
16.1 하드웨어 인스턴싱
16.2 경계입체와 절두체
16.3 절두체 선별
16.4 요약
16.5 연습문제
CHAPTER 17 3차원 물체의 선택
17.1 화면에서 투영 창으로의 변환
17.2 세계 공간과 국소 공간의 선택 반직선
17.3 반직선 대 메시 교차 판정
17.4 예제 응용 프로그램
17.5 요약
17.6 연습문제
CHAPTER 18 입방체 매핑
18.1 입방체 매핑
18.2 환경 매핑
18.3 하늘에 텍스처 입히기
18.4 물체의 주변 환경 반사
18.5 동적 입방체 맵
18.6 기하 셰이더를 이용한 동적 입방체 매핑
18.7 요약
18.8 연습문제
CHAPTER 19 법선 매핑
19.1 동기
19.2 법선 맵
19.3 텍스처 공간 또는 접공간
19.4 정점 접공간
19.5 접공간과 물체 공간 사이의 변환
19.6 법선 매핑 셰이더 코드
19.7 요약
19.8 연습문제
CHAPTER 20 그림자 매핑
20.1 장면 깊이의 렌더링
20.2 직교 투영
20.3 투영 텍스처 좌표
20.4 그림자 매핑
20.5 큰 PCF 핵
20.6 요약
20.7 연습문제
CHAPTER 21 주변광 차폐
21.1 반직선 투사를 통한 주변광 차폐
21.2 화면 공간 주변광 차폐(SSAO)
21.3 요약
21.4 연습문제
CHAPTER 22 사원수
22.1 복소수 개괄
22.2 사원수 대수학
22.3 단위 사원수와 회전
22.4 사원수 보간
22.5 DirectXMath 라이브러리의 사원수 함수들
22.6 사원수 회전 예제
22.7 요약
22.8 연습문제
CHAPTER 23 캐릭터 애니메이션
23.1 뼈대 좌표계들의 계통구조
23.2 메시 스키닝
23.3 정점 혼합
23.4 파일에서 애니메이션 자료 적재
23.5 캐릭터 애니메이션 예제
23.6 요약
23.7 연습문제
APPENDIX A Windows 프로그래밍 입문
A.1 개요
A.2 기본적인 Windows 응용 프로그램
A.3 기본 Windows 응용 프로그램 설명
A.4 더 나은 메시지 루프
A.5 요약
A.6 연습문제
APPENDIX B HLSL 레퍼런스
B.1 변수 형식
B.2 키워드와 연산자
B.3 프로그램의 흐름
B.4 함수
APPENDIX C 해석기하학 주제 몇 가지
C.1 반직선, 선, 선분
C.2 평행사변형
C.3 삼각형
C.4 평면
C.5 연습문제
APPENDIX D 연습문제 해답 모음
APPENDIX E 참고문헌 및 더 읽을 거리
찾아보기
DirectX12로 졸업작품을 진행하다 보니 막히는 부분들이 나올 때 다른 책들을 참고하다가 이번에 그냥 하나 구입하게 되었습니다.
현재 어디에서 구입하던지 가격은 4만5천원 이기에 편하신 곳에서 구입하시면 됩니다.
저는 알라딘에서 구입하였는데 알라딘이 보통 1일 이내 배송되는 경우가 많고 책 가격이 만원 이상인 경우 무료 배송이기에 자주 이용하고 있습니다.
책은 도착한 상자를 열면 위 사진과 같이 꼼꼼하게 잘 포장되어 있는 것을 확인할 수 있습니다.
이번에는 마일리지로 컵을 신청했기에 책 외에 컵이 들어있는 상자도 같이 보입니다.
그런데 생각보다 컵이 커서 약간 당황했네요.
어쨋거나 컵은 차 마실때 사용할 수 있을 것 같습니다. 마음에 드네요.
영문판과 비교)
책의 크기는 영문판과 큰 차이가 있지 않습니다. 그리고 이전 판인 DirectX 11책보다 더 작은 것을 확인할 수 있었습니다.
책의 페이지 수는 영문판 824페이지, 한글판 1006페이지로 한글판이 페이지 수가 더 많습니다. 그런데 두께는 두 책이 비슷합니다.
가장 큰 차이점은 DVD의 유무인데, 영문판의 경우 예제 코드를 DVD로 제공하지만 한글판은 DVD를 제공하지 않습니다.
그 대신 한빛미디어 홈페이지에서 예제 코드를 다운로드 할 수 있습니다.
또, 가격 차이도 꽤 나는데, 영문판은 59.95달러, 한글판은 50000원으로 12000원 가량 차이가 납니다.
내용에 대해서)
제가 아직 내용에 대해서 이렇다 저렇다 할 수 있는 수준이 아니기에 현재 제가 진행하고 있는 프로젝트에 도움이 되는가 하는 기준으로 작성하자면, 상당한 도움이 되고 있습니다.
기본적으로 책의 앞 부분에서는 3차원 그래픽스에 필요한 기초 수학에 대한 내용을 확인할 수 있으며 각 챕터는 요약, 연습문제가 존재하여 해당 챕터의 내용을 확인하고 공부하는데 도움이 되고 있습니다.
또, 기본 적인 내용 외에 고급 효과들도 다루고 있기에 현재 프로젝트에도 도움이 많이 되고 있습니다.
다만 예제 코드는 이 책을 처음부터 봐 오면서 해당 프레임워크에 익숙해지지 않으면 상당히 혼란 스러울 수 있습니다.
저 같은 경우에는 프레임워크 구조가 완전히 다르기 때문에 그 부분에서 고생을 했습니다.
그리고 주석에서 왜 이런 방식으로 했는지에 대한 설명이 있었으면 하는데 그런 부분이 빠져 있기에 그런 부분은 조금 아쉬웠습니다.
결론)
만약 다이렉트12를 이용하여 프로젝트를 진행하고 싶다면 이 책은 상당한 도움이 될 수 있습니다. 다만 다이렉트 12가 이전 버전에서는 컴퓨터에 맡기던 부분도 사용자가 설정해 줘야 하는 경우가 많기 때문에 훨씬 더 복잡하고 그로인해 최적화가 어렵습니다.
물론 컴퓨터 구조를 완전히 이해하고 최적화를 할 자신이 있다면 다이렉트 12를 이용하여 프로젝트를 진행하면 더 좋은 결과를 얻을 수 있을 것이라 생각됩니다. 그러나 일반적으로는 그렇지 못하기에 다이렉트 11을 공부하는 게 더 낫지 않을까 생각합니다.