第一篇 d游戲編程基礎
第1章 windows編程基礎
1.1 簡單的windows應用程序
1.1.1 創(chuàng)建windows應用程序項目
1.1.2 配置、生成及運行項目
1.2 windows應用程序結構
1.2.1 數(shù)據類型
1.2.2 入口函數(shù)
1.2.3 注冊窗口類
1.2.4 創(chuàng)建并顯示窗口
1.3 windows消息機制
1.3.1 消息隊列
1.3.2 消息循環(huán)
1.3.3 消息處理
1.4 匈牙利命名法
1.4.1 類型和常量的命名
1.4.2 變量的命名
1.4.3 函數(shù)和參數(shù)的命名
1.4.4 類的命名
1.5 本章小結
第2章 direct3d編程基礎
2.1 directx概述
2.1.1 directx的發(fā)展過程
2.1.2 directx的組成部分
2.1.3 direct3d與com
2.1.4 direct3d接口對象
2.2 direct3d渲染流水線
2.2.1 渲染流水線
2.2.2 靈活頂點格式
2.2.3 d3d中的顏色
2.2.4 d3d中的圖元
2.3 direct3d程序結構
2.3.1 簡單的direct3d應用程序
2.3.2 創(chuàng)建direct3d接口對象
2.3.3 獲取硬件設備信息
2.3.4 創(chuàng)建direct3d設備接口
2.3.5 開始direct3d圖形繪制
2.3.6 結束并清理對象資源
2.4 頂點緩存
2.4.1 創(chuàng)建頂點緩存
2.4.2 訪問頂點緩存
2.4.3 使用頂點緩存繪制圖形
2.4.4 頂點緩存的繪制示例
2.5 索引緩存
2.5.1 創(chuàng)建索引緩存
2.5.2 訪問索引緩存
2.5.3 使用索引緩存繪制圖形
2.5.4 索引緩存的繪制示例
2.6 direct3d渲染狀態(tài)
2.6.1 剔除狀態(tài)
2.6.2 著色狀態(tài)
2.6.3 填充狀態(tài)
2.7 本章小結
第3章 基本的數(shù)學基礎
3.1 坐標空間
3.1.1 d笛卡兒坐標系
3.1.2 多坐標系統(tǒng)
3.2 向量
3.2.1 向量的基本概念
3.2.2 向量的基本運算
3.2.3 d3d中的向量
3.3 矩陣
3.3.1 矩陣的基本概念
3.3.2 矩陣的基本運算
3.3.3 矩陣的基本變換
3.3.4 d3d中的矩陣
3.4 平面及射線
3.4.1 平面的定義
3.4.2 點與平面的關系
3.4.3 射線的定義
3.4.4 射線與平面的關系
3.5 空間坐標變換
3.5.1 世界變換
3.5.2 取景變換
3.5.3 投影變換
3.5.4 視口變換
3.6 空間坐標變換示例
3.7 本章小結
第二篇 d游戲圖形渲染
第4章 光照與材質
4.1 光照模型
4.1.1 環(huán)境光
4.1.2 漫反射光
4.1.3 鏡面反射光
4.2 光源類型
4.2.1 點光源
4.2.2 方向光
4.2.3 聚光燈
4.3 物體的材質
4.3.1 d3d材質
4.3.2 頂點法線
4.4 光照與材質示例
4.5 本章小結
第5章 紋理映射
5.1 紋理映射基礎
5.1.1 紋理坐標
5.1.2 創(chuàng)建紋理
5.1.3 啟用紋理
5.1.4 創(chuàng)建紋理示例
5.2 紋理過濾
5.2.1 最近點采樣過濾
5.2.2 線性紋理過濾
5.2.3 各向異性過濾
5.2.4 多級漸進過濾
5.2.5 紋理過濾示例
5.3 紋理尋址
5.3.1 重復尋址
5.3.2 鏡像尋址
5.3.3 夾取尋址
5.3.4 邊框顏色尋址
5.3.5 紋理尋址示例
5.4 紋理包裝
5.4.1 紋理包裝原理
5.4.2 紋理包裝示例
5.5 本章小結
第6章 網格模型
6.1 網格模型基礎
6.1.1 網格的子集及屬性
6.1.2 網格的鄰接信息
6.1.3 網格的創(chuàng)建及繪制
6.1.4 創(chuàng)建及繪制網格示例
6.2 網格的優(yōu)化及克隆
6.2.1 優(yōu)化網格
6.2.2 克隆網格
6.3 x文件格式分析
6.3.1 模板的定義
6.3.2 常用的模板類型
6.3.3 x文件的結構
6.4 從x文件創(chuàng)建網格
6.4.1 加載網格模型數(shù)據
6.4.2 獲取紋理和材質信息
6.4.3 繪制網格模型
6.4.4 讀取x文件示例
6.5 創(chuàng)建漸進網格模型
6.5.1 id3dxpmesh接口
6.5.2 創(chuàng)建并繪制漸進網格
6.5.3 創(chuàng)建漸進網格示例
6.6 d3d中的幾何體
6.7 本章小結
第7章 深度、融合及模板
7.1 深度測試
7.1.1 深度緩存
7.1.2 深度測試
7.1.3 深度測試示例
7.2 融合技術
7.2.1 融合因子
7.2.2 alpha來源
7.2.3 啟用alpha融合
7.2.4 alpha融合示例
7.3 模板技術
7.3.1 模板緩存
7.3.2 模板測試
7.3.3 更新模板緩存
7.4 鏡面效果
7.4.1 鏡面成像原理
7.4.2 實現(xiàn)鏡面效果
7.5 本章小結
第8章 hlsl語言基礎
8.1 hlsl概述
8.1.1 可編程管線
8.1.2 hlsl工作模型
8.2 簡單的hlsl程序
8.2.1 編寫hlsl代碼
8.2.2 hlsl關鍵字和保留字
8.2.3 hlsl預處理指令
8.2.4 輸入、輸出結構
8.2.5 hlsl入口函數(shù)
8.3 hlsl基本語法
8.3.1 hlsl中的變量
8.3.2 hlsl中的函數(shù)
8.4 d3d與hlsl交互
8.4.1 編譯著色器程序
8.4.2 獲取常量的句柄
8.4.3 設置常量的值
8.5 hlsl程序示例
8.6 本章小結
第9章 著色器與效果
9.1 頂點著色器
9.1.1 創(chuàng)建頂點聲明
9.1.2 使用頂點著色器
9.1.3 頂點著色器示例
9.2 漸變動畫效果
9.2.1 漸變動畫原理
9.2.2 實現(xiàn)漸變動畫
9.3 像素著色器
9.3.1 創(chuàng)建像素著色器
9.3.2 使用像素著色器
9.4 多重紋理混合
9.4.1 hlsl采樣器
9.4.2 多重紋理坐標
9.4.3 啟用多重紋理
9.4.4 多重紋理示例
9.5 效果框架
9.5.1 通道與手法
9.5.2 著色器內置對象
9.5.3 效果中的渲染狀態(tài)
9.5.4 創(chuàng)建效果框架
9.5.5 效果中常量的設置
9.5.6 使用效果框架
9.5.7 效果框架示例
9.6 本章小結
第三篇 d游戲輸入控制
第10章 directx輸入控制
10.1 directinput接口
10.2 使用directinput接口
10.2.1 directinput的初始化
10.2.2 創(chuàng)建設備接口對象
10.2.3 設置數(shù)據格式
10.2.4 設置協(xié)作級別
10.2.5 設置特殊屬性
10.2.6 獲取、輪詢設備
10.2.7 讀取設備數(shù)據
10.3 使用directinput處理鍵盤
10.3.1 初始化鍵盤設備接口
10.3.2 獲取輸入的鍵盤數(shù)據
10.3.3 鍵盤輸入控制示例
10.4 使用directinput處理鼠標
10.4.1 在d3d中移動鼠標
10.4.2 初始化鼠標設備接口
10.4.3 獲取鼠標的移動位置
10.4.4 鼠標輸入控制示例
10.5 使用directinput處理游戲桿
10.5.1 游戲桿及其控制原理
10.5.2 初始化游戲桿設備接口
10.5.3 讀取游戲桿的狀態(tài)數(shù)據
10.5.4 游戲桿輸入控制示例
10.6 本章小結
第四篇 d游戲應用編程
第11章 攝像機、地形及天空
11.1 虛擬攝像機
11.1.1 攝像機的屬性
11.1.2 攝像機的變換
11.1.3 攝像機的實現(xiàn)
11.1.4 攝像機應用示例
11.2 三維地形系統(tǒng)
11.2.1 地形高度圖
11.2.2 頂點的計算
11.2.3 索引的計算
11.2.4 地形的繪制
11.2.5 地形類的實現(xiàn)
11.2.6 地形繪制示例
11.3 球形天空頂
11.3.1 頂點的計算
11.3.2 索引的計算
11.3.3 天空的繪制
11.3.4 天空類的實現(xiàn)
11.3.5 天空繪制示例
11.4 本章小結
第12章 文字、拾取及碰撞檢測
12.1 字體及文本繪制
12.1.1 繪制2d文本
12.1.2 繪制3d文本
12.1.3 文本繪制示例
12.2 拾取技術
12.2.1 網格外接體
12.2.2 拾取技術原理
12.2.3 拾取應用示例
12.3 碰撞檢測
12.3.1 邊界球碰撞檢測
12.3.2 aabb碰撞檢測
12.3.3 obb樹碰撞檢測
12.3.4 aabb碰撞檢測示例
12.4 本章小結
第13章 骨骼動畫
13.1 x文件中的骨骼信息
13.1.1 骨骼蒙皮信息
13.1.2 骨骼層次信息
13.1.3 模型動畫信息
13.2 加載骨骼動畫數(shù)據
13.2.1 擴展結構體
13.2.2 加載x文件
13.2.3 callocatehierarchy類
13.2.4 生成蒙皮網格
13.3 頂點混合技術
13.3.1 頂點混合原理
13.3.2 索引頂點混合
13.4 骨骼動畫的繪制
13.4.1 開啟頂點混合
13.4.2 更新骨骼矩陣
13.4.3 繪制骨骼動畫
13.5 骨骼動畫控制器
13.5.1 使用動畫控制器
13.5.2 平滑過渡動畫集
13.6 骨骼動畫示例
13.7 本章小結
第14章 實時陰影
14.1 平面陰影的原理
14.1.1 點光源平面陰影
14.1.2 方向光平面陰影
14.2 平面陰影的實現(xiàn)
14.2.1 計算陰影矩陣
14.2.2 平面陰影的繪制
14.2.3 平面陰影示例
14.3 體積陰影的原理
14.3.1 模型陰影體
14.3.2 陰影錐的計算
14.4 體積陰影的實現(xiàn)
14.4.1 體積陰影的繪制
14.4.2 體積陰影示例
14.5 陰影貼圖的原理
14.6 本章小結
第15章 廣告牌技術與粒子系統(tǒng)
15.1 廣告牌技術
15.1.1 廣告牌的原理
15.1.2 廣告牌的實現(xiàn)
15.1.3 廣告牌示例
15.2 粒子系統(tǒng)
15.2.1 粒子系統(tǒng)的原理
15.2.2 粒子系統(tǒng)的實現(xiàn)
15.2.3 粒子系統(tǒng)的更新
15.2.4 粒子系統(tǒng)的繪制
15.3 粒子系統(tǒng)示例
15.3.1 煙花示例
15.3.2 噴泉示例
15.4 本章小結
第16章 霧化及l(fā)od地形
16.1 霧化效果
16.1.1 霧化混合因子
16.1.2 頂點霧化
16.1.3 像素霧化
16.1.4 范圍霧化
16.2 lod地形原理
16.2.1 lod四叉樹算法
16.2.2 lod地形的實現(xiàn)
16.2.3 節(jié)點剔除原理
16.2.4 節(jié)點簡化準則
16.2.5 地形裂縫的處理
16.2.6 地形的更新及繪制
16.3 lod地形示例
16.4 本章小結
第五篇 d游戲音頻輸出
第17章 direct3d音頻控制
17.1 音頻文件格式
17.1.1 音頻的基本概念
17.1.2 wav音頻格式
17.1.3 midi音頻格式
17.1.4 mp3音頻格式
17.2 使用directsound處理音頻
17.2.1 directsound的結構
17.2.2 directsound的初始化
17.2.3 directsound音頻緩沖
17.2.4 向緩沖區(qū)中寫入數(shù)據
17.2.5 播放聲音及音頻控制
17.2.6 用directsound反饋信息
17.2.7 directsound應用示例
17.3 使用directmusic處理音頻
17.3.1 directmusic的結構
17.3.2 開始使用directmusic
17.3.3 加載、操作midi段
17.3.4 directmusic應用示例
17.4 使用directshow處理音頻
17.4.1 directshow的工作原理
17.4.2 directshow的初始化
17.4.3 加載流媒體數(shù)據
17.4.4 控制流媒體的播放
17.4.5 directshow應用示例
17.5 本章小結
第六篇 d游戲網絡通信
第18章 direct3d網絡控制
18.1 了解網絡互聯(lián)
18.1.1 網絡會話模型
18.1.2 尋址與通信協(xié)議
18.2 directplay概述
18.2.1 創(chuàng)建和管理會話
18.2.2 directplay傳輸協(xié)議
18.2.3 directplay網絡對象
18.2.4 玩家與游戲大廳
18.3 客戶/服務會話
18.3.1 初始化網絡對象
18.3.2 選擇服務提供者
18.3.3 使用directplay地址
18.3.4 建立客戶/服務會話
18.3.5 發(fā)送、接收數(shù)據
18.3.6 創(chuàng)建并使用分組
18.3.7 結束及終止會話
18.4 游戲大廳的支持
18.4.1 游戲大廳的結構
18.4.2 實現(xiàn)游戲大廳客戶端
18.4.3 實現(xiàn)支持大廳的程序
18.5 客戶/服務會話示例
18.5.1 創(chuàng)建服務端程序
18.5.2 創(chuàng)建客戶端程序
18.6 本章小結
附 錄
附錄a directx9 sdk的安裝與配置
a.1 安裝directx
a.2 配置開發(fā)環(huán)境
a.3 瀏覽directx示例
附錄b dxut程序框架介紹
b.1 創(chuàng)建dxut項目
b.2 dxut框架的初始化
b.3 創(chuàng)建應用程序窗口
b.4 創(chuàng)建direct3d設備
b.5 dxut的事件處理
b.5.1 框架事件
b.5.2 設備事件
b.5.3 消息事件
b.6 dxut的錯誤處理