發表於2024-12-22
Khronos小組編寫的OpenGL官方*威指南,素有“OpenGL紅寶*”美譽
結閤OpenGL 4.5的新特性,全方位闡釋OpenGL編程的各種技術細節、方法和*佳實踐,幫助程序員踏上OpenGL專傢之路
作為如今世界知名的圖形學標準接口,OpenGL的*新版本(OpenGL 4.5)顯著提升瞭應用程序的運行效率、靈活性和性能。OpenGL 4.5是一個非常成熟而且穩健的平颱,可以實現高質量的計算機圖像和交互程序的開發工作,並且使用2D和3D物體、彩色圖像以及著色器的方式來錶達整個場景。
本書詳細介紹瞭OpenGL 4.5(包括4.4、SPIR-V和擴展功能),以及OpenGL著色語言的方方麵麵,能有效地幫助你編寫和維護OpenGL代碼。
本版新增OpenGL特性包括:
涵蓋OpenGL 4.5的直接狀態訪問(DSA)特性,這是對OpenGL開發模式及應用程序訪問對象的方式的一次重大變革。
有關著色器的功能和GPU處理過程的深入討論以及案例講解,而越來越多的程序功能正趨嚮於在圖形處理器上直接實現。
根據開發者社區的反饋和建議,增加瞭一些關鍵性功能的介紹和案例。
更新瞭附錄部分,包含*新的OpenGL庫、相關API、函數、變量、格式,以及調試和性能評價的方法。
作為久負盛名的“*寶書”的*新一版,本書將著色器相關的技術完全融入瞭經典的以函數講解為核心的章節當中,並且通過豐富的代碼案例來演示這些現代化的技法。從基礎的概念,到物體的繪製、著色、像素、片元、變換方法、紋理、幀緩存、光照和陰影、內存等高級方法和非圖形學應用的講解,無所不包。本書還講解瞭著色器的每一個階段,包括全新的細分、幾何和計算著色器。
本書共12章,第1章概述OpenGL主要特性和功能;第2章討論OpenGL中*主要的特性——可編程著色器和SPIR-V;第3章介紹使用OpenGL進行幾何體繪製的各種方法,以及一些可以讓渲染更為高效的優化手段;第4章闡釋OpenGL對於顔色的處理過程;第5章介紹在一個二維計算機屏幕上錶現三維場景的操作細節;第6章討論將幾何模型與圖像結閤來創建真實的、高質量的三維模型的方法;第7章介紹計算機圖形的光照效果模擬方法;第8章介紹使用可編程著色器生成紋理和其他錶麵效果的方法細節;第9章解釋OpenGL管理和細分幾何錶麵的著色器功能;第10章介紹在OpenGL渲染流水綫中使用著色器進行幾何體圖元修改的特彆技術;第11章介紹使用OpenGL幀緩存和緩存內存實現高級渲染技術和非圖形學應用的相關方法;第12章介紹瞭*新的著色器階段,將通用計算的方法融閤到OpenGL的渲染流水綫當中。
約翰·剋賽尼希(John Kessenich),來自Google的資深軟件工程師、SPIR-V的創立者,自1999年以來就廣泛參與到OpenGL和GLSL的Khronos標準開發當中。他是SPIR-V和GLSL標準說明書的主要編寫者,並且開發瞭相關的著色器編譯工具和解析器來考察相關標準的可移植性。
格雷厄姆·塞勒斯(Graham Sellers),來自AMD的軟件架構和工程部門,是Khronos API的領導者之一,負責OpenGL ARB中的AMD功能部分。他為OpenGL和Vulkan的核心標準和擴展都做齣瞭貢獻,並且持有圖形學和圖像處理方麵的一些專利。
戴夫·施萊爾(Dave Shreiner),一位有著25年經驗的計算機圖形工作者,編寫和教授計算機圖形API相關的課程,並且一直是數本Addison-Wesley齣版的計算機圖形學圖書的核心作者,從事相關寫作已有近10年之久。
推薦語
譯者序
前 言
緻 謝
第1章 OpenGL概述 1
1.1 什麼是OpenGL 1
1.2 初識OpenGL程序 2
1.3 OpenGL語法 6
1.4 OpenGL渲染管綫 7
1.4.1 準備嚮OpenGL傳輸數據 8
1.4.2 將數據傳輸到OpenGL 8
1.4.3 頂點著色 9
1.4.4 細分著色 9
1.4.5 幾何著色 9
1.4.6 圖元裝配 9
1.4.7 剪切 9
1.4.8 光柵化 9
1.4.9 片元著色 10
1.4.10 逐片元的操作 10
1.5 第一個程序:深入分析 11
1.5.1 進入main()函數 11
1.5.2 OpenGL的初始化過程 12
1.5.3 第一次使用OpenGL進行渲染 21
第2章 著色器基礎 24
2.1 著色器與OpenGL 25
2.2 OpenGL的可編程管綫 25
2.3 OpenGL著色語言概述 27
2.3.1 使用GLSL構建著色器 27
2.3.2 存儲限製符 33
2.3.3 語句 36
2.3.4 計算的不變性 40
2.3.5 著色器的預處理器 42
2.3.6 編譯器的控製 44
2.3.7 全局著色器編譯選項 44
2.4 數據塊接口 45
2.4.1 uniform塊 45
2.4.2 指定著色器中的uniform塊 46
2.4.3 從應用程序中訪問uniform塊 47
2.4.4 buffer塊 53
2.4.5 in/out塊、位置和分量 53
2.5 著色器的編譯 54
2.6 著色器子程序 59
2.6.1 GLSL的子程序設置 59
2.6.2 選擇著色器子程序 60
2.7 獨立的著色器對象 62
2.8 SPIR-V 64
2.8.1 選擇SPIR-V的理由 64
2.8.2 SPIR-V與OpenGL 66
2.8.3 使用GLSL在OpenGL中生成SPIR-V 67
2.8.4 Glslang 69
2.8.5 SPIR-V中包含瞭什麼 69
第3章 OpenGL繪製方式 70
3.1 OpenGL圖元 70
3.1.1 點 71
3.1.2 綫、條帶與循環綫 72
3.1.3 三角形、條帶與扇麵 72
3.2 OpenGL緩存數據 75
3.2.1 創建與分配緩存 75
3.2.2 嚮緩存輸入和輸齣數據 77
3.2.3 訪問緩存的內容 81
3.2.4 丟棄緩存數據 86
3.3 頂點規範 86
3.3.1 深入討論VertexAttribPointer 87
3.3.2 靜態頂點屬性的規範 90
3.4 OpenGL的繪製命令 92
3.4.1 圖元的重啓動 99
3.4.2 多實例渲染 102
第4章 顔色、像素和片元 112
4.1 基本顔色理論 113
4.2 緩存及其用途 114
4.2.1 緩存的清除 116
4.2.2 緩存的掩碼 117
4.3 顔色與OpenGL 118
4.3.1 顔色的錶達與OpenGL 118
4.3.2 平滑數據插值 119
4.4 片元的測試與操作 121
4.4.1 剪切測試 122
4.4.2 多重采樣的片元操作 123
4.4.3 模闆測試 124
4.4.4 模闆的例子 125
4.4.5 深度測試 127
4.4.6 融混 129
4.4.7 邏輯操作 133
4.4.8 遮擋查詢 134
4.4.9 條件渲染 138
4.5 多重采樣 139
4.6 逐圖元的反走樣 141
4.6.1 綫段的反走樣 142
4.6.2 多邊形的反走樣 143
4.7 像素數據的讀取和拷貝 143
4.8 拷貝像素矩形 145
第5章 視口變換、裁減、剪切與反饋 147
5.1 觀察視圖 148
5.1.1 視圖模型 148
5.1.2 相機模型 148
5.1.3 正交視圖模型 151
5.2 用戶變換 152
5.2.1 矩陣乘法的迴顧 153
5.2.2 齊次坐標 155
5.2.3 綫性變換與矩陣 157
5.2.4 法綫變換 167
5.2.5 OpenGL矩陣 168
5.3 OpenGL變換 170
5.3.1 高級技巧:用戶裁減和剪切 172
5.3.2 OpenGL變換的控製 173
5.4 transform feedback 174
5.4.1 transform feedback對象 175
5.4.2 transform feedback緩存 176
5.4.3 配置transform feedback的變量 179
5.4.4 transform feedback的啓動和停止 185
5.4.5 transform feedback的示例:粒子係統 187
第6章 紋理與幀緩存 192
6.1 紋理綜述 193
6.2 基本紋理類型 194
6.3 創建並初始化紋理 195
6.4 指定紋理數據 200
6.4.1 顯式設置紋理數據 200
6.4.2 從緩存中加載紋理 202
6.4.3 從文件加載圖像 203
6.4.4 獲取紋理數據 206
6.4.5 紋理數據的排列布局 207
6.5 紋理格式 211
6.5.1 內部格式 211
6.5.2 外部格式 214
6.6 壓縮紋理 216
6.7 采樣器對象 218
6.8 紋理的使用 220
6.8.1 紋理坐標 222
6.8.2 排列紋理數據 225
6.8.3 使用多重紋理 227
6.9 復雜紋理類型 229
6.9.1 3D紋理 229
6.9.2 紋理數組 230
6.9.3 立方體映射紋理 231
6.9.4 陰影采樣器 236
6.9.5 深度-模闆紋理 237
6.9.6 緩存紋理 238
6.10 紋理視圖 240
6.11 濾波方式 243
6.11.1 綫性濾波 243
6.11.2 使用和生成mipmap 245
6.11.3 計算mipmap層次 249
6.11.4 mipmap細節層次的控製 250
6.12 高級紋理查詢函數 250
6.12.1 顯式的細節層次控製 250
6.12.2 顯式的梯度設置 251
6.12.3 帶有偏移參數的紋理獲取函數 251
6.12.4 投影紋理 252
6.12.5 在著色器中執行紋理查詢 253
6.12.6 紋素收集 255
6.12.7 組閤功能的特殊函數 255
6.13 無綁定紋理 256
6.13.1 紋理句柄 256
6.13.2 紋理駐留 257
6.13.3 采樣無綁定紋理 258
6.14 稀疏紋理 259
6.14.1 稀疏紋理的數據提交 259
.......
OpenGL編程指南(原書第9版) 下載 mobi pdf epub txt 電子書 格式 2024
OpenGL編程指南(原書第9版) 下載 mobi epub pdf 電子書京東物流真的是快,上午買的下午就送到瞭,給力!
評分紙張不錯 值得入手
評分書不錯,很喜歡不錯可惜還沒看完就丟瞭
評分好書好書
評分書捲起瞭一角,影響不大!希望薄薄的一本書對的起這個價格!
評分好書,正得用,希望便宜點就好啦啦啦啦
評分挺好的,質量不錯!!!!
評分這本書偏嚮於介紹和庫介紹,但是實操有點少
評分書不錯,講解詳細,?
OpenGL編程指南(原書第9版) mobi epub pdf txt 電子書 格式下載 2024