注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)游戲設(shè)計(jì)DirectX游戲編程

DirectX游戲編程

DirectX游戲編程

定 價:¥45.00

作 者: 周國慶 等編著
出版社: 清華大學(xué)出版社
叢編項(xiàng): 第九藝術(shù)學(xué)院——游戲開發(fā)系列教材
標(biāo) 簽: 計(jì)算機(jī)教材

ISBN: 9787302215936 出版時間: 2010-01-01 包裝: 平裝
開本: 16開 頁數(shù): 365 字?jǐn)?shù):  

內(nèi)容簡介

  利用Direct3D進(jìn)行圖形程序開發(fā)的核心技術(shù),從三維向量開始,由淺入深,逐步講解3D圖形編程中的矩陣變換相關(guān)知識、投影知識,及視口處理、裁剪處理、深度緩存的應(yīng)用技術(shù)。在高級繪圖技術(shù)中進(jìn)一步講解紋理處理、透明及混合技術(shù)的應(yīng)用、模板的應(yīng)用、光照及陰影技術(shù)、網(wǎng)格的應(yīng)用、利用網(wǎng)格技術(shù)處理模型顯示、在Direct3D程序中顯示文字、粒子系統(tǒng)的創(chuàng)建及應(yīng)用。書的后半部分講解游戲設(shè)計(jì)的高級特性,如攝像機(jī)封裝技術(shù)、地形顯示技術(shù)、場景中的模型撿取。最后講解GPU編程相關(guān)的知識,讓用戶了解高級著色的相關(guān)內(nèi)容?!禗irectX游戲編程》每章都以簡單的實(shí)例來輔助對知識點(diǎn)的講解,力求深入淺出,知識由淺入深,難度是逐漸遞增的,另外《DirectX游戲編程》的章節(jié)之間沒有過分緊密的程序連接,所以有—定基礎(chǔ)的人員,可以選擇需要的章節(jié)單獨(dú)閱讀。《DirectX游戲編程》面向的群體為高校數(shù)字媒體藝術(shù)程序設(shè)計(jì)專業(yè)的學(xué)生,及自考學(xué)生,或有一定編程基礎(chǔ)的專業(yè)圖形編程人員。

作者簡介

暫缺《DirectX游戲編程》作者簡介

圖書目錄

第1部分 必備的數(shù)學(xué)知識
第1章 基本的數(shù)學(xué)概念 3
1.1 三維空間中的向量 3
1.1.1 向量的相等 6
1.1.2 向量模的計(jì)算 7
1.1.3 向量歸一化 8
1.1.4 向量加法 8
1.1.5 向量減法 9
1.1.6 數(shù)乘 10
1.1.7 點(diǎn)乘 10
1.1.8 叉乘 11
1.2 矩陣 12
1.2.1 矩陣的相等、矩陣數(shù)乘和矩陣加法 13
1.2.2 矩陣乘法 13
1.2.3 單位矩陣 15
1.2.4 逆矩陣 15
1.2.5 矩陣的轉(zhuǎn)置 16
1.2.6 D3DX中的矩陣 16
1.2.7 基本變換 19
1.2.8 平移變換 20
1.2.9 旋轉(zhuǎn)矩陣 21
1.2.10 縮放矩陣 23
1.2.11 組合變換 23
1.2.12 一些用于向量變換的函數(shù) 25
1.3 平面 25
1.3.1 D3DX中的平面 26
1.3.2 點(diǎn)和平面之間的關(guān)系 27
1.3.3 構(gòu)建平面 27
1.3.4 標(biāo)準(zhǔn)化一個平面 28
1.3.5 對平面進(jìn)行變換操作 29
1.3.6 求到一個指定點(diǎn)距離最短的平面上的點(diǎn) 29
1.4 射線 30
1.4.1 射線的表達(dá)式 30
1.4.2 射線與平面的相交 31
1.5 小結(jié) 31
第2部分 Direct3D基礎(chǔ)知識
第2章 Direct3D初始化 35
2.1 Direct3D體系結(jié)構(gòu) 35
2.1.1 REF設(shè)備 36
2.1.2 D3D設(shè)備類型 36
2.2 組件對象模型 37
2.3 預(yù)備知識 37
2.3.1 表面緩沖區(qū)(Surface) 37
2.3.2 重采樣 39
2.3.3 像素格式 40
2.3.4 存儲池 40
2.3.5 交換鏈和頁面翻轉(zhuǎn) 41
2.3.6 深度緩沖區(qū) 42
2.3.7 頂點(diǎn)處理 43
2.3.8 設(shè)備性能 43
2.4 初始化Direct3D 44
2.4.1 獲得IDirect3D9接口 45
2.4.2 確認(rèn)硬件頂點(diǎn)處理能力 45
2.4.3 填充D3DPRESENT_ PARAMETERS結(jié)構(gòu) 46
2.4.4 創(chuàng)建一個IDirect3DDevice9接口 48
2.5 示例:初始化Direct3D 49
2.5.1 d3dUtility.h/cpp文件 50
2.5.2 程序框架 52
2.5.3 D3D初始化示例 52
2.6 小結(jié) 55
第3章 渲染管道 57
3.1 描述的模型 57
3.1.1 頂點(diǎn)格式 58
3.1.2 三角形 59
3.1.3 索引 60
3.2 虛擬攝像機(jī) 60
3.3 渲染管道 61
3.3.1 本地空間 62
3.3.2 世界空間 62
3.3.3 視圖空間 63
3.3.4 背面裁剪 65
3.3.5 光照 66
3.3.6 裁剪 66
3.3.7 投影 67
3.3.8 視口變換 69
3.3.9 光柵化 70
3.4 小結(jié) 70
第4章 在Direct3D中繪制圖形 71
4.1 頂點(diǎn)/索引緩沖區(qū) 71
4.1.1 創(chuàng)建頂點(diǎn)緩沖區(qū)和索引緩沖區(qū) 71
4.1.2 訪問緩沖區(qū)內(nèi)存 74
4.1.3 獲得頂點(diǎn)緩沖區(qū)以及索引緩沖區(qū)的相關(guān)信息 75
4.2 渲染狀態(tài) 76
4.3 渲染前的準(zhǔn)備工作 77
4.4 使用頂點(diǎn)/索引緩沖區(qū)進(jìn)行渲染 78
4.4.1 IDirect3DDevice9::DrawPrimitive 78
4.4.2 IDirect3DDevice9::DrawIndexedPrimitive 78
4.4.3 Begin/End Scene 80
4.5 D3DX自帶的幾何物體 80
4.6 示例:三角形、立方體、茶壺、D3DXCreate* 81
4.7 小結(jié) 85
第5章 顏色 87
5.1 顏色的描述方法 87
5.2 頂點(diǎn)顏色 90
5.3 著色處理 90
5.4 示例:帶顏色的三角形 91
5.5 小結(jié) 93
第6章 光照 95
6.1 光的組成 95
6.2 材質(zhì) 96
6.3 頂點(diǎn)法線 98
6.4 光源 100
6.5 示例:光照 104
6.6 其他例子 106
6.7 小結(jié) 107
第7章 紋理 109
7.1 紋理坐標(biāo) 109
7.2 創(chuàng)建并應(yīng)用紋理 111
7.3 紋理過濾 112
7.4 多紋理映射 113
7.4.1 多紋理映射過濾 113
7.4.2 在Direct3D中使用多紋理映射 114
7.5 紋理坐標(biāo)尋址模式 114
7.6 程序示例:帶紋理的四邊形 116
7.7 小結(jié) 118
第8章 混合技術(shù) 119
8.1 混合方程 119
8.2 混合因子 121
8.3 透明 121
8.3.1 Alpha通道 122
8.3.2 指定源像素的Alpha值 122
8.4 用DirectX的紋理工具創(chuàng)建Alpha通道 123
8.5 示例:透明效果 124
8.6 小結(jié) 127
第9章 模板緩沖區(qū) 129
9.1 使用模板緩沖區(qū) 130
9.1.1 獲取模板緩沖區(qū) 131
8.1.2 模板測試 131
9.1.3 模板測試的控制 131
9.1.4 更新模板緩沖區(qū) 133
9.1.5 模板寫入掩碼 134
9.2 示例:鏡子 134
9.2.1 鏡面反射的相關(guān)數(shù)學(xué)知識 134
9.2.2 鏡面效果的實(shí)現(xiàn)概述 136
9.2.3 代碼和解釋 137
9.3 示例:平面陰影 140
9.3.1 平行光陰影 141
9.3.2 點(diǎn)光源陰影 142
9.3.3 陰影矩陣 142
9.3.4 用模板緩沖區(qū)來防止二次混合 143
9.3.5 代碼和解釋 144
9.4 小結(jié) 146
第3部分 Direct3D的應(yīng)用
第10章 文字處理 149
10.1 ID3DXFont、ID3DXFont接口 149
10.1.1 創(chuàng)建一個ID3DXFont接口 149
10.1.2 文字輸出 150
10.1.3 計(jì)算幀速(FPS) 151
10.2 CD3DFont、CD3DFont類 152
10.2.1 構(gòu)造CD3DFont對象 152
10.2.2 DrawText輸出文字 153
10.2.3 銷毀CD3DFont對象 153
10.3 三維網(wǎng)格(3D Mesh)在文字顯示中的應(yīng)用 154
10.3.1 D3DXCreateText方法 154
10.4 小結(jié) 155
第11章 網(wǎng)格(1) 157
11.1 幾何信息 157
11.2 網(wǎng)格子集(Subset)和屬性緩沖區(qū) 158
11.3 網(wǎng)格的渲染 160
11.4 網(wǎng)格優(yōu)化 160
11.5 網(wǎng)格屬性表 162
11.6 鄰接信息 164
11.7 網(wǎng)格的克隆(Cloning) 165
11.8 網(wǎng)格的創(chuàng)建 (D3DXCreateMeshFVF) 166
11.9 示例:創(chuàng)建并渲染一個網(wǎng)格 168
11.10 小結(jié) 173
第12章 網(wǎng)格(2) 175
12.1 ID3DXBuffer接口 175
12.2 .X文件 176
12.2.1 讀取.X文件 177
12.2.2 X文件中的材質(zhì) 178
12.2.3 X文件實(shí)例 178
12.2.4 生成頂點(diǎn)法線 181
12.3 漸進(jìn)式網(wǎng)格 182
12.3.1 生成漸進(jìn)式網(wǎng)格 183
12.3.2 頂點(diǎn)屬性權(quán)重 184
12.3.3 ID3DXPMesh接口的相關(guān)方法 185
12.3.4 示例:漸進(jìn)式網(wǎng)格 186
12.4 包圍體 189
12.4.1 新的常量 191
12.4.2 各種不同的包圍體 191
12.4.3 包圍體示例 192
12.5 小結(jié) 194
第13章 構(gòu)建一個靈活的攝像機(jī)類 195
13.1 設(shè)計(jì)攝像機(jī) 195
13.2 攝像機(jī)類的實(shí)現(xiàn)細(xì)節(jié) 197
13.2.1 計(jì)算視圖矩陣 197
13.2.2 繞任意軸的旋轉(zhuǎn) 200
13.2.3 俯仰、偏轉(zhuǎn)和翻滾 200
13.2.4 行走、平移和飛行 203
13.3 示例:攝像機(jī) 204
13.4 小結(jié) 206
第14章 基本地形渲染 207
14.1 高度圖 208
14.1.1 高度圖的創(chuàng)建 208
14.1.2 讀取RAW文件 209
14.1.3 高度圖的訪問和修改 210
14.2 生成地形幾何數(shù)據(jù) 210
14.2.1 計(jì)算頂點(diǎn) 212
14.2.2 計(jì)算索引——定義三角形 214
14.3 紋理 216
14.3.1 用程序生成紋理數(shù)據(jù) 216
14.4 光照 218
14.4.1 概述 219
14.4.2 計(jì)算方格的陰影 219
14.4.3 計(jì)算地形陰影 221
14.5 在地形上“行走” 221
14.6 Terrain示例程序 225
14.7 一些改進(jìn)措施 226
14.8 小結(jié) 227
第15章 粒子系統(tǒng) 229
15.1 粒子和點(diǎn)精靈 229
15.1.1 結(jié)構(gòu)格式 230
15.1.2 Point Sprite渲染狀態(tài) 230
15.1.3 粒子及其屬性 232
15.2 粒子系統(tǒng)組件 233
15.2.1 粒子系統(tǒng)的渲染 238
15.2.2 粒子的隨機(jī)性 241
15.3 實(shí)現(xiàn)三個具體的粒子系統(tǒng):雪景、焰火和粒子槍 242
15.3.1 示例:雪景 242
15.3.2 示例:焰火 244
15.3.3 示例:粒子槍 246
15.4 小結(jié) 248
第16章 撿取 249
16.1 屏幕到投影窗口的變換 251
16.2 計(jì)算Picking射線 252
16.3 變換射線 253
16.4 射線與物體的相交檢測 254
16.5 示例:Picking 256
16.6 小結(jié) 257
第4部分 Shader和特效
第17章 高級Shader語言的介紹 261
17.1 使用HLSL編寫Shader程序 262
17.1.1 全局變量 263
17.1.2 輸入輸出結(jié)構(gòu) 264
17.1.3 入口點(diǎn)函數(shù) 265
17.2 編譯一個HLSL Shader程序 266
17.2.1 常量表 266
17.2.2 編譯HLSL Shader程序 270
17.3 變量類型 272
17.3.1 標(biāo)量類型 272
17.3.2 向量類型 272
17.3.3 矩陣類型 273
17.3.4 數(shù)組 275
17.3.5 結(jié)構(gòu) 275
17.3.6 typedef關(guān)鍵字 276
17.3.7 變量前綴 276
17.4 關(guān)鍵字、語句和類型轉(zhuǎn)換 277
17.4.1 關(guān)鍵字 277
17.4.2 基本的程序流程 277
17.4.3 類型轉(zhuǎn)換 278
17.5 運(yùn)算符 279
17.6 用戶自定義函數(shù) 280
17.7 內(nèi)建函數(shù) 282
17.8 小結(jié) 284
第18章 Vertex Shader的介紹 285
18.1 頂點(diǎn)聲明(Vertex Declaration) 286
18.1.1 頂點(diǎn)聲明的描述 286
18.1.2 創(chuàng)建頂點(diǎn)聲明 289
18.1.3 啟用一個頂點(diǎn)聲明 289
18.2 頂點(diǎn)數(shù)據(jù)的用途 290
18.3 使用Vertex Shader的步驟 292
18.3.1 編寫與編譯 Vertex Shader 292
18.3.2 創(chuàng)建Vertex Shader 292
18.3.3 設(shè)置Vertex Shader 293
18.3.4 銷毀Vertex Shader 293
18.4 示例:散射光 293
18.5 示例:卡通渲染 (Cartoon Rendering) 299
18.5.1 卡通著色 (Cartoon Shading) 300
18.5.2 卡通著色的Vertex Shader 代碼 301
18.5.3 勾畫出物體的輪廓 303
18.6 小結(jié) 308
第19章 Pixel Shader入門 309
19.1 多重紋理概述 309
19.1.1 啟用多重紋理 311
19.1.2 多重紋理坐標(biāo) 312
19.2 Pixel Shader的輸入和輸出 313
19.3 使用Pixel Shader的步驟 314
19.3.1 編寫并編譯Pixel Shader 程序 314
19.3.2 創(chuàng)建一個Pixel Shader 314
19.3.3 設(shè)置一個Pixel Shader 315
19.3.4 銷毀一個Pixel Shader 315
19.4 HLSL取樣對象 315
19.5 示例:通過Pixel Shader實(shí)現(xiàn) 多重紋理 317
19.6 小結(jié) 324
第20章 特效框架 (Effects Framework) 325
20.1 Technique與Pass 326
20.2 更多的HLSL內(nèi)建對象 327
20.2.1 texture對象 327
20.2.2 取樣器(sampler)對象和取樣器狀態(tài) 328
20.2.3 Vertex Shader對象和Pixel Shader對象 328
20.2.4 字符串(string) 329
20.2.5 注解(Annotations) 330
20.3 特效文件中的設(shè)備狀態(tài) 330
20.4 創(chuàng)建一個特效 331
20.5 設(shè)置常量 333
20.6 使用特效 335
20.6.1 獲得特效句柄 335
20.6.2 激活特效 336
20.6.3 啟用特效 336
20.6.4 設(shè)置當(dāng)前的渲染Pass 337
20.6.5 關(guān)閉特效 337
20.6.6 示例 337
20.7 示例:通過特效文件實(shí)現(xiàn)光照效果和紋理貼圖 338
20.8 示例:霧化效果 343
20.9 示例:卡通效果 345
20.10 特效編輯器(EffectEdit) 347
20.11 小結(jié) 347
附錄A Windows程序設(shè)計(jì)簡介 349
A.1 概述 349
A.1.1 資源 350
A.1.2 事件、消息隊(duì)列、消息和
消息循環(huán) 350
A.1.3 圖形用戶接口(GUI) 351
A.2 簡單的Windows應(yīng)用程序 352
A.3 一個更好的消息循環(huán) 364
A.4 小結(jié) 365
參考文獻(xiàn) 366

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號