来自于真实项目的三大完整案例:火力篮球、虚拟停车场、WebGL模拟飞行贯穿整本书的实战知识,真正帮助读者学以致用。 案例涵盖了Android、iOS、WebGL等主流平台 包括主流的特效开发技术实现酷炫效果:包括飘扬的旗帜、吹气特效、程序纹理、数字图像处理技术、粒子系统火焰特效、光学效果、投影贴图、高真实感水面倒影、游戏开发中的物理学、3D物理引擎、骨骼动画技术、3D拾取、多点触控以及多键监听等技巧,以及3D游戏开发中的一些性能优化问题
售 价:¥
纸质售价:¥54.50购买纸书
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
前言
第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 游戏的优化与改进
下载链接
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜