是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的教材,也可以作為隨時查閱的參考手冊。
賴特(Richard S.Wright Jr),是Software Bisque公司的資深軟件工程師,在這家公司使用OpenGL開發多媒體宇航和天文軟件。他曾經是OpenGL ARB在實時3D領域的代表人物,編寫了大量基於OpenGL的游戲、科學與醫學應用程序、數據庫可視化工具和教育軟件。
目錄
第一部分 基本概念
第1章 3D圖形和OpenGL簡介
1.1計算機圖形的簡單歷史回顧
1.1.1進入電子時代
1.1.2走向3D
1.23D圖形技術和術語
1.2.1變換(Transformation)和投影(Projection)
1.2.2光柵化(Rasterization)
1.2.3着色
1.2.4紋理貼圖
1.2.5混合
1.2.6將點連接起來
1.33D圖形的常見用途
1.3.1實時3D
1.3.2非實時3D
1.3.3着色器
1.43D編程的基本原則
1.4.1並非工具包
1.4.2坐標系統
1.4.3投影:從3D到2D
1.5總結
第2章 入門指南
2.1什麼是OpenGL?
2.1.1標准的演化
2.1.20penGL的未來
2.2使用OpenGL
2.2.1支持陣容
2.2.20penGLAPI特性
2.2.30penGL錯誤
2.2.4確認版本
2.2.5使用glHint獲取線索
2.2.6OpenGL狀態機
2.3建立Windows項目
2.3.1包含路徑
2.3.2創建項目
2.3.3添加文件
2.4建立MacOSX項目
2.4.1自定義創建設置
2.4.2創建新項目
2.4.3框架、頭文件和庫
2.5第一個三角形
2.5.1要包含什麼
2.5.2啟動GLUT2與3坐標系基礎
2.5.4完成設置
2.5.5言歸正傳
2.6加點兒活力!
2.6.1特殊按鍵
2.6.2刷新顯示
2.6.3簡單的動畫片
2.7總結
第3章 基礎渲染
3.1基礎圖形管線
3.1.1客戶機-服務器
3.1.2着色器
3.2創建坐標系
3.2.1正投影
3.2.2透視投影
3.3使用存儲着色器
3.3.1屬性
3.3.2Uniform值
3.4將點連接起來
3.4.1點和線
3.4.2繪制3D三角形
3.4.3單獨的三角形
3.4.4一個簡單批次容器
3.4.5不希望出現的幾何圖形
3.4.6多邊形偏移
3.4.7裁剪
3.5混合
3.5.1組合顏色
3.5.2改變混合方程式
3.5.3抗鋸齒
3.5.4多重采樣
3.6小結
第4章 基礎變換:初識向量,矩陣
4.1本章是令人生畏的數學課嗎
4.23D圖形數學速成課
4.2.1向量
4.2.2矩陣
4.3理解變換
4.3.1視覺坐標
4.3.2視圖變換
4.3.3模型變換
4.3.4模型視圖的二元性
4.3.5投影變換
4.3.6視口變換
4.4模型視圖矩陣
4.4.1矩陣構造
4.4.2運用模型視圖矩陣
4.5更多對象
4.5.1使用三角形批次類
4.5.2創建一個球體
4.5.3創建一個花托
4.5.4創建一個圓柱或圓錐
4.5.5創建一個圓盤
4.6投影矩陣
4.6.1正投影
4.6.2透視投影
4.6.3模型視圖投影矩陣
4.7變換管線
4.7.1使用矩陣堆棧
4.7.2管理管線
4.7.3加點調料
4.8使用照相機和角色進行移動
4.8.1角色幀
4.8.2歐拉角:「盧克!請使用幀」
4.8.3照相機管理
4.8.4添加更多角色
4.8.5關於光線
4.9小結
第5章 基礎紋理
5.1原始圖像數據
5.1.1像素包裝
5.1.2像素圖
5.1.3包裝的像素格式
5.1.4保存像素
5.1.5讀取像素
5.2載入紋理
5.2.1使用顏色緩沖區
5.2.2更新紋理
5.2.3紋理對象
5.3紋理應用
5.3.1紋理坐標
5.3.2紋理參數
5.3.3綜合運用
5.4Mip貼圖
5.4.1Mip貼圖過濾
5.4.2生成Mip層
5.4.3活動的Mip貼圖
5.5各向異性過濾
5.6紋理壓縮
5.6.1壓縮紋理
5.6.2加載壓縮紋理
5.6.3最后一個示例
57小結
第6章 跳出「盒子」:非存儲着色器
6.1初識OpenGL着色語言
6.1.1變量和數據類型
6.1.2存儲限定符
6.1.3真正的着色器
6.1.4編譯、綁定和連接
6.1.5使用着色器
6.1.6Provoking VerteX
6.2着色器統一值
6.2.1尋找統一值
6.2.2設置標量和向量統一值
6.2.3設置統一數組
6.2.4設置統一矩陣
6.2.5平面着色器
6.3內建函數
6.3.1三角函數
6.3.2指數函數
6.3.3幾何函數
6.3.4矩陣函數
6.3.5向量相關函數
6.3.6常用函數
6.4模擬光線
6.4.1簡單漫射光
6.4.2點光源漫反射着色器
6.4.3ADS光照模型
6.4.4Phong着色
6.5訪問紋理
6.5.1只有紋理單元
6.5.2照亮紋理單元
6.5.3丟棄片段
6.5.4卡通着色(CellShading)—紋理單元作為光線
6.6小結
第7章 紋理高級知識
7.1矩形紋理
7.1.1加載矩形紋理
7.1.2使用矩形紋理
7.2立方體貼圖
7.2.1加載立方體貼圖
7.2.2創建天空盒
7.2.3創建反射
7.3多重紋理
7.3.1多重紋理坐標
7.3.2多重紋理示例
7.4點精靈(點塊紋理)
7.4.1使用點
7.4.2點大小
7.4.3綜合運用
7.4.4點參數
7.4.5異形點
7.4.6點的旋轉
7.5紋理數組
7.5.1加載2D紋理數組
7.5.2紋理數組索引
7.5.3訪問紋理數組
7.6紋理代理
7.7小結
第二部分 深入探索
第8章 緩沖區對象:存儲盡在掌握
8.1緩沖區
8.1.1創建自己的緩沖區
8.1.2填充緩沖區
8.1.3像素緩沖區對象
8.1.4緩沖區對象
8.2幀緩沖區對象,擺脫窗口的限制
8.2.1如何使用FBO
8.2.2渲染緩沖區對象
8.2.3繪制緩沖區
8.2.4幀緩沖區的完整性
8.2.5在幀緩沖區中復制數據
8.2.6FBO綜合運用
8.3渲染到紋理
8.4小結
第9章 高級緩沖區:超越基礎水平
9.1獲得數據
9.1.1映射緩沖區
9.1.2復制緩沖區
9.2控制像素着色器表現,
映射片段輸出
9.3新一代硬件的新格式
9.3.1浮點——最終的真正精確
9.3.2多重采樣
9.3.3整數
9.3.4SRGB
9.3.5紋理壓縮
9.4小結
第10章 片段操作:管線的終點
10.1裁剪——將幾何圖形剪切到希望的大小
10.2多重采樣
10.2.1樣本覆蓋
10.2.2樣本遮罩
10.2.3綜合運用
10.3模板操作
10.4深度測試
10.4.1深度截取
10.5進行混合
10.5.1混合方程式
10.5.2混合函數
10.5.3綜合運用
10.6抖動
10.7邏輯操作
10.8遮罩輸出
10.8.1顏色
10.8.2深度
10.8.3模板
10.8.4用途
10.9小結
第11章 高級着色器應用
11.1高級頂點着色器
11.1.1在頂點着色器中進行物理模擬
11.2幾何着色器
11.2.1直通幾何着色器
11.2.2在應用程序中使用幾何着色器
1123在幾何着色器中丟棄幾何圖形
11.2.4在幾何着色器中修改幾何圖形
11.2.5在幾何着色器中生成幾何圖形
11.2.6在幾何着色器中改變圖元類型
11.2.7由幾何着色器引入的新圖元類型
11.3高級片段着色器
11.3.1片段着色器中的后期處理—顏色校正
11.3.2片段着色器中的后期處理—卷積
11.3.3在片段着色器中生成圖像數據
11.3.4在片段着色器中丟棄工作
11.3.5逐片段控制深度
11.4更高級的着色器函數
11.4.1插值和存儲限定符
11.4.2高級內建函數
11.5統一緩沖區對象
11.5.1建立統一塊
11.6小結
第12章 高級幾何圖形管理
12.1查詢功能——收集OpenGL管線相關信息
12.1.1准備查詢
12.1.2發出查詢
12.1.3取回查詢結果
12.1.4使用查詢結果
12.1.5讓OpenGL決定
12.1.6測量執行命令所需時間
12.2在GPU內存中存儲數據
12.2.1使用緩沖區存儲頂點數據
12.2.2在緩沖區中保存頂點索引
12.3使用頂點數組對象來組織緩沖區
12.4高效地繪制大量幾何圖形
12.4.1組合繪制函數
12.4.2使用圖元重啟對幾何圖形進行組合
12.4.3實例渲染
12.4.4自動獲得數據
12.5存儲變換的頂點——變換反饋
12.5.1變換反饋
12.5.2關閉光柵化
12.5.3使用圖元查詢對頂點進行計數
12.5.4使用圖元查詢的結果
12.5.5變換反饋的應用實例
12.6裁剪並確定繪制內容
12.6.1裁剪距離——自定義裁剪空間
12.7在OpenGL開始繪制時進行同步
12.8小結
……
第三部分 特定平台應用
附錄A 更多閱讀建議
附錄B 詞匯表
附錄C (核心)OpenGL3.3參考
第1章 3D圖形和OpenGL簡介
1.1計算機圖形的簡單歷史回顧
1.1.1進入電子時代
1.1.2走向3D
1.23D圖形技術和術語
1.2.1變換(Transformation)和投影(Projection)
1.2.2光柵化(Rasterization)
1.2.3着色
1.2.4紋理貼圖
1.2.5混合
1.2.6將點連接起來
1.33D圖形的常見用途
1.3.1實時3D
1.3.2非實時3D
1.3.3着色器
1.43D編程的基本原則
1.4.1並非工具包
1.4.2坐標系統
1.4.3投影:從3D到2D
1.5總結
第2章 入門指南
2.1什麼是OpenGL?
2.1.1標准的演化
2.1.20penGL的未來
2.2使用OpenGL
2.2.1支持陣容
2.2.20penGLAPI特性
2.2.30penGL錯誤
2.2.4確認版本
2.2.5使用glHint獲取線索
2.2.6OpenGL狀態機
2.3建立Windows項目
2.3.1包含路徑
2.3.2創建項目
2.3.3添加文件
2.4建立MacOSX項目
2.4.1自定義創建設置
2.4.2創建新項目
2.4.3框架、頭文件和庫
2.5第一個三角形
2.5.1要包含什麼
2.5.2啟動GLUT2與3坐標系基礎
2.5.4完成設置
2.5.5言歸正傳
2.6加點兒活力!
2.6.1特殊按鍵
2.6.2刷新顯示
2.6.3簡單的動畫片
2.7總結
第3章 基礎渲染
3.1基礎圖形管線
3.1.1客戶機-服務器
3.1.2着色器
3.2創建坐標系
3.2.1正投影
3.2.2透視投影
3.3使用存儲着色器
3.3.1屬性
3.3.2Uniform值
3.4將點連接起來
3.4.1點和線
3.4.2繪制3D三角形
3.4.3單獨的三角形
3.4.4一個簡單批次容器
3.4.5不希望出現的幾何圖形
3.4.6多邊形偏移
3.4.7裁剪
3.5混合
3.5.1組合顏色
3.5.2改變混合方程式
3.5.3抗鋸齒
3.5.4多重采樣
3.6小結
第4章 基礎變換:初識向量,矩陣
4.1本章是令人生畏的數學課嗎
4.23D圖形數學速成課
4.2.1向量
4.2.2矩陣
4.3理解變換
4.3.1視覺坐標
4.3.2視圖變換
4.3.3模型變換
4.3.4模型視圖的二元性
4.3.5投影變換
4.3.6視口變換
4.4模型視圖矩陣
4.4.1矩陣構造
4.4.2運用模型視圖矩陣
4.5更多對象
4.5.1使用三角形批次類
4.5.2創建一個球體
4.5.3創建一個花托
4.5.4創建一個圓柱或圓錐
4.5.5創建一個圓盤
4.6投影矩陣
4.6.1正投影
4.6.2透視投影
4.6.3模型視圖投影矩陣
4.7變換管線
4.7.1使用矩陣堆棧
4.7.2管理管線
4.7.3加點調料
4.8使用照相機和角色進行移動
4.8.1角色幀
4.8.2歐拉角:「盧克!請使用幀」
4.8.3照相機管理
4.8.4添加更多角色
4.8.5關於光線
4.9小結
第5章 基礎紋理
5.1原始圖像數據
5.1.1像素包裝
5.1.2像素圖
5.1.3包裝的像素格式
5.1.4保存像素
5.1.5讀取像素
5.2載入紋理
5.2.1使用顏色緩沖區
5.2.2更新紋理
5.2.3紋理對象
5.3紋理應用
5.3.1紋理坐標
5.3.2紋理參數
5.3.3綜合運用
5.4Mip貼圖
5.4.1Mip貼圖過濾
5.4.2生成Mip層
5.4.3活動的Mip貼圖
5.5各向異性過濾
5.6紋理壓縮
5.6.1壓縮紋理
5.6.2加載壓縮紋理
5.6.3最后一個示例
57小結
第6章 跳出「盒子」:非存儲着色器
6.1初識OpenGL着色語言
6.1.1變量和數據類型
6.1.2存儲限定符
6.1.3真正的着色器
6.1.4編譯、綁定和連接
6.1.5使用着色器
6.1.6Provoking VerteX
6.2着色器統一值
6.2.1尋找統一值
6.2.2設置標量和向量統一值
6.2.3設置統一數組
6.2.4設置統一矩陣
6.2.5平面着色器
6.3內建函數
6.3.1三角函數
6.3.2指數函數
6.3.3幾何函數
6.3.4矩陣函數
6.3.5向量相關函數
6.3.6常用函數
6.4模擬光線
6.4.1簡單漫射光
6.4.2點光源漫反射着色器
6.4.3ADS光照模型
6.4.4Phong着色
6.5訪問紋理
6.5.1只有紋理單元
6.5.2照亮紋理單元
6.5.3丟棄片段
6.5.4卡通着色(CellShading)—紋理單元作為光線
6.6小結
第7章 紋理高級知識
7.1矩形紋理
7.1.1加載矩形紋理
7.1.2使用矩形紋理
7.2立方體貼圖
7.2.1加載立方體貼圖
7.2.2創建天空盒
7.2.3創建反射
7.3多重紋理
7.3.1多重紋理坐標
7.3.2多重紋理示例
7.4點精靈(點塊紋理)
7.4.1使用點
7.4.2點大小
7.4.3綜合運用
7.4.4點參數
7.4.5異形點
7.4.6點的旋轉
7.5紋理數組
7.5.1加載2D紋理數組
7.5.2紋理數組索引
7.5.3訪問紋理數組
7.6紋理代理
7.7小結
第二部分 深入探索
第8章 緩沖區對象:存儲盡在掌握
8.1緩沖區
8.1.1創建自己的緩沖區
8.1.2填充緩沖區
8.1.3像素緩沖區對象
8.1.4緩沖區對象
8.2幀緩沖區對象,擺脫窗口的限制
8.2.1如何使用FBO
8.2.2渲染緩沖區對象
8.2.3繪制緩沖區
8.2.4幀緩沖區的完整性
8.2.5在幀緩沖區中復制數據
8.2.6FBO綜合運用
8.3渲染到紋理
8.4小結
第9章 高級緩沖區:超越基礎水平
9.1獲得數據
9.1.1映射緩沖區
9.1.2復制緩沖區
9.2控制像素着色器表現,
映射片段輸出
9.3新一代硬件的新格式
9.3.1浮點——最終的真正精確
9.3.2多重采樣
9.3.3整數
9.3.4SRGB
9.3.5紋理壓縮
9.4小結
第10章 片段操作:管線的終點
10.1裁剪——將幾何圖形剪切到希望的大小
10.2多重采樣
10.2.1樣本覆蓋
10.2.2樣本遮罩
10.2.3綜合運用
10.3模板操作
10.4深度測試
10.4.1深度截取
10.5進行混合
10.5.1混合方程式
10.5.2混合函數
10.5.3綜合運用
10.6抖動
10.7邏輯操作
10.8遮罩輸出
10.8.1顏色
10.8.2深度
10.8.3模板
10.8.4用途
10.9小結
第11章 高級着色器應用
11.1高級頂點着色器
11.1.1在頂點着色器中進行物理模擬
11.2幾何着色器
11.2.1直通幾何着色器
11.2.2在應用程序中使用幾何着色器
1123在幾何着色器中丟棄幾何圖形
11.2.4在幾何着色器中修改幾何圖形
11.2.5在幾何着色器中生成幾何圖形
11.2.6在幾何着色器中改變圖元類型
11.2.7由幾何着色器引入的新圖元類型
11.3高級片段着色器
11.3.1片段着色器中的后期處理—顏色校正
11.3.2片段着色器中的后期處理—卷積
11.3.3在片段着色器中生成圖像數據
11.3.4在片段着色器中丟棄工作
11.3.5逐片段控制深度
11.4更高級的着色器函數
11.4.1插值和存儲限定符
11.4.2高級內建函數
11.5統一緩沖區對象
11.5.1建立統一塊
11.6小結
第12章 高級幾何圖形管理
12.1查詢功能——收集OpenGL管線相關信息
12.1.1准備查詢
12.1.2發出查詢
12.1.3取回查詢結果
12.1.4使用查詢結果
12.1.5讓OpenGL決定
12.1.6測量執行命令所需時間
12.2在GPU內存中存儲數據
12.2.1使用緩沖區存儲頂點數據
12.2.2在緩沖區中保存頂點索引
12.3使用頂點數組對象來組織緩沖區
12.4高效地繪制大量幾何圖形
12.4.1組合繪制函數
12.4.2使用圖元重啟對幾何圖形進行組合
12.4.3實例渲染
12.4.4自動獲得數據
12.5存儲變換的頂點——變換反饋
12.5.1變換反饋
12.5.2關閉光柵化
12.5.3使用圖元查詢對頂點進行計數
12.5.4使用圖元查詢的結果
12.5.5變換反饋的應用實例
12.6裁剪並確定繪制內容
12.6.1裁剪距離——自定義裁剪空間
12.7在OpenGL開始繪制時進行同步
12.8小結
……
第三部分 特定平台應用
附錄A 更多閱讀建議
附錄B 詞匯表
附錄C (核心)OpenGL3.3參考
網路書店
類別
折扣
價格
-
新書87折$564