3dwoo大學簡體電腦書店
Virtools引擎3D游戲程序設計
( 簡體 字)
作者:覃伯明類別:1. -> 多媒體 -> Virtools
出版社:清華大學出版社Virtools引擎3D游戲程序設計 3dWoo書號: 35848
詢問書籍請說出此書號!
有庫存
NT售價: 295
出版日:6/5/2013
頁數:492
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 字 )
ISBN:9787302313274 加入購物車加到我的最愛 (請先登入會員)
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社)

第一部分 VSL腳本語言程序設計
第1章 認識VSL 3
1.1 VSL簡介 3
1.1.1 BB與VSL的關系 3
1.1.2 VSL的優勢 3
1.1.3 VSL腳本語言與C語言的對比 5
1.1.4 VSL與其他腳本語言的差異 5
1.2 VSL腳本管理器 5
1.2.1 VSL腳本管理器的使用 5
1.2.2 創造VSL腳本程序 6
1.2.3 帶輸入輸出的VSL腳本程序 7
1.2.4 VSL腳本程序的重命名、定位和刪除 10
1.2.5 VSL快捷鍵使用 10
1.3 VSL語法描述 11
1.3.1 VSL的變量和常量 11
1.3.2 VSL的運算符 12
1.3.3 VSL的表達式與語句 13
1.3.4 VSL的賦值語句、聲明語句和注釋 15
1.3.5 VSL的條件判斷語句 15
1.3.6 VSL的循環和控制語句 20
1.3.7 數組和多維數組 25
第2章 VSL的函數 28
2.1 函數的定義與調用 28
2.1.1 函數的概念 28
2.1.2 定義函數 29
2.1.3 函數的調用 29
2.1.4 函數的重載 30
2.2 函數的參數及其返回值 31
2.2.1 形參和實參 31
2.2.2 函數值的返回 32
2.3 變量的作用域和存儲類型 33
2.3.1 局部變量、全局變量和作用域 33
2.3.2 VSL全局共享變量和全局靜態變量 35
2.3.3 結構體和枚舉類型 36
2.4 字符串類的使用 39
2.4.1 字符變量、字符串類型變量、字符數組和字符串類的區別 39
2.4.2 字符串類的定義與賦值 39
2.4.3 字符串的處理函數 40
2.4.4 字符串的應用 41
第3章 VSL中的3D數學與變換以及簡單幾何體 43
3.1 向量 43
3.1.1 向量的概念 43
3.1.2 向量長度和歸一化 44
3.1.3 向量的加減 44
3.1.4 向量和標量的乘法 45
3.1.5 向量的點積 45
3.1.6 向量的叉積 45
3.1.7 位置和位移向量 46
3.2 VSL中的2D向量Vector2D 46
3.2.1 Vector2D的方法 46
3.2.2 Vector2D的應用 48
3.3 VSL中的3D向量Vector 50
3.3.1 Vector的方法 50
3.3.2 Vector的應用 50
3.4 矩陣和Matrix 51
3.4.1 矩陣的概念 51
3.4.2 Matrix的方法和應用 52
3.5 簡單幾何體 53
3.5.1 點、線、面 53
3.5.2 正方體 54
3.5.3 圓錐體和圓球 55
3.5.4 矩形 55
第4章 Virtools中的2D實體 60
4.1 2D幀Entity2D 60
4.1.1 Entity2D與Rect 60
4.1.2 Entity2D的應用 60
4.2 2D精靈Sprite 64
4.2.1 Sprite與Entity2D 64
4.2.2 Sprite的應用 65
第5章 燈光、材質和紋理 68
5.1 光 68
5.1.1 光的類型 68
5.1.2 用VSL設置光照 69
5.1.3 光的衰減屬性 69
5.1.4 高光 70
5.1.5 色彩 71
5.2 材質的特性 72
5.2.1 物體表面材質屬性 72
5.2.2 3D物體填充模式 73
5.2.3 Flat渲染和Gouraud渲染 74
5.2.4 Alpha混合 74
5.2.5 Alpha測試 76
5.2.6 紋理采樣過濾 77
5.2.7 紋理尋址 78
5.2.8 多重紋理混合 79
5.2.9 紋理過濾和紋理尋址的顯示例程 80
5.3 紋理的特性 81
5.3.1 紋理的插槽屬性 81
5.3.2 天空盒紋理 83
第6章 3D物體 85
6.1 3D Entity 85
6.1.1 坐標系和3D物體 85
6.1.2 3D Entity的位置、方向與縮放 86
6.1.3 物體的父子關系 89
6.1.4 物體的網格 91
6.1.5 3D物體的屏幕坐標位置 92
6.2 Mesh 93
6.2.1 Mesh的應用 93
6.2.2 Mesh與材質、紋理貼圖 95
6.2.3 紋理坐標:(u, v)坐標 95
6.2.4 Mesh的通道材質特性 96
6.3 3D精靈Sprite 3D 97
6.3.1 3D精靈和公告板 97
6.3.2 3D精靈的應用 97
第7章 角色動畫 99
7.1 角色 99
7.1.1 角色的概念 99
7.1.2 播放角色動畫 99
7.1.3 角色的次級動畫播放 102
7.1.4 角色的身體 104
7.2 角色動畫 105
7.2.1 如何確定角色動畫是否有問題 105
7.2.2 角色的動畫幀 105
7.2.3 角色動畫的一些設置 108
7.2.4 用VSL設置角色動畫 110
7.3 角色動畫的應用 111
第8章 攝像機 116
8.1 相機的基本屬性 116
8.1.1 相機的投影 116
8.1.2 相機的視錐 118
8.1.3 目標相機 119
8.2 相機的應用 119
8.2.1 第一人稱相機 119
8.2.2 第三人稱相機 122
第9章 曲線與網格 126
9.1 3D曲線 126
9.1.1 3D曲線和3D曲線節點的概念 126
9.1.2 3D曲線的應用 128
9.1.3 3D曲線節點的詳細設置 129
9.2 2D路徑 131
9.3 網格 133
9.3.1 網格和層 133
9.3.2 網格的VSL應用 133
第10章 表、組和場景 137
10.1 表 137
10.1.1 表的數據存儲類型 137
10.1.2 使用VSL創建表和存儲數據 138
10.1.3 通過VSL提取表中數據和刪除行列 140
10.1.4 通過VSL對表中數據的操作 142
10.2 組 143
10.2.1 組的意義 143
10.2.2 組的應用 143
10.3 場景 144
10.3.1 場景的概念 144
10.3.2 場景技術的簡單應用 146
10.4 數據容器 147
10.4.1 數據容器的使用 147
10.4.2 String、StringTokenizer和ArrayString 150
第11章 聲音與視頻 152
11.1 聲音的基本運用 152
11.1.1 聲音的特性 152
11.1.2 播放聲音的方法 153
11.1.3 2D聲音和3D聲音 154
11.2 聲音的高級應用 155
11.2.1 錐形的聽覺范圍 155
11.2.2 聲音的多重播放 157
11.3 視頻的播放 158
11.3.1 視頻的屬性 158
11.3.2 視頻的播放 159
第12章 VSL中的bc 161
12.1 工廠的概念 161
12.1.1 工廠的作用 161
12.1.2 工廠的產品 161
12.1.3 工廠如何復制產品 162
12.1.4 工廠如何刪除產品 164
12.2 屬性控制 165
12.2.1 屬性的概念 165
12.2.2 屬性的操作 165
12.3 bc的其他功能 168
12.3.1 取得場景物件 168
12.3.2 bc的其他一些小功能 172
12.4 輸入管理器 174
12.4.1 鼠標的使用 174
12.4.2 鍵盤的使用 176
12.5 渲染設備 179
12.5.1 渲染設備的概念 179
12.5.2 如何設置霧 179
12.5.3 鼠標拾取物件 181
12.5.4 2D屏幕與3D位置 185
12.6 ac 188
12.6.1 ac的概念 188
12.6.2 如何創建和使用ac 188
第二部分 高級渲染語言
第13章 Virtools中的Shader 193
13.1 認識Shader 193
13.1.1 Shader的誕生 193
13.1.2 Virtools中的Shader 193
13.1.3 Virtools中Shader的執行過程 194
13.1.4 Shader編輯器 195
13.2 Shader語言 196
13.2.1 創建第一個Shader程序 196
13.2.2 頂點著色器和像素著色器 198
第14章 光照 200
14.1 參數 200
14.1.1 設置自發光參數的Virtools寫法 200
14.1.2 設置自發光參數的HLSL寫法 201
14.2 光照 203
14.2.1 光照的原理 203
14.2.2 光照Shader 204
14.2.3 光照的HLSL寫法 206
14.3 鏡面反射 210
14.3.1 一盞燈的鏡面反射光照 210
14.3.2 兩盞燈的鏡面反射光照 212
第15章 紋理貼圖光照 214
15.1 簡單的紋理渲染 214
15.1.1 Virtools紋理渲染的Shader代碼 214
15.1.2 HLSL紋理渲染 215
15.1.3 帶光照的紋理渲染 216
15.1.4 逐像素地紋理渲染 217
15.1.5 兩層紋理渲染 220
15.2 凹凸紋理映射 221
15.2.1 凹凸紋理映射的由來 221
15.2.2 凹凸紋理映射的原理 222
15.2.3 凹凸紋理映射的實現 222
15.2.4 改良的凹凸紋理映射 226
15.3 環境映射 230
15.3.1 環境映射的原理和立方貼圖紋理 230
15.3.2 Virtools中如何生成立方體貼圖 231
15.3.3 反射環境映射 231
15.3.4 折射環境映射 234
15.3.5 菲涅爾效果和顏色色散 237
15.3.6 環境映射和凹凸紋理映射的結合 241
15.4 2D Frame的Shader 244
15.4.1 2D幀的多次渲染 244
15.4.2 2D幀的旋轉 246
第16章 Shader的效果 250
16.1 Shader實現動畫效果 250
16.1.1 脈動的茶壺——頂點動畫 250
16.1.2 舞動的花朵——紋理UV動畫 252
16.1.3 波光粼粼的淺水區——序列幀動畫 256
16.2 簡單的修飾效果 258
16.2.1 廣告墻變換效果 258
16.2.2 海底焦散 261
16.2.3 畫面模糊效果 265
16.2.4 景深效果 268
16.2.5 地球大氣效果 271
16.3 簡單的幾個其他效果 276
16.3.1 灼燒 276
16.3.2 發光 277
16.3.3 綻放 280
16.3.4 毛發 284
16.3.5 灰度 288
第17章 Shader的應用 290
17.1 地形渲染 290
17.1.1 Texture Splatting原理簡介 290
17.1.2 Texture Splatting對地形建模的一點要求 291
17.1.3 Shader代碼剖析 291
17.2 運動模糊 296
17.2.1 運動模糊原理簡介 296
17.2.2 設置需要配合的資源 296
17.2.3 運動模糊的Shader代碼 297
17.3 帶倒影的水面渲染 300
17.3.1 渲染水面的步驟 300
17.3.2 水面的設置 302
17.3.3 水的Shader代碼 303
第18章 Shader的其他應用 307
18.1 渲染車 307
18.1.1 渲染車燈 307
18.1.2 渲染車輪 311
18.1.3 渲染車窗 314
18.2 渲染場景 317
18.2.1 帶法線的地形渲染 317
18.2.2 樹的渲染 322
18.2.3 樹葉與草的渲染 323
第三部分 Virtools SDK
第19章 認識Virtools SDK 329
19.1 Virtools的體系結構 329
19.1.1 SDK的介紹 329
19.1.2 幀循環的介紹 331
19.1.3 主要對象之間的關系 332
19.2 使用SDK創建BB 333
19.2.1 行動前的準備 333
19.2.2 通過向導創建BB 335
19.2.3 BB源文件的解釋 338
19.2.4 編譯生成BB 344
第20章 用SDK開發BB 346
20.1 BB的參數 346
20.1.1 BB的3種參數 346
20.1.2 BB參數值的獲取和賦值 347
20.1.3 改變BB參數的數量和類型 349
20.2 BB的輸入輸出端口 354
20.3 自定義類型的參數 358
20.3.1 自定義類型的參數說明 358
20.3.2 創建簡單的自定義參數 359
20.3.3 結構體類型參數的處理函數 361
20.4 使用SDK的BB 367
20.4.1 修改PushBotton和DragAndDrop 367
20.4.2 轉向功能 368
20.4.3 有層級關系的中文顯示 370
第21章 用SDK擴展功能 379
21.1 多線程的應用 379
21.1.1 進程和線程 379
21.1.2 VxThread、VxMutexl、VxMutexlLock 380
21.1.3 多線程的應用 381
21.2 管理器的開發使用 391
21.2.1 管理器 391
21.2.2 Manager代碼解釋 394
21.2.3 Virtools與ADO的整合 395
21.2.4 創建ADOACCESSManager 397
21.2.5 在BB中調用管理器的方法 404
21.2.6 管理器功能的整合 406
21.3 為VSL綁定新類型 408
21.3.1 綁定新類型的規則 408
21.3.2 綁定的細則 409
21.3.3 綁定的簡單范例 414
21.4 第三方聲音引擎與Virtools的整合 415
21.4.1 整合第三方聲音引擎的原因 415
21.4.2 第三方聲音引擎使用介紹 416
21.4.3 不同喇叭播放不同聲音 417
21.5 網絡引擎與Virtools的整合 425
21.5.1 整合網絡引擎的原因 425
21.5.2 使用網絡引擎創建服務器 425
21.5.3 網絡模塊管理器 430
21.5.4 連接到服務器的BB 436
21.5.5 發送消息到服務器的BB 438
21.5.6 處理服務器消息的BB 439
第22章 用SDK開發新功能 442
22.1 讀寫注冊表 442
22.1.1 注冊表的簡單介紹 442
22.1.2 讀寫注冊表功能描述 443
22.1.3 訪問注冊表的BB 444
22.2 文件目錄的操作 446
22.2.1 列舉所有指定類型文件 446
22.2.2 記錄日志文件 449
22.2.3 設置打印 451
22.2.4 復制移動文件 455
22.3 Virtools與串口通信 457
22.3.1 串口通信類 457
22.3.2 定義串口通信協議 458
22.3.3 串口通信管理器 461
22.3.4 啟用串口BB 462
22.3.5 從串口中得到數據 463
22.3.6 向串口寫數據 464
22.4 Virtools與Flash整合 466
22.4.1 和Flash整合的原因 466
22.4.2 Flash的封裝 466
22.4.3 封裝一個播放swf文件的BB 467
第23章 發布應用程序 473
23.1 編譯生成獨立的執行程序 473
23.1.1 關于執行程序的介紹 473
23.1.2 編譯生成Virtools自帶的播放器 474
23.1.3 CustomPlayer類分析 474
23.1.4 CustomPlayerApp類分析 475
附錄A VSL全局函數 478
附錄B Virtools參數類型GUID 481
附錄C 枚舉CK_BEHAVIOR_FLAGS的標識 484
附錄D CKBehavior::SetCallbackFunction回調標準 486
附錄E Virtools消息使用須知 487
E.1 消息的接收 487
E.2 消息的參數 488
附錄F 常用類的標識符類CK_CLASSID 491
參考文獻 493


本書直接從VSL、Shader、SDK的角度來講解Virtools開發游戲、虛擬漫游的各方面,所以本書面向的是已經具有一定編程經驗的讀者,最好已經學會了Virtools。
本書的內容是先從容易上手的VSL腳本講起,最先講的是VSL的基礎語法。可以讓沒有代碼開發經驗的讀者也能夠看懂VSL,然后慢慢講解各個VSL類型的用法。
VSL部分講解完后,接著就是Shader的學習和應用。Shader可謂是短小精悍,算法卻博大精深,所以要求讀者了解HLSL語言基礎,這一部分講解了目前游戲中經常用到的畫面效果,非常值得學習。 
SDK是發揮和擴充Virtools功能的利器,SDK涉及的面很廣,所以沒有像VSL部分那樣羅列所有類的用法,而是強調如何進行開發,講解了常用的SDK開發方式。掌握這一部分,就相當于完全駕馭了Virtools引擎。
隨書附送有配套光盤。光盤按章節順序提供了書中所用的實例代碼,這些代碼都經過了作者的精心調試,在Windows XP、Virtools 4.0下保證可用。
如果你是Virtools開發者,如果你是3D游戲開發者,如果你是虛擬現實項目開發者,請你相信,此書會對你很有用。

pagetop