本文分享我這一年以來收集的我認爲比較經典的電子資料,但願能對你們有所幫助!
本文會不斷更新!html
http://pan.baidu.com/s/1dF7ERG9java
5星c++
至關於webgl的gems書,包括了介紹瀏覽器是怎麼實現webgl的、一些圖形渲染基於webgl的實現、現有的開源引擎(如babylonjs)的設計和優化等。git
I. WebGL Implementationsgithub
II. Moving to WebGLweb
III. Mobile算法
IV. Engine Designtypescript
V. Rendering編程
VI. Visualization瀏覽器
VII. Interaction
一本很是好的書,對深刻裏面Webgl、學習其餘開源引擎的設計和優化、移動端webgl開發和優化等都頗有幫助!
http://pan.baidu.com/s/1gfCu7K3
4星半
本書算是基於opengl的gems書了,每一個章節是一個專題,不只包括opengl,也包括了webgl方面的主題,是一本提升階段的書籍。
暫無
書中的webgl方面的專題、性能專題以及移動方面的專題(好比介紹了tile-based架構)都是頗有用的。
並且書最後還給出了opengl es2.0的渲染管線圖。
不過還有些內容我如今暫時用不到(好比基於opengl 4.0 的tessellation shader,與occusion exclude相關的算法等),等到須要用到的時候,再來看。
http://gameprogrammingpatterns.com/contents.html
4星半
This is a online e-book that talks about design pattern in game.
First it revisit a part patterns(6 patterns) of gof, Then it discuss useful patterns that some of them are already applied in Wonder.js engine.
Introduction
Architecture, Performance, and Games
Design Patterns Revisited
Command
Flyweight
Observer
Prototype
Singleton
State
Sequencing Patterns
Double Buffer
Game Loop
Update Method
Behavioral Patterns
Bytecode
Subclass Sandbox
Type Object
Decoupling Patterns
Component
Event Queue
Service Locator
Optimization Patterns
Data Locality
Dirty Flag
Object Pool
Spatial Partition
The book is full of practical experiences and the discussition is very detailed and instructive.
The "State pattern" chapter discuss the Concurrent State Machines, Hierarchical State Machines, Pushdown Automata that are instructive and will be useful.
The "Service Locator" chapter is new to me that it's the first time to touch the pattern.Though the author suggest that it can use DI instead of it in some cases.
The "Data Locality" chapter is important and a useful way for optimizing. It stresses the cache miss problem.
The "Spatial Partition" chapter is important too that i will use the technology to organize objects of scene.
試讀版下載,沒找到完整版:
http://pan.baidu.com/s/1hsyf20O
5星
本書全方位講解了3d引擎的設計以及一些重要的實現、優化細節,是一本好書!
第一部分 基礎 1
第1章 導論 3
1.1 典型遊戲團隊的結構 4
1.2 遊戲是什麼 7
1.3 遊戲引擎是什麼 10
1.4 不一樣遊戲類型中的引擎差別 11
1.5 遊戲引擎概觀 22
1.6 運行時引擎架構 27
1.7 工具及資產管道 46
第2章 專業工具 53
2.1 版本控制 53
2.2 微軟Visual Studio 61
2.3 剖析工具 78
2.4 內存泄漏和損壞檢測 79
2.5 其餘工具 80
第3章 遊戲軟件工程基礎 83
3.1 重溫C++及最佳實踐 83
3.2 C/C++的數據、代碼及內存 90
3.3 捕捉及處理錯誤 118
第4章 遊戲所需的三維數學 125
4.1 在二維中解決三維問題 125
4.2 點和矢量 125
4.3 矩陣 139
4.4 四元數 156
4.5 比較各類旋轉表達方式 164
4.6 其餘數學對象 168
4.7 硬件加速的SIMD運算 173
4.8 產生隨機數 180
第二部分 低階引擎系統 183
第5章 遊戲支持系統 185
5.1 子系統的啓動和終止 185
5.2 內存管理 193
5.3 容器 208
5.4 字符串 225
5.5 引擎配置 234
第6章 資源及文件系統 241
6.1 文件系統 241
6.2 資源管理器 251
第7章 遊戲循環及實時模擬 277
7.1 渲染循環 277
7.2 遊戲循環 278
7.3 遊戲循環的架構風格 280
7.4 抽象時間線 283
7.5 測量及處理時間 285
7.6 多處理器的遊戲循環 296
7.7 網絡多人遊戲循環 304
第8章 人體學接口設備(HID) 309
8.1 各類人體學接口設備 309
8.2 人體學接口設備的接口技術 311
8.3 輸入類型 312
8.4 輸出類型 316
8.5 遊戲引擎的人體學接口設備系統 318
8.6 人體學接口設備使用實踐 332
第9章 調試及開發工具 333
9.1 日誌及跟蹤 333
9.2 調試用的繪圖功能 337
9.3 遊戲內置菜單 344
9.4 遊戲內置主控臺 347
9.5 調試用攝像機和遊戲暫停 348
9.6 做弊 348
9.7 屏幕截圖及錄像 349
9.8 遊戲內置性能剖析 349
9.9 遊戲內置的內存統計和泄漏檢測 356
第三部分 圖形及動畫 359
第10章 渲染引擎 361
10.1 採用深度緩衝的三角形光柵化基礎 361
10.2 渲染管道 404
10.3 高級光照及全局光照 426
10.4 視覺效果和覆蓋層 438
10.5 延伸閱讀 446
第11章 動畫系統 447
11.1 角色動畫的類型 447
11.2 骨骼 452
11.3 姿式 454
11.4 動畫片斷 459
11.5 蒙皮及生成矩陣調色板 471
11.6 動畫混合 476
11.7 後期處理 493
11.8 壓縮技術 496
11.9 動畫系統架構 501
11.10 動畫管道 502
11.11 動做狀態機 515
11.12 動畫控制器 535
第12章 碰撞及剛體動力學 537
12.1 你想在遊戲中加入物理嗎 537
12.2 碰撞/物理中間件 542
12.3 碰撞檢測系統 544
12.4 剛體動力學 569
12.5 整合物理引擎至遊戲 601
12.6 展望:高級物理功能 616
第四部分 遊戲性 617
第13章 遊戲性系統簡介 619
13.1 剖析遊戲世界 619
13.2 實現動態元素:遊戲對象 623
13.3 數據驅動遊戲引擎 626
13.4 遊戲世界編輯器 627
第14章 運行時遊戲性基礎系統 637
14.1 遊戲性基礎系統的組件 637
14.2 各類運行時對象模型架構 640
14.3 世界組塊的數據格式 657
14.4 遊戲世界的加載和串流 663
14.5 對象引用與世界查詢 670
14.6 實時更新遊戲對象 676
14.7 事件與消息泵 690
14.8 腳本 707
14.9 高層次的遊戲流程 726
第五部分 總結 727
第15章 還有更多內容嗎 729
15.1 一些未談及的引擎系統 729
15.2 遊戲性系統 730
參考文獻 733
在實踐(開發引擎、實現相關的算法等)時或者遇到問題時,可查閱本書的對應章節。
本書的五、六、七、1三、14章節對我如今的引擎的改進就頗有幫助!
等我要實現骨骼動畫時,須要再仔細研究11章節,而後提煉出動畫引擎!
暫時沒找到電子資料,建議到淘寶購買複印版(由於本書已經停版了)。
4星
本書經過實例,詳細而層層推動地探討了「契約式設計」地思想原則和實踐方法,引入了Dbc地六大原則和六大準則,展現了它們地運用,分析了Dbc和繼承地關係,介紹了框定規則、Dbc的好處和限制、觀察者框架中的契約和先驗條件檢驗;最後給出了一個Java範例,並探討了契約在分析模型中的應用。
本書思惟嚴密,邏輯性很強。
第1章 契約式設計初探 1
1.1 概述 1
1.2 顧客管理器範例 2
1.3 一些問題 5
1.4 customer_manager的契約 6
1.5 臨時總結 9
1.6 運行時檢測 11
1.7 可靠的文檔 13
1.8 小結 15
1.9 一言以蔽之 15
1.10 下一步工做 15
第2章 契約式設計的基本原則 17
2.1 關於本章 17
2.2 棧 18
2.3 區分命令和查詢 19
2.4 命名規範 22
2.5 區分基本查詢和派生查詢 23
2.6 說明命令對基本查詢的影響 26
2.7 用不變式肯定恆定特性 34
2.8 類及其契約 36
.2.9 基本查詢是棧的一個概念模型 38
2.10 六大原則 42
2.11 下一步工做 43
第3章 運用六大原則 47
3.1 關於本章 47
3.2 字典 47
3.3 特性分離與分類 48
3.4 後驗條件 50
3.5 先驗條件 56
3.6 不變式 62
3.7 關於字典的完整的契約級歸納 63
3.8 小結 65
3.9 練習 66
第4章 契約的構造支持類-- 不可變列表 69
4.1 關於本章 69
4.2 支持線性結構 69
4.3 契約只涉及表達式 70
4.4 不可變列表 71
4.5 不可變列表的契約 72
4.5.1 基本查詢 72
4.5.2 建立命令 74
4.5.3 派生查詢count 74
4.5.4 派生查詢preceded_by 74
4.5.5 派生查詢item 75
4.5.6 派生查詢is_equal 77
4.5.7 派生查詢sublist 79
4.6 小結 81
4.7 練習 81
第5章 六大原則在queue設計中的運用 83
5.1 關於本章 83
5.2 隊列 83
5.3 remove特性的契約 84
5.4 將count做爲一個派生特性 88
5.5 initialize特性的契約 91
5.6 head特性的契約 93
5.7 put特性的契約 94
5.8 更多派生查詢 94
5.9 小結 95
5.10 練習 96
第6章 契約式設計與繼承 99
6.1 關於本章 99
6.2 超類和子類 99
6.3 從新定義契約 100
6.3.1 eiffel語法 104
6.3.2 小結 107
6.4 不變式和繼承 108
6.5 以被確保的後驗條件定義超類 109
6.6 兩種繼承 116
6.7 小結 117
6.8 練習 117
第7章 框定規則 119
7.1 關於本章 119
7.2 變化規格和框定規則 119
7.3 使用不可變列表爲put撰寫框定規則 121
7.4 使用「forall」爲put撰寫框定規則 128
7.5 框定規則的類別 130
7.6 練習 132
7.7 關於預處理器的補充說明 132
第8章 契約式設計的收益 137
8.1 關於本章 137
8.2 幾種優勢 137
8.3 更優秀的設計 138
8.4 提升可靠性 140
8.5 更出色的文檔 140
8.6 簡化調試 142
8.7 支持複用 142
8.8 契約式設計與防護性編程 143
8.8.1 防止程序接受錯誤的輸入 143
8.8.2 給程序穿上「防彈衣」 144
8.8.3 防護性編程 145
8.9 契約的一些開銷和限制 146
第9章 觀察者(observer) 框架中的契約 149
9.1 關於本章 149
9.2 觀察者框架 150
9.3 不可變集合 152
9.4 觀察者的繫縛和解縛 155
9.5 通知(一個觀察者) 156
9.6 通知(多個觀察者) 158
97 性能問題 160
9.8 框定規則 161
9.9 保密 164
9.10 練習 166
第10章 知足先驗條件 169
10.1 關於本章 169
10.2 例子 170
10.3 知足並測試先驗條件 170
10.4 測試與檢驗 172
10.5 一個簡單的計數器類 173
10.6 從用戶角度看示例程序 174
10.7 程序的內部結構 176
10.8 程序的執行狀況 178
10.9 一個次要的細節 184
10.10 小結 186
10.11 練習 187
第11章 java範例 189
11.1 關於本章 189
11.2 爲何選擇java 190
11.3 隊列 190
11.3.1 基本查詢size() 192
11.3.2 基本查詢get() 193
11.3.3 基本查詢head() 193
11.3.4 派生查詢isempty() 194
11.3.5 派生查詢shallow copy() 194
11.3.6 構造方法queue 195
11.3.7 命令put 196
11.3.8 命令remove 196
11.3.9 小結 198
11.4 字典 198
11.4.1 名字 199
11.4.2 不變式 200
11.4.3 基本查詢 200
11.4.4 一個派生查詢 201
11.4.5 命令 201
11.4.6 構造方法 202
11.4.7 一組實現類 203
11.5 沒有icontract的java 203
11.6 測試先驗條件 207
11.7 練習 212
第12章 契約式分析 215
12.1 關於本章 215
12.2 一個用例 215
12.3 分析模型中的契約 217
12.4 withdrawcash用例的契約 217
12.5 從分析到設計 220
12.6 問題域和系統模型 221
12.7 對象限制語言 224
12.8 小結 225
參考資料 227
契約式設計 227
統一建模語言uml 228
eiffel和java編程語言 229
觀察者模式 229
編譯器和預處理器 229
三個實用網站 230
索引 245
個人Wonder.js引擎就使用了dbc,使用typescript的decorator來實現require和ensure,invariant。
如今我主要使用契約來替代防護性編程,檢查先驗條件和後驗條件。
Dbc對提升代碼質量有幫助,可與單元測試結合起來:Dbc提供運行時檢查(檢查先驗、後驗條件,進行防護式檢查和測試);單元測試提供靜態測試,測試功能代碼。
http://pan.baidu.com/s/1pK7etzd
5星
本書章節相互獨立,在基礎、性能、應用三個部分的主題中,給出了案例、經驗、總結,而且每章後面還有習題,確實是一本很好的經典書籍!
第一部分 基礎
第1章 開篇
1.1 一次友好的對話
1.2 準確的問題描述
1.3 程序設計
1.4 實現概要
1.5 原理
1.6 習題
1.7 深刻閱讀
第2章 啊哈!算法
2.1 三個問題
2.2 無處不在的二分搜索
2.3 基本操做的威力
2.4 排序
2.5 原理
2.6 習題
2.7 深刻閱讀
2.8 變位詞程序的實現(邊欄)
第3章 數據決定程序結構
3.1 一個調查程序
. 3.2 格式信函編程
3.3 一組示例
3.4 結構化數據
3.5 用於特殊數據的強大工具
3.6 原理
3.7 習題
3.8 深刻閱讀
第4章 編寫正確的程序
4.1 二分搜索的挑戰
4.2 編寫程序
4.3 理解程序
4.4 原理
4.5 程序驗證的角色
4.6 習題
4.7 深刻閱讀
第5章 編程小事
5.1 從僞代碼到c程序
5.2 測試工具
5.3 斷言的藝術
5.4 自動測試
5.5 計時
5.6 完整的程序
5.7 原理
5.8 習題
5.9 深刻閱讀
5.10 調試(邊欄)
第二部分 性能
第6章 程序性能分析
6.1 實例研究
6.2 設計層面
6.3 原理
6.4 習題
6.5 深刻閱讀
第7章 粗略估算
7.1 基本技巧
7.2 性能估計
7.3 安全係數
7.4 little定律
7.5 原理
7.6 習題
7.7 深刻閱讀
7.8 平常生活中的速算(邊欄)
第8章 算法設計技術
8.1 問題及簡單算法
8.2 兩個平方算法
8.3 分治算法
8.4 掃描算法
8.5 實際運行時間
8.6 原理
8.7 習題
8.8 深刻閱讀
第9章 代碼調優
9.1 典型的故事
9.2 急救方案集錦
9.3 大手術——二分搜索
9.4 原理
9.5 習題
9.6 深刻閱讀
第10章 節省空間
10.1 關鍵在於簡單
10.2 示例問題
10.3 數據空間技術
10.4 代碼空間技術
10.5 原理
10.6 習題
10.7 深刻閱讀
10.8 巨大的節省(邊欄)
第三部分 應用
第11章 排序
11.1 插入排序
11.2 一種簡單的快速排序
11.3 更好的幾種快速排序
11.4 原理
11.5 習題
11.6 深刻閱讀
第12章 取樣問題
12.1 問題
12.2 一種解決方案
12.3 設計空間
12.4 原理
12.5 習題
12.6 深刻閱讀
第13章 搜索
13.1 接口
13.2 線性結構
13.3 二分搜索樹
13.4 用於整數的結構
13.5 原理
13.6 習題
13.7 深刻閱讀
13.8 一個實際搜索問題(邊欄)
第14章 堆
14.1 數據結構
14.2 兩個關鍵函數
14.3 優先級隊列
14.4 一種排序算法
14.5 原理
14.6 習題
14.7 深刻閱讀
第15章 字符串
15.1 單詞
15.2 短語
15.3 生成文本
15.4 原理
15.5 習題
15.6 深刻閱讀
第1版跋
第2版跋
附錄a 算法分類
附錄b 估算測試
附錄c 時空開銷模型
附錄d 代碼調優法則
附錄e 用於搜索的c++類
能夠當成字典書來查(如須要實現排序或者要對3d引擎優化時,可查看對應的章節)。
書中的性能部分和應用的排序算法部分對個人wonder.js引擎v0.5.6和v0.5.7版本的優化工做頗有幫助。 書中第4章關於契約的應用我也深有感觸! 還須要讀第2遍,把每一個章節的習題作一遍! 書中確實字字是珠璣,值得仔細品味和研究!