|
-- 會員 / 註冊 --
|
|
|
|
OpenGL超級寶典(第5版) ( 簡體 字) |
作者:[美] Richard S. Wright,Jr. Nicholas Haemel Graham Sellers Benjamin Lipchak | 類別:1. -> 多媒體 -> OpenGL |
譯者: |
出版社:人民郵電出版社 | 3dWoo書號: 32884 詢問書籍請說出此書號!【缺書】 NT售價: 540 元 |
出版日:5/1/2012 |
頁數:698 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787115274564 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: |
內容簡介:《OpenGL超級寶典(第5版)》是OpenGL及3D圖形編程最好的入門指南,涵蓋了使用最新版本的OpenGL進行編程所需要的主要知識。全書分三部分,共16章,另有3個附錄。第一部分包括第1章到第7章,介紹如何構建一個使用OpenGL的程序、如何設置3D渲染環境,以及如何創建基本對象和光線并對他們進行著色。然后深入研究如何使用OpenGL,并向讀者介紹GLSL,以及如何創建自己的著色器。第二部分包括第8章到第12章,將進行更深入的研究,而懂得如何應用這些高級特性將使讀者超越業余3D玩家的水平。這一部分不僅能夠使我們掌握更多的可視化效果,同時也考慮了性能表現。第三部分包括第13章到第16章,著重介紹OpenGL如何支持和連接Windows、Mac OS X、Linux和掌上設備。附錄部分給出了更多閱讀建議、術語表和API參考介紹。 《OpenGL超級寶典(第5版)》適合希望精通OpenGL以便對圖形編程和3D圖形知識進行擴展的程序員閱讀,也可以幫助經驗豐富的OpenGL程序員學習如何移植自己的應用程序。本書既可以作為學習OpenGL的教材,也可以作為隨時查閱的參考手冊。
|
目錄:第一部分 基本概念 第1章 3D圖形和OpenGL簡介 2 1.1 計算機圖形的簡單歷史回顧 2 1.1.1 進入電子時代 3 1.1.2 走向3D 3 1.2 3D圖形技術和術語 6 1.2.1 變換(Transformation)和投影(Projection) 6 1.2.2 光柵化(Rasterization) 6 1.2.3 著色 7 1.2.4 紋理貼圖 8 1.2.5 混合 9 1.2.6 將點連接起來 9 1.3 3D圖形的常見用途 9 1.3.1 實時3D 10 1.3.2 非實時3D 12 1.3.3 著色器 12 1.4 3D編程的基本原則 13 1.4.1 并非工具包 13 1.4.2 坐標系統 13 1.4.3 投影:從3D到2D 17 1.5 總結 19
第2章 入門指南 20 2.1 什么是OpenGL? 20 2.1.1 標準的演化 21 2.1.2 OpenGL的未來 24 2.2 使用OpenGL 27 2.2.1 支持陣容 28 2.2.2 OpenGL API特性 29 2.2.3 OpenGL錯誤 31 2.2.4 確認版本 31 2.2.5 使用glHint獲取線索 32 2.2.6 OpenGL狀態機 32 2.3 建立Windows項目 33 2.3.1 包含路徑 34 2.3.2 創建項目 35 2.3.3 添加文件 36 2.4 建立Mac OS X項目 38 2.4.1 自定義創建設置 38 2.4.2 創建新項目 39 2.4.3 框架、頭文件和庫 41 2.5 第一個三角形 43 2.5.1 要包含什么 45 2.5.2 啟動GLUT 45 2.5.3 坐標系基礎 47 2.5.4 完成設置 50 2.5.5 言歸正傳 52 2.6 加點兒活力! 53 2.6.1 特殊按鍵 53 2.6.2 刷新顯示 54 2.6.3 簡單的動畫片 54 2.7 總結 55
第3章 基礎渲染 56 3.1 基礎圖形管線 57 3.1.1 客戶機-服務器 57 3.1.2 著色器 58 3.2 創建坐標系 60 3.2.1 正投影 60 3.2.2 透視投影 61 3.3 使用存儲著色器 61 3.3.1 屬性 62 3.3.2 Uniform值 62 3.4 將點連接起來 64 3.4.1 點和線 64 3.4.2 繪制3D三角形 68 3.4.3 單獨的三角形 68 3.4.4 一個簡單批次容器 72 3.4.5 不希望出現的幾何圖形 73 3.4.6 多邊形偏移 78 3.4.7 裁剪 80 3.5 混合 81 3.5.1 組合顏色 81 3.5.2 改變混合方程式 84 3.5.3 抗鋸齒 85 3.5.4 多重采樣 87 3.6 小結 89
第4章 基礎變換:初識向量/矩陣 90 4.1 本章是令人生畏的數學課嗎 90 4.2 3D圖形數學速成課 91 4.2.1 向量 91 4.2.2 矩陣 94 4.3 理解變換 95 4.3.1 視覺坐標 95 4.3.2 視圖變換 96 4.3.3 模型變換 96 4.3.4 模型視圖的二元性 98 4.3.5 投影變換 98 4.3.6 視口變換 99 4.4 模型視圖矩陣 99 4.4.1 矩陣構造 100 4.4.2 運用模型視圖矩陣 103 4.5 更多對象 105 4.5.1 使用三角形批次類 105 4.5.2 創建一個球體 106 4.5.3 創建一個花托 106 4.5.4 創建一個圓柱或圓錐 107 4.5.5 創建一個圓盤 108 4.6 投影矩陣 108 4.6.1 正投影 109 4.6.2 透視投影 110 4.6.3 模型視圖投影矩陣 111 4.7 變換管線 113 4.7.1 使用矩陣堆棧 114 4.7.2 管理管線 115 4.7.3 加點調料 118 4.8 使用照相機和角色進行移動 119 4.8.1 角色幀 120 4.8.2 歐拉角:“盧克!請使用幀” 121 4.8.3 照相機管理 121 4.8.4 添加更多角色 123 4.8.5 關于光線 125 4.9 小結 126
第5章 基礎紋理 127 5.1 原始圖像數據 128 5.1.1 像素包裝 129 5.1.2 像素圖 130 5.1.3 包裝的像素格式 132 5.1.4 保存像素 133 5.1.5 讀取像素 134 5.2 載入紋理 137 5.2.1 使用顏色緩沖區 138 5.2.2 更新紋理 138 5.2.3 紋理對象 139 5.3 紋理應用 140 5.3.1 紋理坐標 140 5.3.2 紋理參數 142 5.3.3 綜合運用 144 5.4 Mip貼圖 148 5.4.1 Mip貼圖過濾 149 5.4.2 生成Mip層 150 5.4.3 活動的Mip貼圖 150 5.5 各向異性過濾 158 5.6 紋理壓縮 160 5.6.1 壓縮紋理 160 5.6.2 加載壓縮紋理 161 5.6.3 最后一個示例 162 5.7 小結 163
第6章 跳出“盒子”:非存儲著色器 164 6.1 初識OpenGL著色語言 164 6.1.1 變量和數據類型 165 6.1.2 存儲限定符 168 6.1.3 真正的著色器 169 6.1.4 編譯、綁定和連接 172 6.1.5 使用著色器 177 6.1.6 Provoking Vertex 178 6.2 著色器統一值 179 6.2.1 尋找統一值 179 6.2.2 設置標量和向量統一值 180 6.2.3 設置統一數組 180 6.2.4 設置統一矩陣 181 6.2.5 平面著色器 182 6.3 內建函數 184 6.3.1 三角函數 184 6.3.2 指數函數 184 6.3.3 幾何函數 185 6.3.4 矩陣函數 185 6.3.5 向量相關函數 186 6.3.6 常用函數 187 6.4 模擬光線 189 6.4.1 簡單漫射光 189 6.4.2 點光源漫反射著色器 191 6.4.3 ADS光照模型 194 6.4.4 Phong著色 197 6.5 訪問紋理 199 6.5.1 只有紋理單元 200 6.5.2 照亮紋理單元 201 6.5.3 丟棄片段 203 6.5.4 卡通著色(Cell Shading)——將紋理單元作為光線 205 6.6 小結 207
第7章 紋理高級知識 208 7.1 矩形紋理 208 7.1.1 加載矩形紋理 209 7.1.2 使用矩形紋理 209 7.2 立方體貼圖 212 7.2.1 加載立方體貼圖 212 7.2.2 創建天空盒 213 7.2.3 創建反射 215 7.3 多重紋理 216 7.3.1 多重紋理坐標 217 7.3.2 多重紋理示例 217 7.4 點精靈(點塊紋理) 219 7.4.1 使用點 220 7.4.2 點大小 220 7.4.3 綜合運用 221 7.4.4 點參數 223 7.4.5 異形點 224 7.4.6 點的旋轉 225 7.5 紋理數組 226 7.5.1 加載2D紋理數組 226 7.5.2 紋理數組索引 228 7.5.3 訪問紋理數組 228 7.6 紋理代理 229 7.7 小結 230
第二部分 深入探索 第8章 緩沖區對象:存儲盡在掌握 232 8.1 緩沖區 233 8.1.1 創建自己的緩沖區 233 8.1.2 填充緩沖區 234 8.1.3 像素緩沖區對象 235 8.1.4 緩沖區對象 241 8.2 幀緩沖區對象,擺脫窗口的限制 242 8.2.1 如何使用FBO 243 8.2.2 渲染緩沖區對象 243 8.2.3 繪制緩沖區 245 8.2.4 幀緩沖區的完整性 247 8.2.5 在幀緩沖區中復制數據 250 8.2.6 FBO綜合運用 251 8.3 渲染到紋理 254 8.4 小結 259
第9章 高級緩沖區:超越基礎水平 260 9.1 獲得數據 260 9.1.1 映射緩沖區 261 9.1.2 復制緩沖區 262 9.2 控制像素著色器表現,映射片段輸出 262 9.3 新一代硬件的新格式 264 9.3.1 浮點——最終的真正精確 264 9.3.2 多重采樣 276 9.3.3 整數 279 9.3.4 sRGB 280 9.3.5 紋理壓縮 281 9.4 小結 283
第10章 片段操作:管線的終點 284 10.1 裁剪——將幾何圖形剪切到希望的大小 285 10.2 多重采樣 285 10.2.1 樣本覆蓋 285 10.2.2 樣本遮罩 286 10.2.3 綜合運用 287 10.3 模板操作 290 10.4 深度測試 292 10.4.1 深度截取 292 10.5 進行混合 293 10.5.1 混合方程式 293 10.5.2 混合函數 294 10.5.3 綜合運用 295 10.6 抖動 296 10.7 邏輯操作 297 10.8 遮罩輸出 298 10.8.1 顏色 298 10.8.2 深度 298 10.8.3 模板 298 10.8.4 用途 299 10.9 小結 299
第11章 高級著色器應用 300 11.1 高級頂點著色器 300 11.1.1 在頂點著色器中進行物理模擬 301 11.2 幾何著色器 306 11.2.1 直通幾何著色器 306 11.2.2 在應用程序中使用幾何著色器 308 11.2.3 在幾何著色器中丟棄幾何圖形 311 11.2.4 在幾何著色器中修改幾何圖形 313 11.2.5 在幾何著色器中生成幾何圖形 314 11.2.6 在幾何著色器中改變圖元類型 317 11.2.7 由幾何著色器引入的新圖元類型 319 11.3 高級片段著色器 321 11.3.1 片段著色器中的后期處理——顏色校正 322 11.3.2 片段著色器中的后期處理——卷積 323 11.3.3 在片段著色器中生成圖像數據 326 11.3.4 在片段著色器中丟棄工作 328 11.3.5 逐片段控制深度 329 11.4 更高級的著色器函數 330 11.4.1 插值和存儲限定符 330 11.4.2 高級內建函數 333 11.5 統一緩沖區對象 334 11.5.1 建立統一塊 335 11.6 小結 342
第12章 高級幾何圖形管理 343 12.1 查詢功能——收集OpenGL管線相關信息 343 12.1.1 準備查詢 344 12.1.2 發出查詢 345 12.1.3 取回查詢結果 345 12.1.4 使用查詢結果 346 12.1.5 讓OpenGL決定 349 12.1.6 測量執行命令所需時間 350 12.2 在GPU內存中存儲數據 352 12.2.1 使用緩沖區存儲頂點數據 353 12.2.2 在緩沖區中保存頂點索引 356 12.3 使用頂點數組對象來組織緩沖區 358 12.4 高效地繪制大量幾何圖形 359 12.4.1 組合繪制函數 360 12.4.2 使用圖元重啟對幾何圖形進行組合 361 12.4.3 實例渲染 362 12.4.4 自動獲得數據 367 12.5 存儲變換的頂點——變換反饋 371 12.5.1 變換反饋 371 12.5.2 關閉光柵化 376 12.5.3 使用圖元查詢對頂點進行計數 376 12.5.4 使用圖元查詢的結果 378 12.5.5 變換反饋的應用實例 379 12.6 裁剪并確定繪制內容 386 12.6.1 裁剪距離——自定義裁剪空間 387 12.7 在OpenGL開始繪制時進行同步 389 12.8 小結 392
第三部分 特定平臺應用 第13章 Windows上的OpenGL 394 13.1 Windows中的OpenGL實現 395 13.1.1 微軟的OpenGL 395 13.1.2 現代圖形驅動程序 395 13.1.3 擴展OpenGL 396 13.1.4 WGL擴展 398 13.2 基本窗口渲染 399 13.2.1 GDI設備環境 399 13.2.2 像素格式 400 13.2.3 OpenGL渲染環境 406 13.3 綜合運用 409 13.3.1 創建窗口 410 13.4 全屏渲染 414 13.5 雙重緩沖 415 13.5.1 消除視覺撕裂 415 13.6 小結 416
第14章 OS X上的OpenGL 417 14.1 OpenGL在Mac上的4種接口 417 14.2 在OpenGL中使用Cocoa 418 14.2.1 創建一個Cocoa程序 418 14.2.2 綜合運用 423 14.2.3 雙緩沖還是單緩沖 425 14.2.4 球體世界 425 14.3 全屏渲染 429 14.3.1 在Cocoa中進行全屏顯示 430 14.4 CGL 435 14.4.1 同步幀速率 435 14.4.2 提高填充性能 436 14.4.3 多線程OpenGL 437 14.5 小結 437
第15章 Linux上的OpenGL 438 15.1 基礎知識 438 15.1.1 簡史 439 15.1.2 什么是X Window 439 15.2 入門講解 439 15.2.1 檢查OpenGL 440 15.2.2 設置Mesa 440 15.2.3 設置Mesa硬件驅動程序 441 15.2.4 設置GLUT 和 GLEW 441 15.2.5 創建OpenGL應用程序 442 15.3 GLX——X Window的接口 443 15.3.1 顯示和X Window 444 15.3.2 配置管理和顯示效果 444 15.3.3 窗口和渲染表面 447 15.3.4 OpenGL和GLX擴展 448 15.3.5 環境管理 448 15.3.6 同步 451 15.3.7 GLX查詢 452 15.3.8 綜合運用 453 15.4 小結 455
第16章 OpenGL ES:移動設備上的OpenGL 456 16.1 精簡的OpenGL 456 16.1.1 ES指什么 457 16.1.2 歷史概述 457 16.2 版本選擇 458 16.2.1 ES 2.0 459 16.3 ES環境 463 16.3.1 應用程序設計的注意事項 463 16.3.2 有限環境的處理 464 16.3.3 定點數學 464 16.4 EGL: 新的窗口環境 465 16.4.1 EGL顯示 466 16.4.2 創建窗口 467 16.4.3 環境管理 470 16.4.4 呈現緩沖區和渲染同步 471 16.4.5 更多關于EGL的內容 472 16.5 處理嵌入式環境 473 16.5.1 流行的操作系統 473 16.5.2 供應商特定擴展 473 16.5.3 個人玩家 473 16.6 蘋果掌上平臺 474 16.6.1 設置iPhone項目 474 16.6.2 移植到iPhone 477 16.7 小結 483
附錄A 更多閱讀建議 484 附錄B 詞匯表 486 附錄C (核心)OpenGL 3.3參考 489 |
序: |
|