出版時間:2012-5 出版社:人民郵電出版社 作者:吳亞峰 頁數(shù):749
Tag標簽:無
內(nèi)容概要
隨著智能手機移動嵌入式平臺硬件性能的不斷提升,3D游戲應用也逐漸普及開來。《Android
3D游戲開發(fā)技術(shù)寶典:OpenGL ES
2.0》結(jié)合作者多年從事3D游戲應用開發(fā)的寶貴經(jīng)驗,全面介紹了與Android平臺相關(guān)的必知必會的基礎知識及大型完整3D案例,講解上由淺入深,循序漸進,起點低、終點高,既適合初學者學習,也適合有一定基礎的讀者進一步提升之用。另外,由于OpenGL
ES 2.0的著色語言通用于各種移動嵌入式平臺,因此,《Android 3D游戲開發(fā)技術(shù)寶典:OpenGL ES
2.0》中與著色器開發(fā)相關(guān)的60%左右的內(nèi)容還可供iPhone、Windows
Mobile、MeeGoo等平臺的開發(fā)人員參考。
全書共22章,其中第1章與第2章為Android平臺相關(guān)的一些基礎知識;第3章~第10章介紹了基于OpenGL ES
2.0進行3D應用開發(fā)的一些必知必會的基本知識;第11章~第15章介紹了一些高級特效的實現(xiàn)方法;第16章~第17章介紹了3D游戲開發(fā)中相關(guān)的一些物理、碰撞檢測知識以及常用的3D物理引擎JBullet;第19章介紹了3種人機交互的高級技術(shù);第20章~第22章給出了3個完整的大型3D游戲案例,總代碼量接近6萬行。同時為了便于讀者的學習,《Android
3D游戲開發(fā)技術(shù)寶典:OpenGL ES
2.0》附贈的光盤中包含了書中所有案例的完整源代碼,同時給出了最后3個完整大型3D游戲案例的講解視頻,最大限度地幫助讀者快速掌握相應的開發(fā)技術(shù)。
《Android 3D游戲開發(fā)技術(shù)寶典:OpenGL ES
2.0》適合Android程序員、游戲開發(fā)者及Android愛好者學習,也可以作為相關(guān)培訓學校和大專院校相關(guān)專業(yè)的教學用書。
作者簡介
吳亞峰,畢業(yè)于北京郵電大學,后留學澳大利亞臥龍崗大學取得碩士學位。1998年開始從事Java應用的開發(fā),有10多年的.1ava開發(fā)與培訓經(jīng)驗。主要的研究方向為OpenGLES、手機游戲、Java EE以及搜索引擎。同時為手機游戲、Java EE獨立軟件開發(fā)工程師,并兼任百納科技Java培訓中心首席培訓師。近十年來為數(shù)十家著名企業(yè)培養(yǎng)了上千名高級軟件開發(fā)人員,曾編寫過《JavaSE 6.0編程指南》、《菜鳥成長之路——Java程序員職場全攻略》、《Android 2.0游戲開發(fā)實戰(zhàn)寶典》、《Android核心技術(shù)與實例詳解》、《Android應用案例開發(fā)大全》、《Android游戲開發(fā)大全》、《Android應用開發(fā)完全自學手冊——核心技術(shù)、傳感器、2D/3D、多媒體與典型案例》等多本暢銷技術(shù)書籍。2008年年初開始關(guān)注Android平臺下的應用開發(fā),并開發(fā)出一系列優(yōu)秀的Android應用程序與游戲。
書籍目錄
第1章 新一代的王者--Android概覽
1.1 智能手機市場現(xiàn)狀
1.1.1 五大智能手機操作系統(tǒng)
1.1.2 智能手機市場的新星
1.2 Android平臺的特點及未來的趨勢
1.2.1 全新理念帶來的體驗風暴
1.2.2 中國手機市場的主導性作用
1.2.3 手機3D游戲和應用增長迅速
1.3 如何搭建Android開發(fā)環(huán)境
1.3.1 SDK的安裝及環(huán)境配置
1.3.2 Eclipse集成開發(fā)環(huán)境的搭建
1.3.3 創(chuàng)建并啟動模擬器
1.4 Hello Android應用程序的開發(fā)
1.4.1 第一個Android應用程序
1.4.2 Android應用程序的項目結(jié)構(gòu)
1.4.3 Android應用程序的調(diào)試
1.4.4 實際設備的聯(lián)機調(diào)試
1.5 Android應用程序運行的機制
1.5.1 應用程序的系統(tǒng)架構(gòu)
1.5.2 應用程序框架
1.5.3 Android運行時
1.5.4 系統(tǒng)庫
1.5.5 底層Linux內(nèi)核
1.6 本章小結(jié)
第2章 游戲開發(fā)相關(guān)Android基礎知識
2.1 游戲中的音效
2.1.1 游戲中的即時音效
2.1.2 即時音效的一個案例
2.1.3 背景音樂播放技術(shù)
2.1.4 簡易音樂播放器的實現(xiàn)
2.2 簡單數(shù)據(jù)的存儲--Preferences
2.2.1 Preferences簡介
2.2.2 Preferences實現(xiàn)訪問時間的記錄
2.3 手機自帶數(shù)據(jù)庫--SQLite
2.3.1 初識SQLite
2.3.2 SQLite數(shù)據(jù)庫的基本操作
2.3.3 SQLite數(shù)據(jù)庫的簡單案例
2.3.4 使用ContentProvider組件共享數(shù)據(jù)
2.3.5 使用ContentResolver獲取分享數(shù)據(jù)
2.4 文件I/O
2.4.1 訪問SD卡中的文件
2.4.2 訪問手機中的文件夾
2.4.3 讀取assets文件夾下的內(nèi)容
2.5 2D動畫的開發(fā)
2.5.1 SurfaceView用法簡介
2.5.2 使用SurfaceView實現(xiàn)2D動畫
2.6 Socket網(wǎng)絡通信
2.6.1 Socket開發(fā)基本知識
2.6.2 服務器端
2.6.3 客戶端
2.7 藍牙通信
2.7.1 藍牙通信的基本知識
2.7.2 聊天案例概覽
2.7.3 聊天案例的開發(fā)過程
2.8 本章小結(jié)
第3章 初識OpenGL ES 2.
3.1 OpenGL ES 2.0概覽
3.1.1 OpenGL ES 2.0簡介
3.1.2 初識OpenGL ES 2.0應用程序
3.2 著色器與渲染管線
3.2.1 OpenGL ES 1.x的渲染管線
3.2.2 OpenGL ES 2.0的渲染管線
3.2.3 OpenGL ES中立體物體的構(gòu)建
3.3 主流Android手機GPU大PK
3.3.1 手機GPU四大家族對比
3.3.2 主流GPU的性能參數(shù)比較
3.4 本章小結(jié)
第4章 著色語言Shading Language
4.1 著色語言概述
4.2 著色語言基礎
4.2.1 數(shù)據(jù)類型概述
4.2.2 數(shù)據(jù)類型的基本使用
4.2.3 運算符
4.2.4 類型轉(zhuǎn)換
4.2.5 限定符
4.2.6 流程控制
4.2.7 函數(shù)的聲明與使用
4.2.8 片元著色器中浮點變量精度的指定
4.2.9 程序的基本結(jié)構(gòu)
4.3 特殊的內(nèi)建變量
4.3.1 頂點著色器中的內(nèi)建變量
4.3.2 片元著色器中的內(nèi)建變量
4.4 著色語言的內(nèi)置函數(shù)
4.4.1 角度轉(zhuǎn)換與三角函數(shù)
4.4.2 指數(shù)函數(shù)
4.4.3 常見函數(shù)
4.4.4 幾何函數(shù)
4.4.5 矩陣函數(shù)
4.4.6 向量關(guān)系函數(shù)
4.4.7 紋理采樣函數(shù)
4.4.8 微分函數(shù)
4.5 本章小結(jié)
第5章 投影及各種變換
5.1 攝像機的設置
5.2 兩種投影方式
5.2.1 正交投影
5.2.2 透視投影
5.3 各種變換
5.3.1 基本變換的相關(guān)數(shù)學知識
5.3.2 平移變換
5.3.3 旋轉(zhuǎn)變換
5.3.4 縮放變換
5.3.5 基本變換的實質(zhì)
5.4 繪制方式
5.4.1 各種繪制方式概覽
5.4.2 點與線段繪制方式
5.4.3 三角形條帶與扇面繪制方式
5.4.4 頂點法與索引法
5.5 設置合理的視角
5.6 卷繞和背面剪裁
5.6.1 基本知識
5.6.2 一個簡單的案例
5.7 本章小結(jié)
第6章 光照
6.1 曲面物體的構(gòu)建
6.1.1 球體構(gòu)建的基本原理
6.2.2 案例效果概覽
6.2.3 開發(fā)步驟
6.2 基本光照效果
6.2.1 光照的基本模型
6.2.2 環(huán)境光
6.2.3 散射光
6.2.4 鏡面光
6.2.5 三種光照通道的合成
6.3 定位光與定向光
6.4 點法向量和面法向量
6.5 光照的每頂點計算與每片元計算
6.6 本章小結(jié)
第7章 紋理映射
7.1 初識紋理映射
7.1.1 基本原理
7.1.2 紋理映射的簡單案例
7.2 紋理拉伸
7.2.1 兩種拉伸方式概覽
7.2.2 不同拉伸方式的案例
7.3 紋理采樣
7.3.1 紋理采樣概述
7.3.2 最近點采樣
7.3.3 線性紋理采樣
7.3.4 MIN與MAG采樣
7.3.5 不同紋理采樣方式的案例
7.4 mipmap紋理技術(shù)
7.5 多重紋理與過程紋理
7.5.1 案例概覽
7.5.2 將2D紋理映射到球面上的策略
7.5.3 案例的場景結(jié)構(gòu)
7.5.4 開發(fā)過程
7.6 本章小結(jié)
第8章 3D基本形狀的構(gòu)建
8.1 圓柱體
8.1.1 頂點原始位置的生成
8.1.2 案例的開發(fā)
8.2 圓錐體
8.2.1 頂點原始位置的生成
8.2.2 案例的開發(fā)
8.3 圓環(huán)體
8.3.1 頂點原始位置的生成
8.3.2 案例的開發(fā)
8.4 螺旋管
8.4.1 頂點原始位置的生成
8.4.2 案例的開發(fā)
8.5 幾何球
8.5.1 頂點原始位置的生成
8.5.2 案例的開發(fā)
8.6 足球碳分子模型的搭建
8.6.1 搭建的基本原理
8.6.2 案例的開發(fā)
8.7 貝塞爾曲線及旋轉(zhuǎn)面
8.7.1 三維旋轉(zhuǎn)曲面的生成
8.7.2 貝塞爾曲線
8.7.3 Bezier曲線生成工具
8.7.4 印度古典建筑場景的開發(fā)
8.8 本章小結(jié)
第9章 3D模型加載
9.1 obj模型文件概覽
9.1.1 obj文件的格式
9.1.2 用3DMax設計3D模型
9.2 加載obj文件
9.2.1 加載僅有頂點坐標與面數(shù)據(jù)的obj文件
9.2.2 加載后自動計算面法向量
9.2.3 加載后自動計算平均法向量
9.2.4 加載紋理坐標
9.3 本章小結(jié)
第10章 混合與霧
10.1 混合技術(shù)
10.1.1 混合基本知識
10.1.2 源因子和目標因子
10.1.3 簡單混合效果案例
10.2 地月系云層效果的實現(xiàn)
10.3 霧
10.3.1 霧的原理與優(yōu)勢
10.3.2 霧的簡單實現(xiàn)
10.4 本章小結(jié)
第11章 常用3D開發(fā)技巧
11.1 標志板
11.1.1 案例效果與基本原理
11.1.2 開發(fā)步驟
11.2 灰度圖地形
11.2.1 基本原理
11.2.2 普通灰度圖地形
11.2.3 過程紋理地形
11.2.4 MipMap地形
11.3 天空盒與天空穹
11.3.1 天空盒
11.3.2 天空穹
11.3.3 天空盒與天空穹的使用技巧
11.4 鏡像技術(shù)
11.4.1 鏡像基本原理
11.4.2 基本效果案例
11.4.3 升級效果案例
11.5 動態(tài)文本輸出
11.5.1 案例效果與基本原理
11.5.2 具體開發(fā)步驟
11.6 非真實感繪制
11.6.1 案例效果與基本原理
11.6.2 具體開發(fā)步驟
11.7 本章小結(jié)
第12章 幾種剪裁與測試
12.1 剪裁測試
12.1.1 基本原理與核心代碼
12.1.2 一個主次視角的簡單案例
12.2 Alpha測試
12.2.1 Alpha測試基本原理
12.2.2 一個橢圓窗口的案例
12.3 模板測試
12.3.1 基本原理
12.3.2 一個簡單的案例
12.4 任意剪裁平面
12.4.1 基本原理
12.4.2 茶壺被任意平面剪裁的案例
12.5 本章小結(jié)
第13章 頂點著色器的妙用
13.1 飄揚的旗幟
13.1.1 基本原理
13.1.2 開發(fā)步驟
13.2 扭動的軟糖
13.2.1 基本原理
13.2.2 開發(fā)步驟
13.3 風吹椰林場景的開發(fā)
13.3.1 椰子樹隨風搖擺的基本原理
13.3.2 開發(fā)步驟
13.4 展翅飛翔的雄鷹
13.4.1 基本原理
13.4.2 開發(fā)步驟
13.5 二維扭曲
13.5.1 基本原理
13.5.2 開發(fā)步驟
13.6 OpenGL ES 1.x與OpenGL ES 2.0實現(xiàn)方案的對比
13.7 本章小結(jié)
第14章 片元著色器的妙用
14.1 程序紋理技術(shù)
14.1.1 磚塊著色器
14.1.2 沙灘球著色器
14.2 數(shù)字圖像處理
14.2.1 卷積的基本知識
14.2.2 平滑過濾
14.2.3 邊緣檢測
14.2.4 銳化處理
14.2.5 浮雕效果
14.2.6 圖像漸變
14.3 分形著色器
14.3.1 曼德布羅集簡介
14.3.2 曼德布羅集著色器的實現(xiàn)
14.3.3 將曼德布羅集紋理應用到實際物體上
14.3.4 茱莉亞集著色器的實現(xiàn)
14.4 本章小結(jié)
第15章 真實光學環(huán)境的模擬
15.1 投影貼圖
15.1.1 案例效果與基本原理
15.1.2 開發(fā)步驟
15.2 反射環(huán)境模擬
15.2.1 案例效果與基本原理
15.2.2 開發(fā)步驟
15.3 折射環(huán)境模擬
15.3.1 案例效果與基本原理
15.3.2 開發(fā)步驟
15.4 色散效果的模擬
15.4.1 案例效果與基本原理
15.4.2 開發(fā)步驟
15.5 菲涅爾效果的模擬
15.5.1 案例效果與基本原理
15.5.2 開發(fā)步驟
15.6 凹凸映射
15.6.1 案例效果與基本原理
15.6.2 法向量紋理圖的生成
15.6.3 案例的開發(fā)
15.7 平面陰影
15.7.1 案例效果與基本原理
15.7.2 開發(fā)步驟
15.8 陰影映射
15.8.1 案例效果與基本原理
15.8.2 距離紋理圖的生成
15.8.3 陰影場景的繪制
15.9 光線跟蹤
15.9.1 案例效果與基本原理
15.9.2 開發(fā)步驟
15.10 本章小結(jié)
第16章 游戲開發(fā)中的物理學
16.1 碰撞檢測基本技術(shù)
16.1.1 AABB包圍盒的基本原理
16.1.2 AABB包圍盒的計算
16.1.3 AABB包圍盒的碰撞檢測
16.1.4 一個AABB包圍盒的案例
16.1.5 旋轉(zhuǎn)后的AABB包圍盒
16.1.6 AABB包圍盒的使用要點
16.1.7 OBB包圍盒
16.2 穿透效應
16.2.1 案例的運行效果與基本原理
16.2.2 具體開發(fā)步驟
16.3 粒子系統(tǒng)
16.3.1 案例運行效果與基本原理
16.3.2 CPU版案例的開發(fā)
16.3.3 GPU版案例開發(fā)步驟
16.4 彈簧質(zhì)點模型
16.4.1 案例運行效果與基本原理
16.4.2 具體開發(fā)步驟
16.5 本章小結(jié)
第17章 游戲的心臟--物理引擎
17.1 物理引擎很重要
17.1.1 什么是物理引擎
17.1.2 常見的物理引擎
17.2 JBullet物理引擎
17.2.1 基本的物理學概念
17.2.2 JBullet中常用類的介紹
17.3 箱子相互碰撞的案例
17.3.1 案例運行效果及準備工作
17.3.2 案例的基本框架結(jié)構(gòu)
17.3.3 常量類--Constant
17.3.4 3D場景渲染類--MySurfaceView
17.3.5 水平地面--TexFloor類
17.3.6 箱子--TexCube類
17.4 復合碰撞形狀的使用
17.4.1 案例運行效果
17.4.2 立方體圓柱復合形狀--CubeCylinder類
17.5 凹凸地形的案例
17.5.1 案例運行效果
17.5.2 地形類--LandForm
17.6 任意形狀物體的碰撞
17.6.1 案例運行效果
17.6.2 加載物體類--LoadedObjectVertexNormal
17.6.3 加載物體剛體類--LoadRigidBody
17.7 鉸鏈關(guān)節(jié)
17.7.1 鉸鏈關(guān)節(jié)的基本知識
17.7.2 案例的運行效果
17.7.3 鉸鏈關(guān)節(jié)旋轉(zhuǎn)角速度的計算
17.7.4 3D界面渲染類--MySurfaceView
17.8 滑動關(guān)節(jié)
17.8.1 滑動關(guān)節(jié)的基本知識
17.8.2 案例效果圖
17.8.3 3D界面渲染類--MySurfaceView
17.9 六自由度關(guān)節(jié)
17.9.1 六自由度關(guān)節(jié)的基本知識
17.9.2 案例的運行效果
17.9.3 人偶類--Doll
17.9.4 拾取時采用的點對點關(guān)節(jié)
17.10 本章小結(jié)
第18章 傳感器應用的開發(fā)
18.1 基本的開發(fā)流程
18.2 加速度傳感器
18.2.1 加速度傳感器簡介
18.2.2 案例的開發(fā)
18.3 磁場傳感器
18.3.1 磁場傳感器簡介
18.3.2 案例的開發(fā)
18.4 光傳感器
18.4.1 光傳感器簡介
18.4.2 案例的開發(fā)
18.5 溫度傳感器
18.5.1 溫度傳感器簡介
18.5.2 案例的開發(fā)
18.6 接近傳感器
18.6.1 接近傳感器簡介
18.6.2 案例的開發(fā)
18.7 姿態(tài)傳感器
18.7.1 姿態(tài)傳感器簡介
18.7.2 案例的開發(fā)
18.8 本章小結(jié)
第19章 游戲開發(fā)小貼士
19.1 3D拾取技術(shù)
19.1.1 案例效果與基本原理
19.1.2 開發(fā)步驟
19.2 多點觸控
19.2.1 案例效果與基本原理
19.2.2 開發(fā)步驟
19.3 多鍵監(jiān)聽
19.3.1 案例效果與基本原理
19.3.2 開發(fā)步驟
19.4 本章小結(jié)
第20章 BN賽艇
20.1 游戲背景及功能概述
20.1.1 背景概述
20.1.2 功能介紹
20.2 游戲的策劃及準備工作
20.2.1 游戲的策劃
20.2.2 Android平臺下游戲的準備工作
20.3 游戲的架構(gòu)
20.3.1 各個類簡要介紹
20.3.2 游戲框架簡介
20.4 主控制類MyActivity
20.5 2D界面相關(guān)類
20.5.1 歡迎界面類WelcomeView
20.5.2 2D界面父類MySFView
20.5.3 主菜單類MenuView
20.5.4 2D界面繪制類ViewForDraw
20.5.5 數(shù)據(jù)庫工具類DBUtil
20.5.6 Android系統(tǒng)版本對話框AndroidVersionDialog
20.6 選船界面相關(guān)類
20.6.1 著色器管理類ShaderManager
20.6.2 圍墻類ColorLightRect
20.6.3 選船房間類HouseForDraw
20.6.4 展臺類DisplayStation
20.6.5 賽艇類Boat
20.6.6 選船界面XCSurfaceView
20.7 游戲界面相關(guān)類
20.7.1 進度條類Process
20.7.2 3D物體父類BNDrawer
20.7.3 3D物體控制類TDObjectForControl
20.7.4 賽艇類Boat
20.7.5 可碰撞物體父類KZBJDrawer
20.7.6 可碰撞物體控制類KZBJForControl
20.7.7 賽艇與可碰撞物體檢測碰撞線程ThreadColl
20.7.8 可吃物體父類SpeedForEat
20.7.9 可吃物體控制類SpeedForControl
20.7.10 晶體旋轉(zhuǎn)線程RotateThread
20.7.11 賽艇與晶體碰撞檢測線程ThreadForEat
20.7.12 比較兩灌木距離攝像機距離類MyComparable
20.7.13 單個灌木類SingleShrub
20.7.14 灌木控制類ShrubForControl
20.7.15 賽艇賽道類RaceTrack
20.7.16 賽艇與橋碰撞檢測類PZZ
20.7.17 賽艇運動路線工具類PathUtil
20.7.18 尾浪類WeiLang
20.7.19 水面類Water
20.7.20 游戲界面類MyGLSurfaceView
20.7.21 運動監(jiān)聽線程KeyThread
20.8 該游戲中的著色器
20.9 游戲的優(yōu)化與改進
第21章 火力籃球
21.1 游戲背景及功能概述
21.1.1 背景概述
21.1.2 功能介紹
21.2 游戲的策劃及準備工作
21.2.1 游戲的策劃
21.2.2 Android平臺下游戲開發(fā)的準備工作
21.3 游戲的架構(gòu)
21.3.1 各個類簡要介紹
21.3.2 游戲框架簡介
21.4 公共類BasketBall_Shot_Activity
21.5 輔助界面相關(guān)類
21.5.1 主菜單界面CaiDanView類
21.5.2 設置界面ShengyinKGJiemian類
21.5.3 關(guān)于界面GuanYuView類
21.5.4 記錄界面JiLuView類
21.5.5 數(shù)據(jù)庫相關(guān)類SQLiteUtil
21.6 游戲界面相關(guān)類
21.6.1 游戲界面繪制類GLGameView
21.6.2 著色器程序管理器類ShaderManager
21.6.3 添加剛體進物理世界類TianjiaBody
21.6.4 添加膠囊剛體進物理世界類JiaoNangTianjiaBody
21.6.5 籃球控制類BasketBallForDraw
21.6.6 紋理矩形繪制類WenLiJuXing
21.7 游戲中著色器的開發(fā)
21.7.1 紋理的著色器
21.7.2 光照著色器
21.7.3 影子著色器
21.7.4 儀表盤背景著色器
21.7.5 籃網(wǎng)著色器
21.8 游戲的優(yōu)化與改進
第22章 夜鷹行動
22.1 游戲背景及功能概述
22.1.1 背景概述
22.1.2 功能介紹
22.2 游戲的策劃及準備工作
22.2.1 游戲的策劃
22.2.2 Android平臺下游戲開發(fā)的準備工作
22.3 游戲的架構(gòu)
22.3.1 各個類的簡要介紹
22.3.2 游戲框架簡介
22.4 公共類Aircraft_Activity
22.5 游戲相關(guān)類
22.5.1 游戲界面繪制類GLGameView
22.5.2 游戲線程類KeyThread
22.5.3 子彈類BulletForControl
22.5.4 坦克類TanKe
22.5.5 山地繪制類LandForm
22.5.6 顏色圓面類CircleForDraw
22.5.7 星空類SkyNight
22.5.8 爆炸效果繪制類DrawBomb
22.5.9 數(shù)字繪制類NumberForDraw
22.6 該游戲中的著色器
22.6 .1 加載界面著色器
22.6.2 地形著色器
22.6.3 按鈕著色器
22.6.4 星空著色器
22.6.5 生命值矩形著色器
22.6.6 顏色圓面著色器
22.7 游戲的優(yōu)化與改進
章節(jié)摘錄
版權(quán)頁: 插圖: 由于當下可編程圖形硬件占圖形硬件市場的份額越來越大,3D開發(fā)人員應該具備使用可編程圖形硬件的能力,而各種可編程圖形硬件一般都是提供著色器供開發(fā)人員使用的,因此學習著色語言是開發(fā)3D游戲的重中之重。 由于Android平臺下的可編程圖形硬件支持的是OpenGL ES2.0標準,因此,本章將向讀者介_降OpenGL ES著色語言。OpenGL ES著色語言是基于OpenGL ES2.0平臺研發(fā)的,基本可以看做是PC和工作站上OpenGL著色語言的子集,包含了OpenGL著色語言的大部分功能。 OpenGL ES著色語言是一種高級的圖形編程語言,其源自應用廣泛的C語言,同時具有RenderMan以及其他著色語言的一些優(yōu)良特性,易于被開發(fā)人員掌握。 與傳統(tǒng)通用編程語言有很大不同的是,其提供了更加豐富的原生類型,如向量、矩陣等。這些新特性的加入使得OpenGL ES著色語言在處理3D圖形方面更加高效、易用。簡單來說,OpenGL ES著色語言主要包括以下特性。 ?OpenGL ES著色語言是一種高級的過程語言(注意,不是面向?qū)ο螅??對頂點著色器、片元著色器使用的是同樣的語言,不做區(qū)分。 ?基于C/C++的語法及流程控制。 ?完美支持向量與矩陣的各種操作。 ?通過類型限定符來管理輸入與輸出。 ?擁有大量的內(nèi)置函數(shù)來提供豐富的功能。 總之,OpenGL ES著色語言是一種易于實現(xiàn)、功能強大、便于使用、完美支持硬件靈活性,且可以高度并行處理、性能優(yōu)良的高級圖形編程語言。其可以幫助開發(fā)人員在不浪費大量時間的情況下,輕松地為用戶帶來更完美的視覺體驗,開發(fā)出更加酷炫的3D場景與特效。 對于3D游戲開發(fā)人員來說,掌握這門語言尤為重要。本章的后繼內(nèi)容將從多個方面介紹OpenGL ES著色語言的基本知識,使得讀者初步了解著色語言,為以后深入地學習打下堅實的基礎。
編輯推薦
《Android 3D游戲開發(fā)技術(shù)寶典:OpenGL ES 2.0》適合Android程序員、游戲開發(fā)者及Android愛好者學習,也可以作為相關(guān)培訓學校和大專院校相關(guān)專業(yè)的教學用書?!禔ndroid 3D游戲開發(fā)技術(shù)寶典:OpenGL ES 2.0》組織上本著“起點低,終點高”的原則,內(nèi)容覆蓋了從學習OpenGL ES 2.0必知必會的基礎知識到基于OpenGL ES 2.0實現(xiàn)高級特效,最后還給出了3個完整的大型3D游戲案例。這3個案例均是筆者帶領學員參加谷歌(Google)2011第二屆Android應用開發(fā)中國大學生挑戰(zhàn)賽的獲獎作品,第22章的夜鷹行動更是獲全國總決賽前5名大獎的作品?!禔ndroid 3D游戲開發(fā)技術(shù)寶典:OpenGL ES 2.0》中配合每個需要講解的知識點都給出了豐富的插圖與完整的案例,使得初學者易于上手,有一定基礎的讀者便于深入。書中所有的案例均是根據(jù)筆者多年的開發(fā)心得進行設計的,結(jié)構(gòu)清晰明朗,便于讀者進行學習。同時書中還給出了很多筆者多年來積累的編程技巧與心得,具有很高的參考價值。
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載
Android 3D游戲開發(fā)技術(shù)寶典 PDF格式下載