定 價(jià):79 元
叢書(shū)名:華章程序員書(shū)庫(kù)
- 作者:(美) Dan Ginsburg, Budirijanto Purnomo等著
- 出版時(shí)間:2015/2/1
- ISBN:9787111489153
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類(lèi):TP391.413
- 頁(yè)碼:344
- 紙張:膠版紙
- 版次:1
- 開(kāi)本:16K
《華章 OpenGL ES 3.0編程指南(原書(shū)第2版)》由資深OpenGL技術(shù)專(zhuān)家親筆撰寫(xiě),全面介紹OpenGL ES 3.0的各種特性及新增功能, ,通過(guò)大量已經(jīng)編譯和測(cè)試過(guò)的實(shí)例,詳細(xì)講解OpenGL ES 3.0中的應(yīng)用程序接口(API)和圖形管線(xiàn),既涵蓋簡(jiǎn)單圖形的渲染方法,又深入介紹逐像素照明和粒子系統(tǒng)等高級(jí)渲染技術(shù),并且包含大量有效使用API和硬件的實(shí)用技巧,為手持設(shè)備的各種高性能3D應(yīng)用開(kāi)發(fā)提供翔實(shí)指導(dǎo)。
《華章 OpenGL ES 3.0編程指南(原書(shū)第2版)》共16章:第1章簡(jiǎn)單介紹OpenGL ES ,并概述OpenGL ES 3.0圖形管線(xiàn);第2章通過(guò)繪制一個(gè)三角形的簡(jiǎn)單OpenGL ES 3.0示例程序,講解一些API概念,并說(shuō)明如何構(gòu)建和運(yùn)行OpenGL ES示例程序;第3章講述為OpenGL ES 3.0創(chuàng)建表面和渲染上下文的API——EGL;第4章討論創(chuàng)建著色器對(duì)象、編譯著色器和檢查編譯錯(cuò)誤的方法;第5章講解編寫(xiě)著色器所需的著色語(yǔ)言基本知識(shí);第6章詳細(xì)介紹幾何形狀輸入圖形管線(xiàn)的方法,包含對(duì)頂點(diǎn)屬性、頂點(diǎn)數(shù)組和緩沖區(qū)對(duì)象的討論;第7章討論幾何形狀如何裝配成圖元,介紹OpenGL ES 3.0中所有可用圖元類(lèi)型,包括點(diǎn)精靈、直線(xiàn)、三角形、三角形條帶和三角扇形;第8章概述頂點(diǎn)著色器如何融入管線(xiàn),以及OpenGL ES 著色語(yǔ)言中可用于頂點(diǎn)著色器的特殊變量;第9章和第10章介紹片段著色器,包括多重紋理、霧化、Alpha測(cè)試和用戶(hù)裁剪平面等;第11章討論片段操作,包括剪裁測(cè)試、模板測(cè)試、深度測(cè)試、多重采樣、混合和抖動(dòng);第12章介紹使用幀緩沖區(qū)對(duì)象渲染屏幕外表面;第13章討論同步對(duì)象和柵欄的使用方法;第14章介紹OpenGL ES 3.0高級(jí)編程,包含使用法線(xiàn)貼圖的逐像素照明、環(huán)境貼圖、粒子系統(tǒng)、圖像后處理、程序紋理、陰影貼圖、地形渲染和投影紋理等渲染技術(shù)。;第15章提供OpenGL ES 3.0中各種可用狀態(tài)查詢(xún)的參考;第16章討論如何為iOS 7、Android 4.3 NDK、Android 4.3 SDK、Windows和Linux構(gòu)建OpenGL ES樣板代碼。
《華章 OpenGL ES 3.0編程指南(原書(shū)第2版)》由資深OpenGL技術(shù)專(zhuān)家親筆撰寫(xiě),全面介紹OpenGL ES 3.0的各種特性及新增功能;
通過(guò)大量已經(jīng)編譯和測(cè)試過(guò)的實(shí)例,詳細(xì)講解OpenGL ES 3.0中的應(yīng)用程序接口(API)和圖形管線(xiàn),既涵蓋簡(jiǎn)單圖形的渲染方法,又深入介紹逐像素照明和粒子系統(tǒng)等高級(jí)渲染技術(shù),并且包含大量有效使用API和硬件的實(shí)用技巧,為手持設(shè)備的各種高性能3D應(yīng)用開(kāi)發(fā)提供翔實(shí)指導(dǎo)。
Dan Ginsburg,Upsample Software公司創(chuàng)始人,該軟件公司提供3D圖形和GPU計(jì)算的咨詢(xún)服務(wù)。Dan參與撰寫(xiě)了多部著作,包括《OpenCL 編程指南》和《OpenGL Shading Language》(第3版)。在過(guò)去的工作中,Dan曾經(jīng)開(kāi)發(fā)OpenGL驅(qū)動(dòng)程序、桌面和手持3D演示、GPU開(kāi)發(fā)人員工具、3D醫(yī)學(xué)顯示和游戲。
Budirijanto Purnomo,AMD公司高級(jí)軟件架構(gòu)師,領(lǐng)導(dǎo)跨越多個(gè)AMD軟件棧的GPU調(diào)試和剖析技術(shù)的軟件實(shí)現(xiàn)工作。他與多位AMD的軟件和硬件架構(gòu)師協(xié)作,定義用于調(diào)試和剖析GPU應(yīng)用的未來(lái)硬件架構(gòu)。他曾在國(guó)際會(huì)議上發(fā)表過(guò)許多與計(jì)算機(jī)圖形技術(shù)相關(guān)的論文。
Dave Shreiner,ARM公司圖形與GPU計(jì)算部門(mén)主管,自從OpenGL誕生之日起就積極地參與到它的開(kāi)發(fā)當(dāng)中。他創(chuàng)建了OpenGL的第一個(gè)商業(yè)培訓(xùn)課程,并且擁有超過(guò)20年的OpenGL編程教學(xué)經(jīng)驗(yàn)。
本書(shū)贊譽(yù)
譯者序
序
前言
致謝
第1章 OpenGL ES 3.0簡(jiǎn)介
1.1 OpenGL ES 3.0
1.1.1 頂點(diǎn)著色器
1.1.2 圖元裝配
1.1.3 光柵化
1.1.4 片段著色器
1.1.5 逐片段操作
1.2 OpenGL ES 3.0新功能
1.2.1 紋理
1.2.2 著色器
1.2.3 幾何形狀
1.2.4 緩沖區(qū)對(duì)象
1.2.5 幀緩沖區(qū)
1.3 OpenGL ES 3.0和向后兼容性
1.4 EGL
1.4.1 使用OpenGL ES 3.0編程
1.4.2 庫(kù)和包含文件
1.5 EGL命令語(yǔ)法
1.6 OpenGL ES命令語(yǔ)法
1.7 錯(cuò)誤處理
1.8 基本狀態(tài)管理
1.9 延伸閱讀
第2章 你好,三角形:一個(gè)OpenGL ES 3.0示例
2.1 代碼框架
2.2 示例下載位置
2.3 "你好,三角形"(Hello Triangle)示例
2.4 使用OpenGL ES 3.0框架
2.5 創(chuàng)建簡(jiǎn)單的頂點(diǎn)和片段著色器
2.6 編譯和加載著色器
2.7 創(chuàng)建一個(gè)程序?qū)ο蟛㈡溄又?br />
2.8 設(shè)置視口和清除顏色緩沖區(qū)
2.9 加載幾何形狀和繪制圖元
2.10 顯示后臺(tái)緩沖區(qū)
2.11 小結(jié)
第3章 EGL簡(jiǎn)介
3.1 與窗口系統(tǒng)通信
3.2 檢查錯(cuò)誤
3.3 初始化EGL
3.4 確定可用表面配置
3.5 查詢(xún)EGLConf?ig屬性
3.6 讓EGL選擇配置
3.7 創(chuàng)建屏幕上的渲染區(qū)域:EGL窗口
3.8 創(chuàng)建屏幕外渲染區(qū)域:EGL Pbuffer
3.9 創(chuàng)建一個(gè)渲染上下文
3.10 指定某個(gè)EGLContext為當(dāng)前上下文
3.11 結(jié)合所有EGL知識(shí)
3.12 同步渲染
3.13 小結(jié)
第4章 著色器和程序
4.1 著色器和程序
4.1.1 創(chuàng)建和編譯一個(gè)著色器
4.1.2 創(chuàng)建和鏈接程序
4.2 統(tǒng)一變量和屬性
4.2.1 獲取和設(shè)置統(tǒng)一變量
4.2.2 統(tǒng)一變量緩沖區(qū)對(duì)象
4.2.3 獲取和設(shè)置屬性
4.3 著色器編譯器
4.4 程序二進(jìn)制碼
4.5 小結(jié)
第5章 OpenGL ES著色語(yǔ)言
5.1 OpenGL ES著色語(yǔ)言基礎(chǔ)知識(shí)
5.2 著色器版本規(guī)范
5.3 變量和變量類(lèi)型
5.4 變量構(gòu)造器
5.5 向量和矩陣分量
5.6 常量
5.7 結(jié)構(gòu)
5.8 數(shù)組
5.9 運(yùn)算符
5.10 函數(shù)
5.11 內(nèi)建函數(shù)
5.12 控制流語(yǔ)句
5.13 統(tǒng)一變量
5.14 統(tǒng)一變量塊
5.15 頂點(diǎn)和片段著色器輸入/輸出
5.16 插值限定符
5.17 預(yù)處理器和指令
5.18 統(tǒng)一變量和插值器打包
5.19 精度限定符
5.20 不變性
5.21 小結(jié)
第6章 頂點(diǎn)屬性、頂點(diǎn)數(shù)組和緩沖區(qū)對(duì)象
6.1 指定頂點(diǎn)屬性數(shù)據(jù)
6.1.1 常量頂點(diǎn)屬性
6.1.2 頂點(diǎn)數(shù)組
6.2 在頂點(diǎn)著色器中聲明頂點(diǎn)屬性變量
6.3 頂點(diǎn)緩沖區(qū)對(duì)象
6.4 頂點(diǎn)數(shù)組對(duì)象
6.5 映射緩沖區(qū)對(duì)象
6.6 復(fù)制緩沖區(qū)對(duì)象
6.7 小結(jié)
第7章 圖元裝配和光柵化
7.1 圖元
7.1.1 三角形
7.1.2 直線(xiàn)
7.1.3 點(diǎn)精靈
7.2 繪制圖元
7.2.1 圖元重啟
7.2.2 驅(qū)動(dòng)頂點(diǎn)
7.2.3 幾何形狀實(shí)例化
7.2.4 性能提示
7.3 圖元裝配
7.3.1 坐標(biāo)系統(tǒng)
7.3.2 透視分割
7.3.3 視口變換
7.4 光柵化
7.4.1 剔除
7.4.2 多邊形偏移
7.5 遮擋查詢(xún)
7.6 小結(jié)
第8章 頂點(diǎn)著色器
8.1 頂點(diǎn)著色器概述
8.1.1 頂點(diǎn)著色器內(nèi)建變量
8.1.2 精度限定符
8.1.3 頂點(diǎn)著色器中的統(tǒng)一變量限制數(shù)量
8.2 頂點(diǎn)著色器示例
8.2.1 矩陣變換
8.2.2 頂點(diǎn)著色器中的照明
8.3 生成紋理坐標(biāo)
8.4 頂點(diǎn)蒙皮
8.5 變換反饋
8.6 頂點(diǎn)紋理
8.7 將OpenGL ES 1.1頂點(diǎn)管線(xiàn)作為ES 3.0頂點(diǎn)著色器
8.8 小結(jié)
第9章 紋理
9.1 紋理基礎(chǔ)
9.1.1 2D紋理
9.1.2 立方圖紋理
9.1.3 3D紋理
9.1.4 2D紋理數(shù)組
9.1.5 紋理對(duì)象和紋理的加載
9.1.6 紋理過(guò)濾和mip貼圖
9.1.7 自動(dòng)mip貼圖生成
9.1.8 紋理坐標(biāo)包裝
9.1.9 紋理調(diào)配
9.1.10 紋理細(xì)節(jié)級(jí)別
9.1.11 深度紋理對(duì)比(百分比漸進(jìn)過(guò)濾)
9.1.12 紋理格式
9.1.13 在著色器中使用紋理
9.1.14 使用立方圖紋理的示例
9.1.15 加載3D紋理和2D紋理數(shù)組
9.2 壓縮紋理
9.3 紋理子圖像規(guī)范
9.4 從顏色緩沖區(qū)復(fù)制紋理數(shù)據(jù)
9.5 采樣器對(duì)象
9.6 不可變紋理
9.7 像素解包緩沖區(qū)對(duì)象
9.8 小結(jié)
第10章 片段著色器
10.1 固定功能片段著色器
10.2 片段著色器概述
10.2.1 內(nèi)建特殊變量
10.2.2 內(nèi)建常量
10.2.3 精度限定符
10.3 用著色器實(shí)現(xiàn)固定功能技術(shù)
10.3.1 多重紋理
10.3.2 霧化
10.3.3 Alpha測(cè)試(使用Discard)
10.3.4 用戶(hù)裁剪平面
10.4 小結(jié)
第11章 片段操作
11.1 緩沖區(qū)
11.1.1 請(qǐng)求更多緩沖區(qū)
11.1.2 清除緩沖區(qū)
11.1.3 用掩碼控制幀緩沖區(qū)的寫(xiě)入
11.2 片段測(cè)試和操作
11.2.1 使用剪裁測(cè)試
11.2.2 模板緩沖區(qū)測(cè)試
11.3 混合
11.4 抖動(dòng)
11.5 多重采樣抗鋸齒
11.6 在幀緩沖區(qū)讀取和寫(xiě)入像素
11.7 多重渲染目標(biāo)
11.8 小結(jié)
第12章 幀緩沖區(qū)對(duì)象
12.1 為什么使用幀緩沖區(qū)對(duì)象
12.2 幀緩沖區(qū)和渲染緩沖區(qū)對(duì)象
12.2.1 選擇渲染緩沖區(qū)與紋理作為幀緩沖區(qū)附著的對(duì)比
12.2.2 幀緩沖區(qū)對(duì)象與EGL表面的對(duì)比
12.3 創(chuàng)建幀緩沖區(qū)和渲染緩沖區(qū)對(duì)象
12.4 使用幀緩沖區(qū)對(duì)象
12.4.1 多重采樣渲染緩沖區(qū)
12.4.2 渲染緩沖區(qū)格式
12.5 使用幀緩沖區(qū)對(duì)象
12.5.1 連接渲染緩沖區(qū)作為幀緩沖區(qū)附著
12.5.2 連接一個(gè)2D紋理作為幀緩沖區(qū)附著
12.5.3 連接3D紋理的一個(gè)圖像作為幀緩沖區(qū)附著
12.5.4 檢查幀緩沖區(qū)完整性
12.6 幀緩沖區(qū)位塊傳送
12.7 幀緩沖區(qū)失效
12.8 刪除幀緩沖區(qū)和渲染緩沖區(qū)對(duì)象
12.9 刪除用作幀緩沖區(qū)附著的渲染緩沖區(qū)對(duì)象
12.10 示例
12.11 性能提示和技巧
12.12 小結(jié)
第13章 同步對(duì)象和柵欄
13.1 刷新和結(jié)束
13.2 為什么使用同步對(duì)象
13.3 創(chuàng)建和刪除同步對(duì)象
13.4 等待和向同步對(duì)象發(fā)送信號(hào)
13.5 示例
13.6 小結(jié)
第14章 OpenGL ES 3.0高級(jí)編程
14.1 逐片段照明
14.1.1 使用法線(xiàn)貼圖的照明
14.1.2 照明著色器
14.1.3 照明方程式
14.2 環(huán)境貼圖
14.3 使用點(diǎn)精靈的粒子系統(tǒng)
14.3.1 粒子系統(tǒng)設(shè)置
14.3.2 粒子系統(tǒng)頂點(diǎn)著色器
14.3.3 粒子系統(tǒng)片段著色器
14.4 使用變換反饋的粒子系統(tǒng)
14.4.1 粒子系統(tǒng)渲染算法
14.4.2 使用變換反饋發(fā)射粒子
14.4.3 渲染粒子
14.5 圖像后處理
14.5.1 渲染到紋理設(shè)置
14.5.2 模糊片段著色器
14.5.3 眩光
14.6 投影紋理
14.6.1 投影紋理基礎(chǔ)
14.6.2 投影紋理所用的矩陣
14.6.3 投影聚光燈著色器
14.7 使用3D紋理的噪聲
14.7.1 生成噪聲
14.7.2 使用噪聲
14.8 過(guò)程紋理
14.8.1 過(guò)程紋理示例
14.8.2 過(guò)程紋理的抗鋸齒
14.8.3 關(guān)于過(guò)程紋理的延伸閱讀
14.9 用頂點(diǎn)紋理讀取渲染地形
14.9.1 生成一個(gè)正方形的地形網(wǎng)格
14.9.2 在頂點(diǎn)著色器中計(jì)算頂點(diǎn)法線(xiàn)并讀取高度值
14.9.3 大型地形渲染的延伸閱讀
14.10 使用深度紋理的陰影
14.10.1 從光源位置渲染到深度紋理
14.10.2 從眼睛位置用深度紋理渲染
14.11 小結(jié)
第15章 狀態(tài)查詢(xún)
15.1 OpenGL ES 3.0實(shí)現(xiàn)字符串查詢(xún)
15.2 查詢(xún)OpenGL ES實(shí)現(xiàn)決定的限制
15.3 查詢(xún)OpenGL ES狀態(tài)
15.4 提示
15.5 實(shí)體名稱(chēng)查詢(xún)
15.6 不可編程操作控制和查詢(xún)
15.7 著色器和程序狀態(tài)查詢(xún)
15.8 頂點(diǎn)屬性查詢(xún)
15.9 紋理狀態(tài)查詢(xún)
15.10 采樣器查詢(xún)
15.11 異步對(duì)象查詢(xún)
15.12 同步對(duì)象查詢(xún)
15.13 頂點(diǎn)緩沖區(qū)查詢(xún)
15.14 渲染緩沖區(qū)和幀緩沖區(qū)狀態(tài)查詢(xún)
15.15 小結(jié)
第16章 OpenGL ES平臺(tái)
16.1 在包含Visual Studio的Microsoft Windows上構(gòu)建
16.2 在Ubuntu Linux上構(gòu)建
16.3 在A(yíng)ndroid 4.3+ NDK (C++)上構(gòu)建
16.3.1 先決條件
16.3.2 用Android NDK構(gòu)建示例代碼
16.4 在A(yíng)ndroid 4.3+ SDK上構(gòu)建(Java)
16.5 在iOS 7上構(gòu)建
16.5.1 先決條件
16.5.2 用Xcode 5構(gòu)建示例代碼
16.6 小結(jié)
附錄A GL_HALF_FLOAT
附錄B 內(nèi) 建 函 數(shù)
附錄C ES框架API