
| 500分钟视频讲解 结合真实案例介绍Android平台下 OpenGL ES基本技术的使用及3D游戏开发的完整流程 |
| 吴亚峰 毕业于北京邮电大学,后留学澳大利亚卧龙岗大学取得硕士学位。1998年开始从事Java应用的开发,有10多年的Java开发与培训经验。主要的研究方向为手机游戏、JavaEE、搜索引擎,同时为手机游戏、JavaEE独立软件开发工程师,并兼任百纳科技Java培训中心首席培训师。近10年为数十家著名企业培养了上千名软件开发人员,曾编写过《Java程序员职场全攻略——从小工到专家》、 《Android 2.0游戏开发实战宝典》、 《Android核心技术与实例详解》等多本畅销技术书籍。2008年初开始关注Android平台下的应用开发.. << 查看详细 |
| 第一篇 必知必会的基础知识 第1章 英雄还看今朝——android简介20 《android 3d游戏开发技术详解与典型案例》 1.1 群雄割据的手机市场20 1.1.1 手机市场的两颗新星20 1.1.2 手机操作系统的5大元老21 1.2 android的未来及特点22 1.2.1 得中国市场者得天下22 1.2.2 全新的概念带来全新的体验22 1.3 android开发环境的搭建22 1.3.1 sdk的安装及环境配置22 1.3.2 eclipse集成开发环境的搭建23 1.3.3 模拟器的创建和运行24 1.4 第一个android应用程序的开发25 1.4.1 第一个android程序26 1.4.2 android应用程序的调试27 1.5 android应用程序运行的内部机制29 1.5.1 android应用程序的项目结构30 1.5.2 android 应用程序的系统架构31 1.5.3 android 应用程序框架32 .1.5.4 android 运行时32 1.5.5 系统库33 1.5.6 linux内核34 1.6 本章小结34 第2章 数风流人物——当前流行游戏类型简介35 2.1 avg冒险游戏35 2.1.1 游戏玩法35 2.1.2 视觉效果35 2.1.3 游戏设计36 2.2 pzl益智类游戏36 2.2.1 游戏玩法36 2.2.2 视觉效果37 2.2.3 游戏设计37 2.3 act动作游戏38 2.3.1 历代游戏介绍38 2.3.2 未来动作游戏的发展39 2.4 rpg角色扮演类游戏40 2.4.1 历代游戏介绍40 2.4.2 android平台游戏移植42 2.5 stg射击类游戏43 2.5.1 游戏的分类43 2.5.2 游戏的玩法44 2.5.3 游戏设计44 2.6 fps第一人称视角射击游戏44 2.6.1 游戏玩法44 2.6.2 视觉效果45 2.6.3 游戏设计45 2.7 slg策略游戏46 2.7.1 游戏的玩法46 2.7.2 视觉效果46 2.7.3 游戏设计47 2.8 spt体育类游戏47 2.8.1 游戏的玩法47 2.8.2 视觉效果47 2.8.3 游戏设计47 2.9 本章小结48 第3章 不积跬步,无以至千里—游戏开发基础知识49 3.1 游戏中的声音49 3.1.1 迅雷不及掩耳的即时音效49 3.1.2 一个即时音效的例子50 3.1.3 背景音乐播放技术53 3.1.4 简单音乐播放器实现55 3.2 手机中的数据库——sqlite59 3.2.1 sqlite数据库简介59 3.2.2 sqlite数据库的基本操作60 3.2.3 sqlite操作数据库的简单应用60 3.3 文件i/o64 3.3.1 轻松访问sd卡64 3.3.2 访问手机中的存储文件夹67 3.3.3 读取assets中的文件68 3.4 存储简单数据的利器——preferences70 3.4.1 preferences简介70 3.4.2 preferences实现显示上次登录时间70 3.5 surfaceview在游戏中的使用72 3.5.1 surfaceview简单操作72 3.5.2 简单动画场景的绘制73 3.6 本章小结78 第4章 千里之行,始于足下—3d开发基础知识79 4.1 opengl es 简介79 4.1.1 师出名门的opengl es79 4.1.2 三角形组成的世界80 4.1.3 第一个opengl es三角形82 4.2 不同的绘制方式87 4.2.1 点和线的绘制87 4.2.2 索引法绘制三角形93 4.2.3 顶点法绘制三角形101 4.3 不一样的投影,不一样的世界103 4.3.1 正交投影103 4.3.2 透视投影104 4.3.3 两种投影的比较105 4.3.4 近大远小的原理112 4.4 本章小结114 第5章 愿君多采撷,此物最相思——光照效果的开发115 5.1 五彩缤纷的源泉——光源115 5.1.1 光源的开启及关闭115 5.1.2 设定光源的数量116 5.1.3 定向光117 5.1.4 定位光118 5.2 光源的颜色119 5.2.1 环境光119 5.2.2 散射光120 5.2.3 镜面反射光121 5.3 材料反光属性的法官——法向量及材质121 5.3.1 法向量的作用121 5.3.2 光照的开启及关闭例子122 5.3.3 物体的材质128 5.3.4 设定光源数量的例子128 5.4 两个物体发光的例子132 5.4.1 定位光例子的实现132 5.4.2 自发光物体加运动光源的实现135 5.4.3 mysurfaceview.java详解137 5.5 面法向量与点平均法向量143 5.5.1 面法向量的应用143 5.5.2 点平均法向量的应用145 5.6 本章小结146 第6章 为伊消得人憔悴—纹理映射147 6.1 3d世界的花衣——纹理贴图147 6.1.1 指定纹理147 6.1.2 分配纹理坐标148 6.1.3 纹理贴图三角形的实现149 6.1.4 纹理贴图球体的构建153 6.2 使用纹理映射构建地月模型161 6.2.1 浩瀚星空中的地月系161 6.2.2 地月系的案例讲解162 6.3 纹理拉伸170 6.3.1 纹理拉伸的原理与用途170 6.3.2 纹理拉伸案例讲解172 6.4 纹理过滤175 6.4.1 最近点采样175 6.4.2 线性纹理过滤176 6.4.3 mipmap:多重细节层176 6.5 视角的合理设置177 6.5.1 不同视角的3d世界177 6.5.2 合理视角案例讲解178 6.6 本章小结180 第7章 海阔凭鱼跃,天高任鸟飞—3d基本形状的构建181 7.1 圆柱体181 7.1.1 圆柱体的几何方程181 7.1.2 圆柱体的opengl es实现182 7.2 圆锥体190 7.2.1 圆锥体的几何方程190 7.2.2 圆锥体的opengl es实现190 7.3 圆环193 7.3.1 圆环的几何方程193 7.3.2 圆环的opengl es实现193 7.4 抛物面196 7.4.1 抛物面的几何方程196 7.4.2 抛物面的opengl es实现197 7.5 双曲面199 7.5.1 双曲面的几何方程199 7.5.2 双曲面的opengl es实现200 7.6 螺旋面202 7.6.1 螺旋面的几何方程202 7.6.2 螺旋面的opengl es实现203 7.7 本章小结205 第8章 执子之手,与子偕老——坐标变换206 8.1 理解坐标变换206 8.1.1 坐标变换的实质206 8.1.2 重要的堆栈操作207 8.2 缩放变换208 8.2.1 缩放变换原理分析208 8.2.2 opengl es中的缩放变换实现208 8.3 平移变换211 8.3.1 平移变换理论概览211 8.3.2 opengl es中的平移变换实现212 8.4 旋转变换213 8.4.1 旋转变换原理概述213 8.4.2 opengl es中的旋转变换实现214 8.5 复合变换的简单案例——地月系模型215 8.6 用复合变换模拟现实世界216 8.7 本章小结218 第9章 孤帆远影碧空尽—摄像机与雾特效219 9.1 摄像机219 9.1.1 摄像机的简介219 9.1.2 摄像机的设置220 9.2 雾特效221 9.2.1 雾特效的相关知识221 9.2.2 雾特效核心代码222 9.3 摄像机与雾特效实现沙漠中的金字塔222 9.3.1 场景部件——四面体和太阳东升西落223 9.3.2 场景部件——星空类226 9.3.3 场景的创建229 9.3.4 摄像机up方向变换效果232 9.4 本章小结233 第10章 假作真时真亦假——混合234 10.1 什么是混合234 10.2 源因子和目标因子235 10.2.1 源因子和目标因子的默认实现方式235 10.2.2 预定义常量分析235 10.2.3 常用的组合方式236 10.2.4 启用混合237 10.3 混合案例237 10.3.1 一个混合的简单案例237 10.3.2 带光晕和云层效果的地月系模型241 10.3.3 滤光器中的世界245 10.4 本章小结250 第11章 蓦然回首,那人却在灯火阑珊处—3d高级技术251 11.1 标志板251 11.1.1 标志板技术概述251 11.1.2 标志板的案例252 11.2 飘扬的旗帜254 11.2.1 旗帜飘动效果原理254 11.2.2 飘扬旗帜案例讲解255 11.3 山地的生成技术257 11.3.1 灰度图地形技术概述257 11.3.2 灰度图生成3d地形258 11.3.3 地形场景效果的提升261 11.4 镜像技术263 11.4.1 镜像技术的简介264 11.4.2 镜像技术的实现265 11.4.3 镜像技术的提升267 11.5 本章小结268 第12章 心有灵犀一点通——传感器269 12.1 传感器简介269 12.1.1 磁场传感器简介269 12.1.2 光传感器简介269 12.1.3 距离传感器简介270 12.1.4 加速度传感器简介270 12.1.5 姿态传感器简介271 12.1.6 sensorsimulator模拟器的配置273 12.2 传感器的数据传输276 12.2.1 加速传感器的数据传输276 12.2.2 姿态传感器的数据传输278 12.3 传感器实例——平衡球279 12.4 本章小结287 第13章 千锤万凿出深山——游戏中的数学与物理288 13.1 必知必会的几何知识288 13.1.1 三维笛卡儿坐标系288 13.1.2 向量288 13.1.3 加减法290 13.1.4 向量的点积291 13.1.5 向量的叉积291 13.1.6 空间平面的确定292 13.2 不可或缺的物理世界293 13.2.1 重力系统293 13.2.2 碰撞298 13.2.3 完全弹性碰撞299 13.2.4 带有能量损失的弹性碰撞302 13.2.5 粒子系统303 13.3 本章小结311 第14章 山舞银蛇,原驰蜡象—ai基本理念312 14.1 ai简介312 14.1.1 什么是智能312 14.1.2 什么是游戏ai312 14.2 ai引擎的基本组成与设计313 14.2.1 智能体313 14.2.2 处理机与感知314 14.2.3 导航314 14.3 游戏ai中图的搜索315 14.3.1 深度优先搜索315 14.3.2 广度优先搜索321 14.3.3 dijkstra搜索325 14.3.4 广度优先a*算法的实现329 14.3.5 dijkstra a*算法的实现332 14.3.6 a*与非a*算法之间的比较334 14.4 模糊逻辑336 14.4.1 普通集合336 14.4.2 模糊集合337 14.4.3 模糊语言变量339 14.4.4 模糊规则339 14.5 本章小结340 第15章 独上高楼,望尽天涯路——开发小秘籍341 15.1 地图设计器341 15.1.1 不可或缺的地图设计器341 15.1.2 简单的地图设计器341 15.2 多键技术347 15.2.1 增加游戏可玩度的多键技术347 15.2.2 多键技术的实例演示348 15.3 虚拟键盘350 15.4 查找表技术351 15.5 状态机352 15.6 aabb边界框354 15.6.1 aabb的表达方法355 15.6.2 计算aabb355 15.6.3 aabb与边界球的比较356 15.6.4 球与球的碰撞357 15.6.5 两个aabb的碰撞358 15.6.6 球与aabb的碰撞361 15.7 穿透效应363 15.8 拾取技术367 15.8.1 拾取技术的原理367 15.8.2 拾取技术的实现369 15.9 天空盒与天空穹377 15.9.1 天空盒的介绍377 15.9.2 天空穹的介绍380 15.10 本章小结382 第二篇 案 例 实 战 第16章 体育类游戏—《疯狂投篮》384 16.1 游戏的背景及功能概述384 16.1.1 背景概述384 16.1.2 功能简介384 16.2 游戏的策划及准备工作388 16.2.1 游戏的策划388 16.2.2 android平台下游戏的准备工作388 16.3 游戏的架构389 16.3.1 游戏中用到的主要技术389 16.3.2 各类的简要介绍389 16.3.3 游戏的框架简介391 16.4 游戏公共类的设计与实现393 16.4.1 主类basketballactivity的实现393 16.4.2 游戏常量类的介绍396 16.5 游戏菜单界面类的设计与实现398 16.5.1 游戏开始菜单的框架设计398 16.5.2 游戏开始菜单的实现399 16.5.3 游戏帮助、关于、加载及结束界面的设计与实现402 16.6 游戏界面的设计与实现402 16.6.1 游戏界面的框架设计402 16.6.2 游戏界面的实现404 16.7 游戏界面中主要场景的绘制及篮球运动407 16.7.1 游戏中墙壁、地板、球和篮板等的绘制407 16.7.2 篮板的整体绘制409 16.7.3 篮球的运动实现410 16.8 游戏界面的碰撞检测及物体拾取413 16.8.1 篮球与篮框的碰撞检测413 16.8.2 篮球与墙壁、地板和屋顶的碰撞检测416 16.8.3 手机屏幕拾取技术418 16.9 游戏的优化与改进419 第17章 益智类游戏—《旋转积木》421 17.1 游戏的背景及功能概述421 17.1.1 背景概述421 17.1.2 功能简介421 17.2 游戏的策划及准备工作424 17.2.1 游戏的策划424 17.2.2 android平台下游戏的准备工作424 17.3 游戏的架构425 17.3.1 游戏中用到的主要技术425 17.3.2 各类的简要介绍425 17.3.3 游戏的框架简介427 17.4 地图设计器的开发428 17.5 游戏公共类的设计与实现431 17.5.1 主类mainactivity的实现431 17.5.2 游戏常量类的介绍434 17.6 游戏菜单界面类的设计与实现437 17.6.1 游戏开始菜单的框架设计438 17.6.2 游戏开始菜单的实现439 17.6.3 游戏帮助、关于、设置及胜利界面的设计与实现441 17.7 游戏界面的设计与实现442 17.7.1 游戏界面的框架设计442 17.7.2 游戏触控方法的实现443 17.7.3 游戏界面的实现445 17.7.4 生成纹理id的方法448 17.8 游戏界面中主要场景的绘制449 17.8.1 游戏中背景、移表板、图标的绘制449 17.8.2 地图的绘制450 17.8.3 积木的绘制451 17.9 游戏界面的动画效果453 17.9.1 积木转动的动画效果453 17.9.2 游戏失败、获胜的动画效果457 17.10 游戏界面的碰撞检测458 17.11 游戏的优化与改进460 第18章 休闲类游戏—《摩天大楼》461 18.1 游戏的背景及功能概述461 18.1.1 背景概述461 18.1.2 功能简介461 18.2 游戏的策划及准备工作465 18.2.1 游戏的策划465 18.2.2 android平台下游戏的准备工作465 18.3 游戏的架构466 18.3.1 游戏中用到的主要技术466 18.3.2 各类的简要介绍467 18.3.3 游戏的框架简介468 18.4 游戏公共类的设计与实现469 18.4.1 主类gl_demo的实现469 18.4.2 游戏常量类的介绍474 18.5 游戏菜单界面类的设计与实现475 18.5.1 游戏开始菜单的框架设计475 18.5.2 游戏开始菜单的实现476 18.5.3 游戏帮助、关于、设置、加载及胜利界面的设计与实现481 18.6 游戏界面的设计与实现481 18.6.1 游戏界面的框架设计481 18.6.2 游戏界面的实现483 18.7 游戏界面中主要场景的绘制487 18.7.1 游戏中背景、地板、建筑块的绘制487 18.7.2 树的绘制487 18.8 游戏界面的碰撞检测488 18.9 游戏的优化与改进492 第19章 动作类游戏—《3d空战》493 19.1 游戏的背景及功能概述493 19.1.1 背景概述493 19.1.2 功能简介494 19.2 游戏的策划及准备工作496 19.2.1 游戏的策划496 19.2.2 android平台下游戏的准备工作497 19.3 游戏的架构498 19.3.1 游戏中用到的主要技术498 19.3.2 各类的简要介绍498 19.3.3 游戏的框架简介500 19.4 游戏公共类的设计与实现502 19.4.1 主类gl_demo的实现502 19.4.2 游戏常量类的介绍503 19.5 游戏菜单界面类的设计与实现504 19.5.1 游戏菜单的框架设计504 19.5.2 游戏菜单的实现506 19.5.3 游戏帮助、关于、设置、加载及胜利界面的设计与实现509 19.6 游戏界面的设计与实现509 19.6.1 游戏界面的框架设计509 19.6.2 游戏界面的实现511 19.7 游戏界面中飞机的绘制513 19.8 游戏中的运动线程和碰撞检测515 19.9 游戏的优化与改进525 第20章 桌面类游戏—《激情台球》527 20.1 游戏的背景及功能概述527 20.1.1 背景概述527 20.1.2 功能简介527 20.2 游戏的策划及准备工作531 20.2.1 游戏的策划531 20.2.2 android平台下游戏的准备工作532 20.3 游戏的架构533 20.3.1 游戏中用到的主要技术533 20.3.2 各类的简要介绍533 20.3.3 游戏的框架简介535 20.4 网络端的开发536 20.4.1 服务器的简要介绍536 20.4.2 服务器的代码介绍537 20.4.3 客户端线程的代码介绍542 20.5 游戏公共类的设计与实现545 20.5.1 主类myactivity的实现545 20.5.2 游戏常量类的介绍549 20.6 游戏菜单界面类的设计与实现551 20.6.1 游戏开始菜单的框架设计552 20.6.2 游戏菜单的动画实现555 20.6.3 游戏帮助、关于、设置及胜利等界面的设计与实现556 20.7 游戏界面的设计与实现557 20.7.1 游戏界面的框架设计557 20.7.2 游戏中onkeydown方法的实现558 20.7.3 游戏界面的实现560 20.8 游戏界面中主要场景的绘制563 20.8.1 仪表板、地板的绘制563 20.8.2 台球桌的绘制564 20.8.3 球的绘制566 20.9 游戏中的碰撞检测567 20.9.1 球与球台边角碰撞检测的原理567 20.9.2 球与球碰撞检测的原理569 20.9.3 球与球台边角碰撞检测的实现570 20.9.4 球与球碰撞检测的实现574 20.9.5 球运动线程的实现576 20.10 游戏的优化与改进578 第21章 射击类游戏—《抢滩登陆》579 21.1 游戏的背景及功能概述579 21.1.1 背景概述579 21.1.2 功能简介579 21.2 游戏的策划及准备工作583 21.2.1 游戏的策划583 21.2.2 android平台下游戏的准备工作583 21.3 游戏的架构584 21.3.1 游戏中用到的主要技术584 21.3.2 各类的简要介绍585 21.3.3 游戏的框架简介588 21.4 游戏公共类的设计与实现589 21.4.1 主类activity的实现590 21.4.2 游戏常量类的介绍594 21.5 游戏菜单界面类的设计与实现598 21.5.1 游戏菜单界面的框架设计598 21.5.2 游戏菜单界面的实现600 21.5.3 游戏帮助、关于及结束界面的设计与实现604 21.6 游戏界面的设计与实现605 21.6.1 游戏界面的框架设计605 21.6.2 游戏界面的实现607 21.7 游戏界面中主要场景的绘制及实物运动613 21.7.1 游戏中的绘制613 21.7.2 灯塔的整体绘制614 21.7.3 物体的运动实现616 21.8 游戏中的碰撞检测621 21.9 游戏的优化与改进625 第22章 竞技类游戏—《乡村飙车》627 22.1 游戏的背景及功能概述627 22.1.1 背景概述627 22.1.2 功能简介627 22.2 游戏的策划及准备工作631 22.2.1 游戏的策划631 22.2.2 android平台下游戏的准备工作632 22.3 游戏的框架介绍634 22.3.1 游戏中用到的主要技术634 22.3.2 各类的简单介绍635 22.3.3 游戏的框架介绍638 22.4 游戏公共类的设计与实现640 22.4.1 主类activity_gl_racing的实现640 22.4.2 游戏常量类的介绍645 22.5 游戏菜单类的设计与实现649 22.5.1 游戏主菜单的设计与实现650 22.5.2 游戏加载界面的设计与实现651 22.5.3 游戏历史界面的设计与实现656 22.5.4 游戏帮助、设置、关于、选择等界面的设计与实现658 22.6 游戏界面的设计与实现659 22.6.1 游戏界面的框架设计659 22.6.2 游戏界面的实现661 22.6.3 传感器应用与多点触控技术665 22.7 游戏界面中主要场景的绘制666 22.7.1 游戏界面中场景的分层绘制及渲染优化667 22.7.2 游戏界面中地图赛道的生成与绘制669 22.7.3 场景部件的绘制671 22.7.4 游戏中汽车的加载673 22.7.5 游戏中树的绘制技术677 22.7.6 场景中游戏辅助部件的绘制679 22.8 游戏中的碰撞检测及行驶圈数判定681 22.8.1 汽车与公路部件的碰撞检测683 22.8.2 汽车行驶圈数判定685 22.8.3 汽车与可碰撞部件的碰撞检测及其动画实现686 22.9 游戏的优化与改进688 |
商品评论(0条)