OpenGL編程指南(原書第8版)

OpenGL編程指南(原書第8版) pdf epub mobi txt 電子書 下載2025

出版者:機械工業齣版社
作者:Dave Shreiner
出品人:
頁數:668
译者:王銳
出版時間:2014-10-1
價格:129
裝幀:平裝
isbn號碼:9787111481133
叢書系列:華章程序員書庫
圖書標籤:
  • OpenGL
  • 計算機圖形學
  • 計算機
  • 圖形學
  • 工具書
  • 圖像
  • #OpenGL
  • #計算機科學-遊戲與圖形學
  • OpenGL
  • 圖形學
  • 計算機圖形學
  • 遊戲開發
  • 渲染
  • 圖形API
  • C++
  • 編程
  • 技術
  • 教程
想要找書就要到 小美書屋
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

具體描述

現代OpenGL軟件接口允許開發人員通過2D和3D對象、顔色圖像和可編程著色器來生成高質量的計算機圖像,以及交互式程序。

《OpenGL編程指南(原書第8版)》針對OpenGL4.3版本的各種特性進行瞭全新闡述,並提供瞭有關OpenGL和OpenGL著色語言的全麵介紹。本書第一次將著色器的技術與以函數功能為中心的經典技術介紹相結閤。本書廣泛使用瞭大量全新的內容和代碼,將最新的OpenGL編程技術呈現在讀者眼前。

本書清晰地講解瞭OpenGL的相關功能與技術,包括幾何對象頂點的傳遞、細分,幾何著色器中的幾何變換,通過片元著色器來操作像素和紋理貼圖,以及基於幀緩存對象和計算著色器的先進數據操作技術。

《OpenGL編程指南(原書第8版)》共12章,主要內容有:第1章概述OpenGL主要特性和功能;第2章討論OpenGL中最主要的特性——可編程著色器;第3章介紹使用OpenGL進行幾何體繪製的各種方法,以及一些可以讓渲染更為高效的優化手段;第4章闡釋OpenGL對於顔色的處理過程,包括像素的處理、緩存的管理以及像素處理相關的渲染技術;第5章介紹在一個二維計算機屏幕上錶現三維場景的操作細節;第6章討論將幾何模型與圖像結閤來創建真實的、高質量的三維模型的方法;第7章介紹計算機圖形的光照效果模擬方法;第8章介紹使用可編程著色器生成紋理和其他錶麵效果的方法細節;第9章解釋OpenGL管理和細分幾何錶麵的著色器功能;第10章介紹在OpenGL渲染流水綫中使用著色器進行幾何體圖元修改的特彆技術;第11章介紹使用OpenGL幀緩存和緩存內存實現高級渲染技術和非圖形學應用的相關方法;第12章介紹瞭最新的著色器階段,將通用計算的方法融閤到OpenGL的渲染流水綫當中。

本版新增OpenGL特性包括:

有關著色器使用的最佳實踐和參考代碼,以及整個著色管綫(包括幾何和細分著色器)的詳細講解。

通過計算著色器實現通用計算方法與渲染管綫的集成。

在應用程序運行時同時綁定多個著色器程序的技術講解。

用來實現先進著色技術的最新GLSL特性。

針對圖形程序性能優化的最新技術介紹。

著者簡介

Dave Shreiner,ARM公司的圖形與GPU計算部門主管,自從OpenGL誕生之日起就積極地參與到它的開發當中。他創建瞭第一個OpenGL的商業培訓課程,並且擁有超過20年的OpenGL編程教學經驗。

Graham Sellers,《OpenGL超級寶典》的聯閤作者,在AMD負責OpenGL的軟件開發。他同時還是很多OpenGL特性規範的作者,並且協助將OpenGL ES移植到桌麵計算機平颱。

John Kessenich,OpenGL著色語言的規範編者,LunarG公司的顧問,負責GLSL的編譯器技術。他在3DLabs和Intel幫助下開發瞭OpenGL 2.0和OpenGL ES 2.0。

Bill Licea-Kane,AMD的技術部門核心成員,《OpenGL Shading Language Guide》的聯閤作者,OpenGL著色語言技術子部門的負責人。

圖書目錄

推薦語
譯者序
前 言
第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 第一個程序:深入分析 10
1.5.1 進入main()函數 10
1.5.2 OpenGL的初始化過程 12
1.5.3 第一次使用OpenGL進行渲染 21
第2章 著色器基礎 25
2.1 著色器與OpenGL 26
2.2 OpenGL的可編程管綫 26
2.3 OpenGL著色語言概述 28
2.3.1 使用GLSL構建著色器 28
2.3.2 存儲限製符 34
2.3.3 語句 37
2.3.4 計算的不變性 41
2.3.5 著色器的預處理器 43
2.3.6 編譯器的控製 45
2.3.7 全局著色器編譯選項 45
2.4 數據塊接口 46
2.4.1 uniform塊 46
2.4.2 指定著色器中的uniform塊 47
2.4.3 從應用程序中訪問uniform塊 48
2.4.4 buffer塊 53
2.4.5 in/out塊 54
2.5 著色器的編譯 54
2.5.1 我們的LoadShaders()函數 58
2.6 著色器子程序 58
2.6.1 GLSL的子程序設置 59
2.6.2 選擇著色器子程序 60
2.7 獨立的著色器對象 62
第3章 OpenGL繪製方式 64
3.1 OpenGL圖元 64
3.1.1 點 65
3.1.2 綫、條帶與循環綫 66
3.1.3 三角形、條帶與扇麵 66
3.2 OpenGL緩存數據 69
3.2.1 創建與分配緩存 69
3.2.2 嚮緩存輸入和輸齣數據 71
3.2.3 訪問緩存的內容 75
3.2.4 丟棄緩存數據 80
3.3 頂點規範 80
3.3.1 深入討論VertexAttrib-Pointer 81
3.3.2  靜態頂點屬性的規範 84
3.4 OpenGL的繪製命令 86
3.4.1 圖元的重啓動 92
3.5 多實例渲染 96
3.5.1 多實例的頂點屬性 97
3.5.2 在著色器中使用實例計數器 102
3.5.3 多實例方法的迴顧 104
第4章 顔色、像素和幀緩存 105
4.1 基本顔色理論 106
4.2 緩存及其用途 107
4.2.1 緩存的清除 109
4.2.2 緩存的掩碼 110
4.3 顔色與OpenGL 110
4.3.1 顔色的錶達與OpenGL 111
4.3.2 頂點顔色 112
4.3.3 光柵化 114
4.4 多重采樣 115
4.4.1 采樣著色 116
4.5 片元的測試與操作 117
4.5.1 剪切測試 118
4.5.2 多重采樣的片元操作 118
4.5.3 模闆測試 119
4.5.4 模闆的例子 120
4.5.5 深度測試 122
4.5.6 融混 124
4.5.7 融混參數 125
4.5.8 控製融混的參數 125
4.5.9 融混方程 127
4.5.10 抖動 128
4.5.11 邏輯操作 128
4.5.12 遮擋查詢 129
4.5.13 條件渲染 132
4.6 逐圖元的反走樣 133
4.6.1 綫段的反走樣 134
4.6.2 多邊形的反走樣 135
4.7 幀緩存對象 135
4.7.1 渲染緩存 137
4.7.2 創建渲染緩存的存儲空間 138
4.7.3 幀緩存附件 140
4.7.4 幀緩存的完整性 142
4.7.5 幀緩存的無效化 144
4.8 多重渲染緩存的同步寫入 145
4.8.1 選擇顔色緩存來進行讀寫操作 146
4.8.2 雙源融混 148
4.9 像素數據的讀取和拷貝 150
4.10 拷貝像素矩形 152
第5章 視口變換、剪切與反饋 153
5.1 觀察視圖 154
5.1.1 視圖模型 154
5.1.2 相機模型 154
5.1.3 正交視圖模型 157
5.2 用戶變換 158
5.2.1 矩陣乘法的迴顧 159
5.2.2 齊次坐標 161
5.2.3 綫性變換與矩陣 163
5.2.4  法綫變換 173
5.2.5 OpenGL矩陣 174
5.3 OpenGL變換 177
5.3.1 高級技巧:用戶剪切 178
5.4 transform feedback 179
5.4.1 transform feedback對象 180
5.4.2 transform feedback緩存 181
5.4.3 配置transform feedback的變量 183
5.4.4 transform feedback的啓動和停止 187
5.4.5 transform feedback的示例:粒子係統 189
第6章 紋理 195
6.1 紋理映射 196
6.2 基本紋理類型 197
6.3 創建和初始化紋理 198
6.3.1 紋理格式 202
6.4 代理紋理 207
6.5 設置紋理數據 208
6.5.1 顯式設置紋理數據 208
6.5.2 使用Pixel Unpack緩存 210
6.5.3 從幀緩存拷貝數據 211
6.5.4 從文件加載圖像 212
6.5.5 查詢紋理數據 215
6.5.6 紋理數據布局 215
6.6 采樣器對象 219
6.6.1 采樣器參數 220
6.7 使用紋理 221
6.7.1 紋理坐標 223
6.7.2 組織紋理數據 226
6.7.3 使用多重紋理 227
6.8 復雜紋理類型 229
6.8.1 3維紋理 229
6.8.2 數組紋理 231
6.8.3 立方體映射紋理 231
6.8.4 陰影采樣器 237
6.8.5 深度模闆紋理 238
6.8.6 緩存紋理 238
6.9 紋理視圖 240
6.10 壓縮紋理 243
6.11 濾波 245
6.11.1 綫性濾波 245
6.11.2 使用和生成mipmap 247
6.11.3 計算mipmap級彆 251
6.11.4 mipmap細節層次控製 252
6.12 高級紋理查詢函數 252
6.12.1 顯式細節層次 252
6.12.2 顯式梯度設置 253
6.12.3 偏移後的紋理獲取 253
6.12.4 投影紋理 254
6.12.5 著色器中的紋理查詢 254
6.12.6 收集紋素 256
6.12.7 閤並特殊函數 256
6.13 點精靈 257
6.13.1 帶紋理的點精靈 257
6.13.2 控製點的外觀 259
6.14 渲染到紋理貼圖 260
6.14.1 丟棄已渲染數據 263
6.15 本章總結 264
6.15.1 紋理迴顧 264
6.15.2 紋理的最好實踐 265
第7章 光照與陰影 266
7.1 光照介紹 267
7.2 經典光照模型 267
7.2.1 不同光源類型的片元著色器 268
7.2.2 將計算移到頂點著色器 277
7.2.3 多個光源和材質 279
7.2.4 光照坐標係統 285
7.2.5 經典光照模型的局限 285
7.3 光照模型進階 286
7.3.1 半球光照 286
7.3.2 基於圖像的光照 289
7.3.3 球麵光照 293
7.4 陰影映射 296
7.4.1 創建一張陰影貼圖 297
7.4.2 使用陰影貼圖 299
第8章 程序式紋理 303
8.1 程序式紋理 303
8.1.1 規則的花紋 305
8.1.2 玩具球 311
8.1.3 晶格 318
8.1.4 程序式著色方法的總結 319
8.2 凹凸貼圖映射 319
8.2.1 應用程序設置 321
8.2.2 頂點著色器 323
8.2.3 片元著色器 324
8.2.4 法綫貼圖 326
8.3 程序式紋理的反走樣 326
8.3.1 走樣的來源 327
8.3.2 避免走樣問題 328
8.3.3 提高分辨率 329
8.3.4 高頻率的反走樣 330
8.3.5 頻率截斷 337
8.3.6 程序式反走樣的總結 339
8.4 噪聲 339
8.4.1 噪聲的定義 341
8.4.2 噪聲紋理 345
8.4.3 權衡 348
8.4.4 一個簡單的噪聲著色器 349
8.4.5 湍流 351
8.4.6 大理石 353
8.4.7 花崗岩 353
8.4.8 木紋 354
8.4.9 噪聲的總結 357
8.5 更多信息 357
第9章 細分著色器 359
9.1 細分著色器 359
9.2 細分麵片 360
9.3 細分控製著色器 361
9.3.1 生成輸齣麵片的頂點 362
9.3.2 細分控製著色器的變量 362
9.3.3 細分的控製 363
9.4 細分計算著色器 367
9.4.1 設置圖元生成域 368
9.4.2 設置生成圖元的麵朝嚮 368
9.4.3 設置細分坐標的間隔 368
9.4.4 更多的細分計算著色器layout選項 368
9.4.5 設置頂點的位置 369
9.4.6 細分計算著色器的變量 369
9.5 細分實例:茶壺 370
9.5.1 處理麵片輸入頂點 370
9.5.2 計算茶壺的細分坐標 371
9.6 更多的細分技術 373
9.6.1 視口相關的細分 373
9.6.2 細分的共享邊與裂縫 375
9.6.3 置換貼圖映射 376
第10章 幾何著色器 377
10.1 創建幾何著色器 378
10.2 幾何著色器的輸入和輸齣 380
10.2.1 幾何著色器的輸入 380
10.2.2 特殊的幾何著色器圖元 383
10.2.3 幾何著色器的輸齣 387
10.3 産生圖元 389
10.3.1 幾何體的裁減 389
10.3.2 幾何體的擴充 390
10.4 transform feedback高級篇 394
10.4.1 多重輸齣流 395
10.4.2 圖元查詢 399
10.4.3 使用transform feedback的結果 400
10.5 幾何著色器的多實例化 408
10.6 多視口與分層渲染 409
10.6.1 視口索引 409
10.6.2 分層渲染 414
10.7 本章小結 417
10.7.1 幾何著色器迴顧 417
10.7.2 幾何著色器的經驗談 418
第11章 內存 420
11.1 使用紋理存儲通用數據 420
11.1.1 將紋理綁定到圖像單元 425
11.1.2 圖像數據的讀取和寫入 427
11.2 著色器存儲緩存對象 430
11.2.1 寫入結構化數據 431
11.3 原子操作和同步 431
11.3.1 圖像的原子操作 431
11.3.2 緩存的原子操作 439
11.3.3 同步對象 440
11.3.4 圖像限定符和屏障 444
11.3.5 高性能的原子計數器 452
11.4 示例 455
11.4.1 順序無關的透明 455
第12章 計算著色器 466
12.1 概述 466
12.2 工作組及其執行 467
12.2.1 知道工作組的位置 471
12.3 通信與同步 472
12.3.1 通信 473
12.3.2 同步 474
12.4 示例 475
12.4.1 物理模擬 476
12.4.2 圖像處理 481
12.5 本章總結 485
12.5.1 計算著色器迴顧 485
12.5.2 計算著色器的最佳實踐 485
附錄A GLUT基礎知識 487
附錄B OpenGL ES與WebGL 493
附錄C 內置GLSL變量與函數 504
附錄D 狀態變量 552
附錄E 齊次坐標與變換矩陣 591
附錄F OpenGL與窗口係統 596
附錄G 紋理、幀緩存與渲染緩存的浮點格式 612
附錄H OpenGL程序的調試與優化 618
附錄I 緩存對象的布局 632
術語錶 635
· · · · · · (收起)

讀後感

評分

这不是一本OpenGL的入门书籍,更不是教程。确切的说,它是一本API参考手册。 如果只是要一本参考手册,网上可以方便的查找到相关API公开文档。 ========================================================  

評分

感觉大量内容是机翻的,读起来超级不顺。书有问题就算了,然而官网配套的示例代码,也太不完善了。如果书里面每一个小结都能找到正确的可运行代码(实际上,只能找到部分,而且bug超多,我只改通了一部分),我就可以结合代码来阅读这书了。目前看到第六章,还是打算改看SuperB...  

評分

When you read about "In OpenGL Version 3.1, all of the techniques and functions described in this chapter were removed through deprecation. Even though some of this functionality is part of the GLU library, it relies on functionality that has been removed ...  

評分

感觉大量内容是机翻的,读起来超级不顺。书有问题就算了,然而官网配套的示例代码,也太不完善了。如果书里面每一个小结都能找到正确的可运行代码(实际上,只能找到部分,而且bug超多,我只改通了一部分),我就可以结合代码来阅读这书了。目前看到第六章,还是打算改看SuperB...  

評分

OpenGL的API更新好快,现在是2013年1月8日,我可以负责任的说第七版已经是累赘了,第八版号称1月中旬就上市了。 这本书不像别的书,很多书旧版还很有价值,这本书本身就像是一个man page的集合,很多API都已经弃用了,参考这本书你会发现你辛苦弄懂的东西原来已经被弃用了。。...  

用戶評價

评分

都不如github

评分

不適閤初學者閱讀!更適閤當手冊來看,而不是教程。

评分

第八版著色器部分內容較多,但是感覺細分著色器、幾何著色器和計算著色器感覺講述的還是偏少。

评分

看過第九版,感覺OpenGL開發環境太麻煩瞭…

评分

太厚瞭 主要是當工具書來看 恕我不能給5星啦

本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 book.quotespace.org All Rights Reserved. 小美書屋 版权所有