OpenGL ES 2.0 遊戲開發(下捲)-高級特效和典型案例 OpenGL ES 2.0游戏开发(下卷):高级特效和典型案例

吳亞峰

  • 出版商: 人民郵電
  • 出版日期: 2014-04-01
  • 定價: $474
  • 售價: 8.5$403
  • 語言: 簡體中文
  • 頁數: 392
  • 裝訂: 平裝
  • ISBN: 7115344698
  • ISBN-13: 9787115344694
  • 相關分類: OpenGL遊戲設計 Game-design

已絕版

買這商品的人也買了...

相關主題

商品描述

<內容簡介>

吳亞峰編著的《OpenGL ES2.0遊戲開發(附光盤下捲高級特效和典型案例)》共分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 ES2.0遊戲開發(附光盤下捲高級特效和典型案例)》內容豐富,從基本知識到高級特效,從簡單的應用程序到完整的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  D場景渲染類——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  D界面渲染類——MySurfaceView
  6.8  滑動關節
  6.8.1  滑動關節的基本知識
  6.8.2  案例效果圖
  6.8.3  D界面渲染類——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  D場景渲染類——MySurfaceView
  6.10.4  汽車類——Car
  6.10.5  汽車繪製類——VehicleDraw
  6.11  Bullet物理引擎概覽
  6.11.1  Bullet物理引擎案例的運行效果
  6.11.2  D場景渲染類——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  D拾取技術
  8.1.1  D拾取案例效果與基本原理
  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  D圖形繪製的優化
  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  遊戲的優化與改進