서브메뉴
검색
본문
Powered by NAVER OpenAPI
-
-
DirectX 9를 이용한 3D Game 프로그래밍 입문
저자 : Frank D. Luna
출판사 : 정보문화사
출판년 : 2004
정가 : 18000, ISBN : 8956741670
책소개
DirectX는 윈도우 플랫폼에서 멀티미디어 애플리케이션을 개발하기 위한 여러 가지 프로그래밍 인터페이스들의 모음으로, 이 책은 DirectX 버전 9.0을 기준으로 3D 게임 개발에 필요한 내용을 중점적으로 다루고 있다. 이 책에서는 드로잉이나 조명, 텍스처, 알파 블렌딩, 스텐실링 등과 같은 Direct3D의 기본적인 작업에서부터 시작하여 게임에 응용되는 Direct3D의 실용적인 기술에 이르기까지 다양한 내용들을 자세히 설명하고, 버텍스와 픽셀 셰이더, 이펙트 프레임웍과 고차원적인 셰이딩 언어 등도 포함되어 다루어진다.
목차
파트 I 수학적 준비
3-공간의 벡터
벡터 상등
벡터의 크기 계산
벡터의 정규화
벡터 더하기
벡터 빼기
스칼라 곱
내적
외적
행렬
상등, 스칼라 곱, 더하기
곱
항등 행렬
역행렬
행렬의 전치
D3DX 행렬
기본적인 변환
이동 행렬
회전 행렬
크기 변형 행렬
변환 조합하기
벡터 변환을 위한 몇 가지 함수들
평면
D3DXPLANE
포인트와 평면 공간 관계
평면 구축
평면 정규화
평면 변환
평면에서 특정 포인트와 가장 가까운 포인트
광선
광선
광선/평면 교차
요약
파트 II Direct3D 기초
제1장 Direct3D 초기화
1.1 Direct3D 개요
1.1.1 REF 장치
1.1.2 D3DDEVTYPE
1.2 COM
1.3 약간의 준비
1.3.1 표면(surface)
1.3.2 멀티 샘플링
1.3.3 픽셀 포맷
1.3.4 메모리 풀
1.3.5 스왑 체인과 페이지 플리핑
1.3.6 깊이 버퍼
1.3.7 버텍스 프로세싱
1.3.8 장치 특성
1.4 Direct3D 초기화하기
1.4.1 IDirect3D9 인터페이스 얻기
1.4.2 하드웨어 버텍스 프로세싱 확인하기
1.4.3 D3DPRESENT_PARAMETERS 구조체 채우기
1.4.4 IDirect3DDevice9 인터페이스 만들기
1.5 예제 애플리케이션: Direct3D 초기화
1.5.1 d3dUtility.h/cpp
1.5.2 예제 프레임웍
1.5.3 예제: D3D Init
1.6 요약
제2장 렌더링 파이프라인
2.1 모델 표현
2.1.1 버텍스 포맷
2.1.2 삼각형
2.1.3 인덱스
2.2 가상 카메라
2.3 렌더링 파이프라인
2.3.1 로컬 스페이스
2.3.2 월드 스페이스
2.3.3 뷰 스페이스
2.3.4 후면 추려내기
2.3.5 조명
2.3.6 클리핑
2.3.7 투영
2.3.8 뷰포트 변환
2.3.9 래스터라이즈
2.4 요약
제3장 Direct3D에서의 드로잉
3.1 버텍스/인덱스 버퍼
3.1.1 버텍스와 인덱스 버퍼 만들기
3.1.2 버퍼 메모리에 접근하기
3.1.3 버텍스 버퍼와 인덱스 버퍼에 대한 정보 얻기
3.2 렌더 상태
3.3 드로잉 준비
3.4 버텍스/인덱스 버퍼를 이용한 드로잉
3.4.1 IDirect3DDevice9::DrawPrimitive
3.4.2 IDirect3DDevice9::DrawIndexedPrimitive
3.4.3 장면의 시작/끝
3.5 D3DX 기하 물체
3.6 예제 애플리케이션: 삼각형, 입방체, 주전자, D3DXCreate*
3.7 요약
제4장 컬러
4.1 컬러 표현
4.2 버텍스 컬러
4.3 셰이딩
4.4 예제 애플리케이션: 컬러를 입힌 삼각형
4.5 요약
제5장 조명
5.1 조명의 요소
5.2 재질
5.3 버텍스 법선
5.4 광원
5.5 예제 애플리케이션: 조명
5.6 부가적인 예제들
5.7 요약
제6장 텍스처링
6.1 텍스처 좌표
6.2 텍스처의 작성과 활성화
6.3 필터
6.4 밉맵
6.4.1 밉맵 필터
6.4.2 Direct3D에서 밉맵 이용하기
6.5 어드레스 모드
6.6 예제 애플리케이션: 텍스처를 입힌 사각형
6.7 요약
제7장 블렌딩
7.1 블렌딩 방정식
7.2 블렌드 인수
7.3 투명
7.3.1 알파 채널
7.3.2 알파 채널 원본 지정하기
7.4 DirectX 텍스처 툴로 알파 채널 만들기
7.5 예제 애플리케이션: 투명
7.6 요약
제8장 스텐실
8.1 스텐실 버퍼 이용하기
8.1.1 스텐실 버퍼 요청하기
8.1.2 스텐실 테스트
8.1.3 스텐실 테스트 제어하기
8.1.4 스텐실 버퍼 갱신하기
8.1.5 스텐실 쓰기 매스크
8.2 예제 애플리케이션: 거울
8.2.1 반사를 위한 수학
8.2.2 거울 구현의 개관
8.2.3 코드와 설명
8.3 예제 애플리케이션: 평면 그림자
8.3.1 평행 그림자
8.3.2 점 조명 그림자
8.3.3 그림자 행렬
8.3.4 더블 블렌딩을 막기 위한 스텐실 버퍼 이용
8.3.5 코드와 설명
8.4 요약
파트 III Direct3D 응용
제9장 글꼴
9.1 ID3DXFont
9.1.1 ID3DXFont 만들기
9.1.2 텍스트 그리기
9.1.3 초당 렌더링 프레임 계산하기
9.2 CD3DFont
9.2.1 CD3Dfont 구성하기
9.2.2 텍스트 그리기
9.2.3 정리
9.3 D3DXCreateText
9.4 요약
제10장 메쉬 파트 I
10.1 기하 정보
10.2 서브셋과 속성 버퍼
10.3 드로잉
10.4 최적화
10.5 속성 테이블
10.6 근접 정보
10.7 복제
10.8 메쉬 만들기(D3DXCreateMeshFVF)
10.9 예제 애플리케이션: 메쉬 생성과 렌더링
10.10 요약
제11장 메쉬 파트 II
11.1 ID3DXBuffer
11.2 XFiles
11.2.1 Xfile 읽어들이기
11.2.2 XFile 재질
11.2.3 예제 애플리케이션: XFile
11.2.4 버텍스 법선 생성하기
11.3 프로그레시브 메쉬
11.3.1 프로그레시브 메쉬 생성하기
11.3.2 버텍스 속성 영향력
11.3.3 ID3DXPMesh 메서드
11.3.4 예제 애플리케이션: 프로그레시브 메쉬
11.4 경계 볼륨
11.4.1 몇 가지 새로운 특수 상수
11.4.2 경계 볼륨 형
11.4.3 예제 애플리케이션: 경계 볼륨
11.5 요약
제12장 유연한 카메라 클래스 만들기
12.1 카메라 디자인
12.2 구현 방법
12.2.1 뷰 행렬 계산하기
12.2.2 임의의 축으로 회전하기
12.2.3 Pitch, Yaw, Roll
12.2.4 걷기, 옆걸음질, 날기
12.3 예제 애플리케이션: 카메라
12.4 요약
제13장 기본적인 지형 렌더링
13.1 높이맵
13.1.1 높이맵 만들기
13.1.2 RAW 파일 로딩하기
13.1.3 높이맵 접근과 수정
13.2 지형 기하정보 생성하기
13.2.1 버텍스 계산하기
13.2.2 인덱스 계산 - 삼각형 정의하기
13.3 텍스처링
13.3.1 절차적 방식
13.4 조명
13.4.1 개요
13.4.2 사각형의 음영 계산하기
13.4.3 지형에 음영 입히기
13.5 지형 위를 “걷기”
13.6 예제 애플리케이션: 지형
13.7 약간의 개선점
13.8 요약
제14장 파티클 시스템
14.1 파티클과 포인트 스프라이트
14.1.1 구조체 포맷
14.1.2 포인트 스프라이트 렌더 상태
14.1.3 파티클과 파티클의 속성들
14.2 파티클 시스템의 요소들
14.2.1 파티클 시스템의 드로잉
14.2.2 무작위성
14.3 전형적인 파티클 시스템: 눈, 불꽃놀이, 입자총
14.3.1 예제 애플리케이션: 눈
14.3.2 예제 애플리케이션: 불꽃놀이
14.3.3 예제 애플리케이션: 입자총
14.4 요약
제15장 픽킹
15.1 스크린에서 투영창으로의 변환
15.2 픽킹 광선의 계산
15.3 광선의 변환
15.4 광선-물체 교차
15.5 예제 애플리케이션: 픽킹
15.6 요약
파트 IV 셰이더와 효과
제16장 고수준 셰이딩 언어 소개
16.1 HLSL 셰이더 작성하기
16.1.1 전역
16.1.2 입력과 출