OpenGL超級寶典(第7版)

OpenGL超級寶典(第7版)

作者: [美]格雷厄姆·塞勒斯(Graham Sellers)
出版社: 人民郵電
出版在: 2020-10-01
ISBN-13: 9787115545701
ISBN-10: 7115545707
總頁數: 506 頁





內容描述


本書是OpenGL及3D圖形編程的經典入門指南,涵蓋了使用OpenGL進行編程所需要的主要知識。本書內容分3部分。第一部分介紹經典OpenGL繪圖的基礎知識,涉及管線、數學知識、數據、著色器和程序等;第二部分著重介紹OpenGL的一些高級功能,涉及頂點處理與繪圖命令、基元處理片段處理與幀緩沖、計算著色器、高級數據管理、管線監控等;第三部分介紹一些實戰技巧,涉及渲染技巧、高性能的OpenGL、調試和穩定性等。本書適合希望系統學習OpenGL的讀者閱讀,經驗豐富的OpenGL程序員也能從中獲益。本書既可以作為學習OpenGL的教材,也可以作為隨時查閱的參考手冊。


目錄大綱


第 1章 OpenGL簡介 21.1 OpenGL和圖形管線 21.2 OpenGL的起源和演化 41.3 基元、管線和像素 61.4 總結 7第 2章 我們的第 一個OpenGL程序 82.1 創建簡單的應用 82.2 使用著色器 102.3 繪制我們的第 一個三角形 152.4 總結 16第3章 管線 173.1 向頂點著色器傳遞數據 173.2 在階段之間傳遞數據 193.3 細分曲面 213.3.1 細分曲面控制著色器 213.3.2 細分曲面引擎 233.3.3 細分曲面評估著色器 233.4 幾何著色器 243.5 基元裝配、裁剪和光柵化 253.5.1 裁剪 253.5.2 視口轉換 263.5.3 剔除 273.5.4 光柵化 273.6 片段著色器 283.7 幀緩存運算 303.8 計算著色器 313.9 使用OpenGL擴展 323.10 總結 35第4章 3D圖形中的數學 364.1 本章是在講令人生畏的數學課嗎 364.2 3D圖形數學速成課 374.2.1 向量 374.2.2 常見向量運算符 394.2.3 矩陣 414.2.4 矩陣構造和運算符 424.3 瞭解轉換 444.3.1 OpenGL中的坐標空間 454.3.2 坐標轉換 464.3.3 連接轉換 524.3.4 四元數 524.3.5 模型—視圖轉換 534.3.6 投影轉換 554.4 插值、直線、曲線和樣條 584.4.1 曲線 584.4.2 樣條 614.5 總結 63第5章 數據 645.1 緩沖 645.1.1 創建緩沖和分配內存 655.1.2 填充以及拷貝數據到緩沖 695.1.3 使用緩沖為頂點著色器提供數據 715.2 統一變量 775.2.1 默認區塊統一變量 775.2.2 一致區塊 795.2.3 使用統一變量轉換幾何圖形 895.3 著色器存儲區塊 935.4 原子計數器 975.5 紋理 1015.5.1 創建並初始化紋理 1015.5.2 紋理目標和類型 1025.5.3 從著色器中紋理讀取數據 1035.5.4 從文件載入紋理 1065.5.5 控制紋理數據的讀取方式 1085.5.6 數組紋理 1165.5.7 在著色器中向紋理寫入數據 1205.5.8 同步存取圖像 1285.5.9 紋理壓縮 1285.5.10 紋理視圖 1315.6 總結 133第6章 著色器和程序 1346.1 語言概述 1346.1.1 數據類型 1346.1.2 內置函數 1396.2 編譯、鏈接和檢查程序 1436.2.1 從編譯程序獲得信息 1436.2.2 從鏈接程序獲得信息 1466.2.3 單獨程序 1476.2.4 著色器子程序 1526.2.5 程序二進制 1556.3 總結 157第二部分 深入探索第7章 頂點處理與繪圖命令 1607.1 頂點處理 1607.1.1 頂點著色器輸入 1607.1.2 頂點著色器輸出 1647.2 繪圖命令 1657.2.1 索引繪圖命令 1657.2.2 實例化 1707.2.3 間接繪制 1787.3 變換頂點的保存 1857.3.1 使用變換反饋 1857.3.2 開始、暫停和停止變換反饋 1897.3.3 用變換反饋結束管線 1907.3.4 變換反饋示例:實物模擬 1907.4 裁剪 1967.5 總結 200第8章 基元處理 2018.1 曲面細分 2018.1.1 曲面細分基元模式 2028.1.2 曲面細分子分段模式 2088.1.3 數據在曲面細分著色器之間的傳遞 2098.1.4 著色器調用通信 2118.1.5 曲面細分示例:地形渲染 2118.1.6 曲面細分示例:三次貝塞爾面片 2158.2 幾何著色器 2198.2.1 傳遞幾何著色器 2198.2.2 在應用程序中使用幾何著色器 2218.2.3 刪除幾何著色器中的幾何 2248.2.4 修改幾何著色器中的幾何體 2268.2.5 在幾何著色器中生成幾何體 2278.2.6 修改幾何著色器中的基元類型 2298.2.7 多條儲存流 2318.2.8 通過幾何著色器引入新基元類型 2328.2.9 多次視口轉換 2378.3 總結 239第9章 片段處理與幀緩沖 2409.1 片段著色器 2409.2 單片段測試 2439.2.1 剪裁測試 2439.2.2 模板測試 2459.2.3 深度測試 2479.2.4 早期測試 2509.3 顏色輸出 2519.3.1 混合 2519.3.2 邏輯運算 2549.3.3 顏色遮罩 2559.4 離屏渲染 2569.4.1 多個幀緩沖附件 2609.4.2 分層渲染 2619.4.3 幀緩存的完整性 2669.4.4 立體渲染 2689.5 反混疊 2729.5.1 過濾法反混疊 2729.5.2 多樣本反混疊 2749.5.3 多樣本紋理 2759.5.4 採樣率著色 2789.5.5 重心採樣 2809.6 高級幀緩沖格式 2829.6.1 無附件渲染 2839.6.2 浮點幀緩沖 2849.6.3 整數幀緩沖 2939.6.4 sRGB顏色空間 2949.7 點精靈 2969.7.1 點紋理化 2969.7.2 渲染星空 2979.7.3 點參數 2999.7.4 有形點 2999.7.5 旋轉點 3019.8 獲取圖像 3029.8.1 從幀緩存中讀取 3029.8.2 在幀緩沖之間復制數據 3049.8.3 讀取紋理數據 3079.9 總結 308第 10章 計算著色器 30910.1 使用計算著色器 30910.1.1 執行計算著色器 31010.1.2 計算著色器通信 31410.2 示例 31710.2.1 計算著色器並行前綴和 31710.2.2 計算著色器群集 32610.3 總結 333第 11章 高級數據管理 33411.1 取消綁定 33411.2 稀疏紋理 33811.3 紋理壓縮 34311.3.1 RGTC壓縮方法 34311.3.2 生成壓縮數據 34511.4 壓縮數據格式 34911.5 高質量紋理過濾 35111.6 總結 353第 12章 管線監控 35412.1 查詢 35412.1.1 遮擋查詢 35512.1.2 定時查詢 36212.1.3 變換反饋查詢 36512.1.4 管線狀態查詢 36912.2 OpenGL同步 37012.2.1 清空管線 37012.2.2 同步與柵欄 37112.3 總結 374第三部分 實戰演練第 13章 渲染技巧 37613.1 光照模型 37613.1.1 Phong光照模型 37613.1.2 Blinn-Phong光照 38213.1.3 邊緣光 38413.1.4 法線映射 38613.1.5 環境映射 38913.1.6 材料性質 39613.1.7 投射陰影 39813.1.8 霧化效果 40113.2 非真實感繪制 40413.3 替代渲染方法 40713.3.1 延期著色 40713.3.2 屏幕空間技術 41413.3.3 無三角渲染 41913.4 2D圖像 42913.4.1 距離場紋理 42913.4.2 位圖字體 43313.5 總結 436第 14章 高性能的OpenGL 43714.1 優化CPU性能 43714.1.1 OpenGL中的多線程 43714.1.2 包緩存 44114.2 OpenGL中的低開銷操作 44814.2.1 間接渲染 44914.2.2 GPU工作生成 45214.2.3 零拷貝 45814.3 性能分析工具 46314.3.1 Windows性能工具包和GPUView 46414.3.2 GPU PerfStudio 46614.3.3 調試來使應用運行的更快 46814.4 總結 480第 15章 調試和穩定性 48115.1 調試你的程序 48115.2 安全性和健壯性 48615.2.1 圖像重置 48615.2.2 讀取邊界檢查 48815.3 總結 489附錄A 超級寶典工具 490附錄B SBM文件格式 494附錄C OpenGL的功能和版本 500


作者介紹


格雷厄姆·塞勒斯(Graham Sellers)是AMD的软件架构师和工程研究员,是OpenGL ARB中的AMD代表。他为核心的OpenGL规范和扩展做出了贡献,并拥有多项图形和图像处理专利。小理查德·赖特(Richard S. Wright, Jr.)是Software Bisque公司的高级软件工程师,他用OpenGL开发了多媒体宇航和天文软件。十多年来,他在美国福赛大学(Full Sail University)的游戏开发学位课程中教授OpenGL编程。尼古拉斯·海梅尔(Nicholas Haemel)是英伟达公司相机软件部门的主管,曾代表英伟达参加KhronosGroup标准组织,并编写了许多OpenGL扩展。




相關書籍

Python 和 Pygame 遊戲開發指南 (Making Games with Python & Pygame)

作者 斯維加特 (Al Sweigart)

2020-10-01

GPU PRO 360 Guide to GPGPU

作者 Wolfgang Engel

2020-10-01

虛擬現實:科技新浪潮

作者 陳根

2020-10-01