OpenGL ES 2.0游戲開發(下卷):高級特效和典型案例

OpenGL ES 2.0游戲開發(下卷):高級特效和典型案例
定價:474
NT $ 412
  • 作者:吳亞峰
  • 出版社:人民郵電出版社
  • 出版日期:2014-04-01
  • 語言:簡體中文
  • ISBN10:7115344698
  • ISBN13:9787115344694
  • 裝訂:392頁 / 普通級 / 1-1
 

內容簡介

共分12章,內容按照必知必會的基礎知識、基於OpenGL ES 2.0實現基本特效,以及真實大型游戲案例的順序進行詳細講解。

第1章介紹如何通過頂點著色器實現酷炫效果,包括飄揚的旗幟、扭動的軟糖、展翅飛翔的雄鷹、吹氣特效等。第2章介紹程序紋理、數字圖像處理技術、分形著色器、粒子系統火焰特效等。第3章介紹模擬現實世界的一些光學效果,如反射、折射、凹凸映射、高真實感地形等。第4章介紹投影貼圖、平面陰影、陰影映射、陰影貼圖、聚光燈高級光源、高真實感水面倒影等光影效果。第5章游戲開發中的物理學,介紹包括AABB包圍盒、穿透效應、粒子系統以及彈簧質點模型等。

第6章介紹3D游戲開發中經常使用的3D物理引擎jBullet、Bullet,各種物體形狀的碰撞以及NDK下Bullet物理引擎的使用。第7章介紹3D游戲開發中常用的骨骼動畫技術。第8章介紹包括3D拾取、多點觸控以及多鍵監聽等技巧。第9章討論3D游戲開發中的一些性能優化問題。第10章~第12章用3大案例,如火力籃球、虛擬停車場、WebGL模擬飛行把所學知識貫穿起來,達到了學以致用的目的。

《OpenGL ES 2.0游戲開發(下卷):高級特效和典型案例》內容豐富,從基本知識到高級特效,從簡單的應用程序到完整的3D游戲案例,適合不同需求、不同水平層次的各類讀者。特別是移動游戲開發者、程序員,以及大專院校相關專業師生的學習用書和培訓學校的教材。

吳亞峰,畢業於北京郵電大學,後留學澳大利亞卧龍崗大學取得碩士學位。1998年開始從事Java應用的開發,有10多年的Java開發與培訓經驗。主要的研究方向為OpenGL ES、手機游戲、Java EE以及搜索引擎。同時為手機游戲、Java EE獨立軟件開發工程師,並兼任百納科技Java培訓中心首席培訓師。近十年來為數十家著名企業培養了上千名高級軟件開發人員,曾編寫過《Android 3D游戲案例開發大全》、《Android平板電腦開發實戰詳解和典型案例》、《Android游戲開發大全》、《Android應用案例開發大全》、《Unity 3D游戲開發技術詳解與典型案例》等多本暢銷技術書籍。2008年年初開始關注Android平台下的應用開發,並開發出一系列優秀的Android 3D應用程序與游戲。
 

目錄

第1章 頂點著色器的妙用
1.1 飄揚的旗幟
1.1.1 基本原理
1.1.2 開發步驟
1.2 扭動的軟糖
1.2.1 基本原理
1.2.2 開發步驟
1.3 風吹椰林場景的開發
1.3.1 椰子樹隨風搖擺的基本原理
1.3.2 開發步驟
1.4 展翅飛翔的雄鷹
1.4.1 基本原理
1.4.2 開發步驟
1.5 二維扭曲
1.5.1 基本原理
1.5.2 開發步驟
1.6 吹氣膨脹特效
1.6.1 特效基本原理
1.6.2 特效開發步驟
1.7 OpenGL ES 1.x與OpenGL ES 2.0實現方案的對比
1.8 本章小結

第2章 片元著色器的妙用
2.1 程序紋理技術
2.1.1 磚塊著色器
2.1.2 沙灘球著色器
2.2 數字圖像處理
2.2.1 卷積的基本知識
2.2.2 平滑過濾
2.2.3 邊緣檢測
2.2.4 銳化處理
2.2.5 浮雕效果
2.2.6 圖像漸變
2.3 分形著色器
2.3.1 曼德布羅集簡介
2.3.2 曼德布羅集著色器的實現
2.3.3 將曼德布羅集紋理應用到實際物體上
2.3.4 茱莉亞集著色器的實現
2.4 體積霧
2.4.1 基本原理
2.4.2 體積霧開發步驟
2.5 粒子系統火焰的開發
2.5.1 火焰的基本原理
2.5.2 火焰的開發步驟
2.6 本章小結

第3章 真實光學環境的模擬
3.1 反射環境模擬
3.1.1 案例效果與基本原理
3.1.2 反射環境開發步驟
3.2 折射環境模擬
3.2.1 案例效果與基本原理
3.2.2 開發步驟
3.3 色散效果的模擬
3.3.1 案例效果與基本原理
3.3.2 開發步驟
3.4 菲涅爾效果的模擬
3.4.1 案例效果與基本原理
3.4.2 菲涅爾效果開發步驟
3.5 凹凸映射
3.5.1 案例效果與基本原理
3.5.2 法向量紋理圖的生成
3.5.3 案例的開發
3.6 真實感很強的地形
3.6.1 真實感地形的基本原理
3.6.2 真實感地形的開發步驟
3.7 本章小結

第4章 陰影及高級光照
4.1 投影貼圖
4.1.1 投影案例效果與基本原理
4.1.2 開發步驟
4.2 陰影的重要性
4.3 平面陰影
4.3.1 平面陰影案例效果與基本原理
4.3.2 平面陰影開發步驟
4.4 陰影映射
4.4.1 陰影映射案例效果與基本原理
4.4.2 距離紋理圖的生成
4.5.3 陰影場景的繪制
4.5 陰影貼圖
4.5.1 陰影貼圖案例效果與基本原理
4.5.2 陰影貼圖開發步驟
4.6 聚光燈高級光源
4.6.1 聚光燈高級光源案例效果與基本原理
4.6.2 聚光燈高級光源開發步驟
4.7 光線跟蹤
4.7.1 光線跟蹤案例效果與基本原理
4.7.2 光線跟蹤開發步驟
4.8 真實感水面倒影
4.8.1 水面倒影的基本原理
4.8.2 水面倒影的開發步驟
4.9 本章小結

第5章 讓游戲更真實——游戲開發中的物理學
5.1 碰撞檢測基本技術
5.1.1 AABB包圍盒的基本原理
5.1.2 AABB包圍盒的計算
5.1.3 AABB包圍盒的碰撞檢測
5.1.4 一個AABB包圍盒的案例
5.1.5 旋轉後的AABB包圍盒
5.1.6 AABB包圍盒的使用要點
5.1.7 OBB包圍盒
5.2 穿透效應
5.2.1 案例的運行效果與基本原理
5.2.2 具體開發步驟
5.3 粒子系統
5.3.1 案例運行效果與基本原理
5.3.2 CPU版案例的開發
5.3.3 GPU版案例開發步驟
5.4 彈簧質點模型模擬旗幟
5.4.1 彈簧質點模型基本原理
5.4.2 彈簧質點模型案例的運行效果及開發步驟
5.5 彈簧質點模型模擬球網
5.5.1 彈簧質點模型的基本原理
5.5.2 彈簧質點模型的案例的運行效果及開發步驟
5.6 本章小結

第6章 游戲的心臟——物理引擎
6.1 物理引擎很重要
6.1.1 什麽是物理引擎
6.1.2 常見的物理引擎
6.2 JBullet物理引擎概覽
6.2.1 基本的物理學概念
6.2.2 JBullet中常用類的介紹
6.3 箱子相互碰撞的案例
6.3.1 案例運行效果及准備工作
6.3.2 案例的基本框架結構
6.3.3 常量類——Constant
6.3.4 3D場景渲染類——MySurfaceView
6.3.5 水平地面——TexFloor類
6.3.6 箱子——TexCube類
6.4 復合碰撞形狀的使用
6.4.1 案例運行效果
6.4.2 立方體圓柱復合形狀——CubeCylinder類
6.5 凹凸地形的案例
6.5.1 案例運行效果
6.5.2 地形類——LandForm
6.6 任意形狀物體的碰撞
6.6.1 案例運行效果
6.6.2 加載物體類——LoadedObjectVertexNormal
6.6.3 加載物體剛體類——LoadRigidBody
6.7 鉸鏈關節
6.7.1 鉸鏈關節的基本知識
6.7.2 鉸鏈關節案例的運行效果
6.7.3 鉸鏈關節旋轉角速度的計算
6.7.4 3D界面渲染類——MySurfaceView
6.8 滑動關節
6.8.1 滑動關節的基本知識
6.8.2 案例效果圖
6.8.3 3D界面渲染類——MySurfaceView
6.9 六自由度關節
6.9.1 六自由度關節的基本知識
6.9.2 六自由度關節案例的運行效果
6.9.3 人偶類——Doll
6.9.4 拾取時采用的點對點關節
6.10 交通工具
6.10.1 交通工具開發要點
6.10.2 交通工具案例的運行效果
6.10.3 3D場景渲染類——MySurfaceView
6.10.4 汽車類——Car
6.10.5 汽車繪制類——VehicleDraw
6.11 Bullet物理引擎概覽
6.11.1 Bullet物理引擎案例的運行效果
6.11.2 3D場景渲染類——GL2JNIView
6.11.3 本地方法聲明及動態庫加載類——JNIPort
6.11.4 初始化及渲染函數文件——main.cpp
6.11.5 水平地面類——TexPlane
6.11.6 箱子類——TexCube
6.12 Bullet軟體
6.12.1 Bullet軟件案例運行效果
6.12.2 初始化及渲染函數文件——main.cpp
6.12.3 軟體類——SoftCloth
6.13 本章小結

第7章 讓游戲主角的動作更豐富——骨骼動畫
7.1 自己開發骨骼動畫
7.1.1 骨骼動畫的基本原理
7.1.2 骨骼動畫開發步驟
7.1.3 機器人模型在地面上運動時的問題
7.2 ms3d文件的加載
7.2.1 ms3d文件的格式
7.2.2 案例的開發
7.3 本章小結

第8章 必知必會的開發技術——游戲開發小貼士
8.1 3D拾取技術
8.1.1 3D拾取案例效果與基本原理
8.1.2 開發步驟
8.2 多點觸控
8.2.1 多點觸控案例效果與基本原理
8.2.2 開發步驟
8.3 多鍵監聽
8.3.1 案例效果與基本原理
8.3.2 開發步驟
8.4 本章小結

第9章 讓應用運行更流暢——性能優化
9.1 著色器的優化
9.1.1 計算量與計算頻率相關的問題
9.1.2 其他需要注意的問題
9.2 紋理圖的優化
9.3 3D圖形繪制的優化
9.3.1 CPU階段的優化
9.3.2 幾何階段的優化
9.3.3 光柵化階段的優化
9.3.4 盡量減少狀態的變化
9.4 本章小結

第10章 綜合案例一——火力籃球
10.1 游戲背景及功能概述
10.1.1 游戲背景概述
10.1.2 游戲功能介紹
10.2 游戲的策划及准備工作
10.2.1 游戲的策划
10.2.2 Android平台下游戲開發的准備工作
10.3 游戲的架構
10.3.1 各個類簡要介紹
10.3.2 游戲框架簡介
10.4 公共類BasketBall_Shot_Activity
10.5 輔助界面相關類
10.5.1 主菜單界面CaiDanView類
10.5.2 設置界面ShengyinKGJiemian類
10.5.3 關於界面GuanYuView類
10.5.4 記錄界面JiLuView類
10.5.5 數據庫相關類SQLiteUtil
10.6 游戲界面相關類
10.6.1 游戲界面繪制類GLGameView
10.6.2 著色器程序管理器類ShaderManager
10.6.3 添加剛體進物理世界類TianjiaBody
10.6.4 添加膠囊剛體進物理世界類JiaoNangTianjiaBody
10.6.5 籃球控制類BasketBallForDraw
10.6.6 紋理矩形繪制類WenLiJuXing
10.7 游戲中著色器的開發
10.7.1 紋理的著色器
10.7.2 光照著色器
10.7.3 影子著色器
10.7.4 儀表盤背景著色器
10.7.5 籃網著色器
10.8 游戲的優化與改進

第11章 綜合案例二——3D虛擬停車場
11.1 游戲開發背景及功能概述
11.1.1 游戲開發背景
11.1.2 游戲功能介紹
11.2 游戲的策划及准備工作
11.2.1 游戲的策划
11.2.2 Android 平台下游戲開發的准備工作
11.3 游戲的架構
11.3.1 各個類簡要介紹
11.3.2 游戲框架簡介
11.4 常量及公共類
11.4.1 游戲主控類GameActivity
11.4.2 游戲常量類Constant
11.5 界面相關類
11.5.1 游戲歡迎界面類WelcomeView
11.5.2 主菜單類MainInterSurfaceView
11.5.3 選擇界面類SelectVehicleLevelView
11.5.4 游戲界面類GameSurfaceView
11.6 交通工具相關類及接口
11.6.1 交通工具接口Vehicle
11.6.2 交通工具類Car_01
11.7 物體繪制相關類
11.7.1 紋理矩形繪制類TextureTextangle
11.7.2 交通工具繪制類VehicleDraw
11.7.3 路障類Roadblock
11.7.4 停車點類ParkPlace
11.7.5 關卡加載及繪制類LevelLoad
11.7.6 路面繪制類TexFloor
11.7.7 動態按鈕類Button
11.7.8 方向盤類Streering
11.7.9 控制部件繪制類Control
11.8 游戲中的著色器開發
11.9 游戲的優化與改進

第12章 綜合案例三——WebGL模擬飛行
12.1 游戲背景及功能概述
12.1.1 游戲背景概述
12.1.2 游戲功能介紹
12.2 游戲的策划及准備工作
12.2.1 游戲的策划
12.2.2 Web 平台下游戲的准備工作
12.2.3 Obj模型加載工具介紹
12.3 游戲的架構
12.3.1 游戲中各個類簡要介紹
12.3.2 游戲框架簡介
12.4 游戲公共函數介紹
12.4.1 工具函數文件GLUtil.js
12.4.2 矩陣操作函數文件MatrixState.js
12.5 山地控制及繪制相關函數
12.5.1 無邊界地形的控制及繪制原理
12.5.2 無邊界山地地形繪制函數文件MountainMap.js
12.5.3 單位山地地形繪制函數文件MountainDraw.js
12.6 物體控制相關函數介紹
12.6.1 碰撞檢測策略講解
12.6.2 飛機繪制及控制文件Airplane.js
12.6.3 飛機繪制及控制文件Meter.js
12.6.4 爆炸動畫繪制函數文件BoomPlay.js
12.7 物體繪制相關函數介紹
12.7.1 山地繪制函數文件Mountain.js
12.7.2 水面繪制文件WaterRect.js
12.7.3 紋理矩形繪制文件Rectangledraw.js
12.7.4 其他物體繪制文件ObjObject.js
12.8 游戲頁面文件planeGame.htm介紹
12.9 游戲中運用的著色器介紹
12.9.1 普通物體著色器
12.9.2 山地地形著色器
12.9.3 水面矩形著色器
12.10 游戲的優化與改進
網路書店 類別 折扣 價格
  1. 新書
    87
    $412