TOP
英國出版界指標大獎肯定!A.F. Steadman 獲年度作家,《史坎德》系列帶你踏上熱血奇幻旅程
深入理解OpenGL、WebGL和OpenGL ES(簡體書)
滿額折

深入理解OpenGL、WebGL和OpenGL ES(簡體書)

商品資訊

人民幣定價:199 元
定價
:NT$ 1194 元
優惠價
871039
海外經銷商無庫存,到貨日平均30天至45天
下單可得紅利積點 :31 點
商品簡介
目次

商品簡介

本書詳細闡述了與OpenGL相關的基本解決方案,主要包括渲染技術、混合管線、性能、傳輸、調試和性能分析、軟件設計等內容。此外,本書還提供了相應的示例,以幫助讀者進一步理解相關方案的實現過程。 本書適合作為高等院校計算機及相關專業的教材和教學參考書,也可作為相關開發人員的自學教材和參考手冊。

目次

第1篇 發 現

第1章 基於著色器的OpenGL計算機圖形學課程

1.1 簡介

1.2 基礎課程

1.3 簡單的OpenGL示例

1.4 從可編程管線開始

1.5 新的簡單示例

1.5.1 OpenGL ES和WebGL

1.5.2 第一項作業

1.6 課程的其餘部分

1.6.1 幾何

1.6.2 變換和視圖

1.6.3 照明和著色

1.6.4 紋理和離散處理

1.6.5 高級主題

1.6.6 問題

1.7 小結

致謝

參考文獻

第2章 過渡到新OpenGL版本

2.1 概述

2.2 命名著色器變量:簡介

2.3 命名著色器變量:詳細信息

2.4 索引頂點緩衝區對象C++類

2.4.1 使用注意事項

2.4.2 示例代碼

2.4.3 實現說明

2.5 GLSLProgram C++類

2.5.1 使用注意事項

2.5.2 示例代碼

2.5.3 實現說明

2.6 小結

參考文獻

第3章 適用于OpenGL開發人員的WebGL

3.1 簡介

3.2 WebGL的優勢

3.2.1 零要求

3.2.2 跨平臺

3.2.3 跨設備

3.2.4 易開發

3.2.5 強大的工具支持

3.2.6 性能

3.3 安全性

3.3.1 跨源請求

3.3.2 上下文丟失

3.4 部署著色器

3.5 關於JavaScript語言

3.5.1 JavaScript類型

3.5.2 動態類型

3.5.3 函數範圍

3.5.4 函數編程

3.5.5 原型對象

3.5.6 this關鍵字

3.5.7 代碼組織

3.5.8 常見錯誤

3.6 資源

參考文獻

第4章 將移動應用程序移植到WebGL

4.1 簡介

4.2 跨平臺的OpenGL

4.3 入門

4.3.1 初始化OpenGL ES上下文

4.3.2 加載著色器

4.3.3 繪製頂點

4.4 加載紋理

4.4.1 分配紋理

4.4.2 處理異步加載

4.5 相機和矩陣

4.5.1 對比float和Float32Array

4.5.2 將矩陣傳遞給著色器

4.6 控制

4.6.1 觸摸事件

4.6.2 在相機和碰撞中使用觸摸事件

4.7 其他考慮因素

4.7.1 動畫

4.7.2 繼承

4.8 維護

4.8.1 調試

4.8.2 性能分析

4.8.3 性能和採用

4.9 小結

參考文獻

第5章 GLSL著色器接口

5.1 簡介

5.2 變量和塊

5.2.1 用戶定義的變量和塊

5.2.2 內置變量和塊

5.3 位置

5.3.1 定義

5.3.2 計算位置

5.3.3 位置限制

5.4 匹配接口

5.4.1 部分和完全匹配

5.4.2 類型匹配

5.4.3 按名稱和位置匹配

5.4.4 按塊匹配

5.4.5 按結構匹配

5.4.6 鏈接和單獨的程序

5.5 使用語義

5.5.1 編譯器生成的變化的位置和顯式位置

5.5.2 頂點數組屬性和頂點著色器輸入

5.5.3 片段著色器輸出和幀緩沖區顏色附加數據

5.5.4 變化的輸出和變化的輸入

5.5.5 統一格式緩衝區和統一格式塊

5.6 僅適用于調試的應用程序端驗證

5.6.1 頂點輸入驗證

5.6.2 變化的接口驗證

5.6.3 片段輸出驗證

5.6.4 變量驗證

5.6.5 統一格式塊驗證

5.7 小結

致謝

參考文獻

第6章 曲面細分著色器簡介

6.1 簡介

6.1.1 細分表面

6.1.2 平滑多邊形數據

6.1.3 GPU計算

6.1.4 曲線、頭髮和草地

6.1.5 其他用途

6.2 新的著色管道

6.2.1 圖塊的生命

6.2.2 線程模型

6.2.3 輸入和輸出

6.2.4 曲面細分控制著色器

6.2.5 曲面細分評估著色器

6.2.6 使用quads生成圖元

6.2.7 使用triangles生成圖元

6.3 對茶壺進行曲面細分

6.4 等值線和螺旋

6.5 結合其他OpenGL功能

參考文獻

第7章 GLSL中的程序紋理

7.1 簡介

7.2 簡單函數

7.3 抗鋸齒

7.4 Perlin噪聲

7.5 Worley噪聲

7.6 動畫

7.7 紋理圖像

7.8 性能

7.9 小結

參考文獻

第8章 基於OpenGL和OpenGL ES的OpenGL SC仿真

8.1 簡介

8.2 OpenGL SC實現

8.3 設計和實現

8.3.1 總體管線

8.3.2 紋理管線

8.4 結果

8.5 小結

參考文獻

第9章 混合圖形和使用多個GPU進行計算

9.1 簡介

9.2 API級別的圖形和計算互操作性

9.2.1 互操作性準備

9.2.2 OpenGL對象交互

9.3 系統級的圖形和計算互操作性

9.4 小結

參考文獻

第2篇 渲 染 技 術

第10章 GPU曲面細分:地形LOD討論

10.1 簡介

10.2 使用OpenGL GPU曲面細分渲染地形

10.3 動態LOD的簡單方法

10.4 粗糙度和細節

10.5 渲染測試

10.5.1 測試設置

10.5.2 評估LOD解決方案的質量

10.5.3 性能

10.6 小結

參考文獻

第11章 使用基於著色器的抗鋸齒體積線

11.1 簡介

11.2 後處理抗鋸齒

11.3 抗鋸齒體積線

11.3.1 使用頂點著色器進行幾何體擠出

11.3.2 使用幾何著色器進行幾何體擠出

11.4 性能

11.5 小結

參考文獻

第12章 通過距離場渲染2D形狀

12.1 簡介

12.2 方法概述

12.3 更好的距離場算法

12.4 距離紋理

12.5 硬件加速距離變換

12.6 片段渲染

12.7 特效

12.8 性能

12.9 缺點

12.10 小結

參考文獻

第13章 WebGL中的高效文本渲染

13.1 簡介

13.2 基於畫布的字體渲染

13.2.1 HTML5 Canvas

13.2.2 概念

13.2.3 實現

13.3 位圖字體渲染

13.3.1 概念

13.3.2 創建位圖字體

13.3.3 實現

13.4 對比

13.4.1 性能

13.4.2 內存使用情況

13.4.3 開發難度

13.5 小結

參考文獻

第14章 分層紋理渲染管線

14.1 簡介

14.1.1 術語

14.1.2 在Blender軟件中的紋理

14.2 分層管線

14.2.1 關於G緩衝區創建

14.2.2 層解決方案

14.2.3 統一的視差偏移

14.2.4 照明

14.3 實現和結果

14.3.1 實現

14.3.2 結果

14.4 小結

參考文獻

第15章 景深與模糊渲染

15.1 簡介

15.2 景深現象

15.3 相關工作

15.4 算法

15.4.1 概述

15.4.2 模糊圈的計算

15.4.3 散景檢測

15.4.4 基於模糊的景深

15.4.5 散景渲染

15.5 結果

15.6 討論

15.7 小結

參考文獻

第16章 陰影代理

16.1 簡介

16.2 對陰影代理的剖析

16.3 設置管線

16.4 啟用ShadowProxy的片段著色器

16.5 調整陰影體積

16.6 性能

16.7 小結

參考文獻

第3篇 混 合 管 線

第17章 使用變換反饋的基於物理學的實時變形

17.1 簡介

17.2 硬件支持和變換反饋的演變

17.3 變換反饋的機制

17.4 數學模型

17.5 實現

17.5.1 使用Verlet積分頂點著色器

17.5.2 註冊屬性以變換反饋

17.5.3 數組緩衝區和緩衝區對象設置

17.5.4 數據的動態修改

17.6 實驗結果和比較

17.7 小結

參考文獻

第18章 GPU上的分層深度剔除和包圍盒管理

18.1 簡介

18.2 管線

18.2.1 早期深度通道

18.2.2 深度LOD構造

18.2.3 包圍盒更新

18.2.4 分層深度剔除

18.2.5 包圍盒調試繪圖

18.3 操作順序

18.4 實驗結果

18.5 小結

參考文獻

第19章 使用分層渲染的大量陰影

19.1 簡介

19.2 在OpenGL中的傳統陰影貼圖渲染技術

19.3 陰影貼圖生成算法

19.4 性能

19.4.1 使用複雜頂點著色器的性能

19.4.2 視錐體剔除優化

19.4.3 背面剔除優化

19.5 高級技術

19.6 局限性

19.7 小結

參考文獻

第20章 高效的分層片段緩衝區技術

20.1 簡介

20.2 相關工作

20.3 鏈表LFB

20.4 線性化LFB

20.5 性能結果

20.6 小結

參考文獻

第21章 可編程頂點拉動

21.1 簡介

21.2 實現

21.3 性能

21.4 應用

21.5 局限性

21.6 小結

參考文獻

第22章 使用GPU硬件光柵化器進行基於八叉樹的稀疏體素化

22.1 簡介

22.2 以前的工作成果

22.3 關於GLSL中的無限制內存訪問

22.4 簡單的體素化管線

22.4.1 保守光柵化

22.4.2 組合體素片段

22.4.3 結果

22.5 稀疏體素化為八叉樹

22.5.1 八叉樹結構

22.5.2 稀疏體素化概述

22.5.3 使用原子計數器進行體素-片段列表構建

22.5.4 節點細分

22.5.5 寫入和Mipmap值

22.5.6 使用間接繪圖實現無同步內核啟動

22.5.7 結果與討論

22.6 小結

致謝

參考文獻

第4篇 性 能

第23章 基於圖塊架構的性能調優

23.1 簡介

23.2 背景

23.3 清除和丟棄幀緩沖區

23.4 增量幀更新

23.5 沖洗

23.6 延遲

23.7 隱藏表面消除

23.8 混合

23.9 多重採樣

23.10 性能分析

23.11 小結

參考文獻

第24章 探索移動與桌面OpenGL性能

24.1 簡介

24.2 重要的差異和約束

24.2.1 尺寸差異

24.2.2 渲染架構差異

24.2.3 內存架構差異

24.3 減少內存帶寬

24.3.1 相對顯示尺寸

24.3.2 幀緩沖區帶寬

24.3.3 抗鋸齒

24.3.4 紋理帶寬

24.3.5 紋理過濾和帶寬

24.4 減少片段工作負載

24.4.1 過度繪製和混合

24.4.2 全屏效果

24.4.3 屏幕外通道

24.4.4 修剪片段工作

24.5 頂點著色

24.6 小結

參考文獻

第25章 通過減少對驅動程序的調用來提高性能

25.1 簡介

25.2 高效的OpenGL狀態使用

25.2.1 檢測冗餘狀態修改

25.2.2 有效狀態修改的一般方法

25.3 批處理和實例化

25.3.1 批處理

25.3.2 關於OpenGL實例化

25.4 小結

致謝

參考文獻

第26章 索引多個頂點數組

26.1 簡介

26.2 問題

26.3 算法

26.4 頂點比較方法

26.4.1 關於If/Then/Else版本

26.4.2 關於memcmp()版本

26.4.3 哈希函數

26.5 性能

26.6 小結

參考文獻

第27章 NVIDIA Quadro上的多GPU渲染

27.1 簡介

27.2 以前的擴展方法

27.3 指定特定GPU進行渲染

27.4 優化GPU之間的數據傳輸

27.5 多GPU的應用結構

27.6 並行渲染方法

27.6.1 先排序圖像分解

27.6.2 後排序數據分解

27.6.3 立體渲染

27.6.4 服務器端渲染

27.7 小結

參考文獻

第5篇 傳 輸

第28章 異步緩衝區傳輸

28.1 簡介

28.2 緩衝區對象

28.2.1 內存傳輸

28.2.2 使用提示

28.2.3 隱式同步

28.2.4 同步原語

28.3 上傳

28.3.1 輪詢(多個緩衝區對象)

28.3.2 緩衝區重新指定(孤立)

28.3.3 非同步緩衝區

28.3.4 關於AMD_pinned_memory擴展

28.4 下載

28.5 複製

28.6 多線程和共享上下文

28.6.1 多線程OpenGL簡介

28.6.2 同步問題

28.6.3 內部同步導致的性能損失

28.6.4 關於共享上下文的總結

28.7 使用方案

28.7.1 方法1:單線程

28.7.2 方法2:兩個線程和一個OpenGL上下文

28.7.3 方法3:兩個線程和兩個OpenGL共享上下文

28.7.4 性能比較

28.8 小結

參考文獻

第29章 費米異步紋理傳輸

29.1 簡介

29.2 關於OpenGL命令緩衝區執行

29.3 當前紋理傳輸方法

29.3.1 同步紋理傳輸

29.3.2 CPU異步紋理傳輸

29.4 GPU異步紋理傳輸

29.5 實現細節

29.5.1 多個OpenGL上下文

29.5.2 同步

29.5.3 複製引擎注意事項

29.6 結果與分析

29.7 小結

參考文獻

第30章 WebGL模型:端到端

30.1 簡介

30.2 關於3D模型的生命週期

30.2.1 第1階段:管線

30.2.2 第2階段:服務

30.2.3 第3階段:加載

30.2.4 第4階段:渲染

30.3 整體一致性

30.3.1 Delta編碼

30.3.2 Delta編碼分析

30.3.3 ZigZag編碼

30.3.4 Delta+ZigZag編碼分析

30.3.5 壓縮管線

30.4 主要改進

30.4.1 交錯和轉置的對比

30.4.2 高水位線預測

30.4.3 性能

30.4.4 未來的工作

30.5 小結

致謝

參考文獻

第31章 使用實時紋理壓縮進行遊戲內視頻捕捉

31.1 簡介

31.2 DXT壓縮概述

31.3 DXT壓縮算法

31.4 轉換為YUV格式顏色空間

31.5 比較

31.6 對程序內容和視頻捕捉使用實時DXT壓縮

31.6.1 使用YUYV-DXT壓縮的視頻捕捉

31.6.2 帶寬因素

31.6.3 視頻流的格式

31.6.4 從GPU下載視頻幀

31.7 小結

參考文獻

第32章 OpenGL友好幾何文件格式及其Maya導出器

32.1 簡介

32.2 背景知識

32.2.1 目標和特性

32.2.2 現有格式

32.3 關於Drone格式

32.3.1 二進制佈局

32.3.2 Drone API

32.3.3 場景API

32.4 編寫Maya文件轉換器

32.4.1 Maya SDK基礎知識

32.4.2 編寫轉換器

32.4.3 遍歷Maya DAG

32.4.4 導出可供OpenGL使用的網格

32.5 結果

32.6 小結

參考文獻

第6篇 調試和性能分析

第33章 開發人員的強力臂助:ARB_debug_output

33.1 簡介

33.2 公開擴展

33.3 使用回調函數

33.4 通過事件原因排序

33.5 訪問消息日誌

33.6 將自定義用戶事件添加到日誌中

33.7 控制事件輸出量

33.8 防止對最終版本的影響

33.9 巨頭之間的爭鬥:實現策略

33.10 關於調試的進一步思考

33.11 小結

參考文獻

第34章 OpenGL計時器查詢

34.1 簡介

34.2 測量OpenGL執行時間

34.2.1 關於OpenGL時間

34.2.2 同步計時器查詢

34.2.3 異步計時器查詢

34.2.4 異步時間戳查詢

34.2.5 考慮查詢檢索

34.3 小結

參考文獻

第35章 實時性能分析工具

35.1 簡介

35.2 範圍和要求

35.3 工具設計

35.3.1 用戶界面

35.3.2 限制和解決方法

35.3.3 應用程序編程接口

35.4 實現

35.4.1 測量CPU上的時間

35.4.2 測量GPU上的時間

35.4.3 數據結構

35.4.4 標記管理

35.5 使用性能分析程序

35.5.1 使用級別

35.5.2 確定應測量的內容

35.5.3 藝術設計師

35.5.4 局限性

35.6 小結

參考文獻

第36章 瀏覽器圖形分析和優化

36.1 簡介

36.2 發光效果的階段

36.3 發光效果的開銷

36.4 分析WebGL應用程序

36.4.1 近乎原生的圖形層引擎

36.4.2 JavaScript性能分析

36.4.3 WebGL Inspector

36.4.4 英特爾圖形性能分析器

36.5 Windows上的分析工作流程

36.6 優化發光效果

36.6.1 較低的渲染目標分辨率

36.6.2 不必要的Mipmap生成

36.6.3 浮點幀緩沖區

36.7 小結

參考文獻

第37章 性能狀態跟蹤

37.1 簡介

37.2 功耗策略

37.3 使用NVAPI進行P狀態跟蹤

37.3.1 關於GPU利用率

37.3.2 讀取P狀態

37.4 使用ADL進行P狀態跟蹤

37.5 小結

參考文獻

第38章 圖形內存使用情況監控

38.1 簡介

38.2 圖形內存分配

38.3 查詢NVIDIA顯卡的內存狀態

38.4 查詢AMD顯卡的內存狀態

38.5 小結

參考文獻

第7篇 軟 件 設 計

第39章 ANGLE項目:在Direct3D上實現OpenGL ES 2.

39.1 簡介

39.2 背景

39.3 實現

39.3.1 坐標系

39.3.2 著色器編譯器和鏈接器

39.3.3 頂點和索引緩衝區

39.3.4 紋理

39.3.5 頂點紋理提取

39.3.6 圖元類型

39.3.7 蒙版清除

39.3.8 單獨的深度和模板緩衝區

39.3.9 同步

39.3.10 多重採樣

39.3.11 多個上下文和資源共享

39.3.12 上下文丟失

39.3.13 資源限制

39.3.14 優化

39.3.15 推薦做法

39.3.16 性能結果

39.4 未來工作

39.5 小結

39.6 源代碼

致謝

參考文獻

第40章 SceneJS:基於WebGL的場景圖形引擎

40.1 簡介

40.2 有效抽象WebGL

40.2.1 繪製列表編譯

40.2.2 狀態排序

40.3 優化場景

40.3.1 紋理圖集

40.3.2 VBO共享

40.3.3 可共享的節點核心

40.4 拾取

40.5 小結

參考文獻

第41章 SpiderGL中的特性和設計選擇

41.1 簡介

41.2 庫架構

41.3 表示3D對象

41.4 直接訪問WebGL對象狀態

41.4.1 問題

41.4.2 解決方案

41.4.3 使用SGL_current_binding

41.4.4 使用SGL_direct_state_access

41.4.5 缺點

41.5 WebGLObject包裝器

41.6 小結

致謝

參考文獻

第42章 Web上的多模態交互式模擬

42.1 簡介

42.2 關於Π-SoFMIS模塊的設計和定義

42.3 框架實現

42.3.1 模態

42.3.2 著色器

42.3.3 文件格式

42.4 渲染模塊

42.5 模擬模塊

42.6 硬件模塊

42.7 案例研究:LAGB模擬器

42.8 小結

參考文獻

第43章 使用OpenGL和OpenGL ES的子集方法

43.1 簡介

43.2 使陳舊的代碼現代化

43.2.1 立即模式和頂點屬性數組

43.2.2 圖元選擇

43.2.3 位圖和多邊形點畫

43.3 保持代碼在API變體中的可維護性

43.3.1 頂點和片段處理

43.3.2 GLX和EGL

43.3.3 頂點數組對象

43.3.4 線框模式

43.3.5 紋理包裝模式

43.3.6 非2的n次冪

43.3.7 圖像格式和類型

43.3.8 圖像佈局

43.3.9 著色語言

43.4 特定功能的代碼塊

43.5 小結

參考文獻

第44章 構建跨平臺應用程序

44.1 簡介

44.2 使用實用程序庫

44.2.1 使用GLUT的示例

44.2.2 使用Qt的示例

44.2.3使用EGL的示例

44.3 與OpenGL版本無關的代碼

44.4 配置空間

44.5 關於Metabuilds和CMake

44.6 關於CMake和配置空間

44.7 關於CMake和平臺細節

44.7.1 平臺:Windows

44.7.2 平臺:Mac OS X

44.7.3 平臺:iOS

44.8 小結

參考文獻

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 1039
海外經銷商無庫存,到貨日平均30天至45天

暢銷榜

客服中心

收藏

會員專區