分享我收集的引擎、圖形學、WebGL方面的電子資料


本文分享我這一年以來收集的我認為比較經典的電子資料,希望能對大家有所幫助!
本文會不斷更新!

目錄

《WebGL Insights》

http://pan.baidu.com/s/1dF7ERG9

推薦度

5星

內容概要說明

相當於webgl的gems書,包括了介紹瀏覽器是怎么實現webgl的、一些圖形渲染基於webgl的實現、現有的開源引擎(如babylonjs)的設計和優化等。

目錄說明

I. WebGL Implementations

  1. ANGLE: A Desktop Foundation for WebGL
  2. Mozilla's Implementation of WebGL
  3. Continuous Testing of Chrome's WebGL Implementation

II. Moving to WebGL
4. Getting Serious with JavaScript
5. Emscripten & WebGL
6. Data Visualization with WebGL: from Python to JavaScript
7. Teaching an Introductory Computer Graphics Course with WebGL

III. Mobile
8. Bug-Free and Fast Mobile WebGL

IV. Engine Design
9. WebGL Engine Design in Babylon.js
10. Rendering Optimizations in the Turbulenz Engine
11. Performance and Rendering Algorithms in Blend4Web
12. Sketchfab Material Pipeline: From File Variations to Shader Generation
13. glslify: A module system for GLSL
14. Budgeting Frame Time

V. Rendering
15. Deferred Shading in Luma
16. HDR Image-Based Lighting on the Web
17. Real-Time Volumetric Lighting for WebGL
18. Terrain Geometry - LOD Adapting Concentric Rings

VI. Visualization
19. Data Visualization Techniques with WebGL
20. hare3d - Rendering Large Models in the Browser
21. The BrainBrowser Surface Viewer: WebGL-based Neurological Data Visualization

VII. Interaction
22. Usability of WebGL Applications
23. Designing Cameras for WebGL Applications

我的心得與體會

一本非常好的書,對深入里面Webgl、學習其他開源引擎的設計和優化、移動端webgl開發和優化等都很有幫助!

《OpenGL Insights》

http://pan.baidu.com/s/1gfCu7K3

推薦度

4星半

內容概要說明

本書算是基於opengl的gems書了,每個章節是一個專題,不僅包括opengl,也包括了webgl方面的主題,是一本提高階段的書籍。

目錄說明

暫無

我的心得與體會

書中的webgl方面的專題、性能專題以及移動方面的專題(比如介紹了tile-based架構)都是很有用的。
而且書最后還給出了opengl es2.0的渲染管線圖。
不過還有些內容我現在暫時用不到(比如基於opengl 4.0 的tessellation shader,與occusion exclude相關的算法等),等到需要用到的時候,再來看。

《Game Programming Patterns》

http://gameprogrammingpatterns.com/contents.html

推薦度

4星半

contents

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.

catalogue

  • 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

my experience

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

如何應用該書

在實踐(開發引擎、實現相關的算法等)時或者遇到問題時,可查閱本書的對應章節。

我的心得與體會

本書的5、6、7、13、14章節對我現在的引擎的改進就很有幫助!
等我要實現骨骼動畫時,需要再仔細研究11章節,然后提煉出動畫引擎!

《Design by Contract 原則與實踐》

暫時沒找到電子資料,建議到淘寶購買復印版(因為本書已經停版了)。

推薦度

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遍,把每個章節的習題做一遍!
書中確實字字是珠璣,值得仔細品味和研究!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM