×
超值优惠券
¥50
100可用 有效期2天

全场图书通用(淘书团除外)

关闭
暂无评论
图文详情
  • ISBN:9787115433497
  • 装帧:暂无
  • 册数:暂无
  • 重量:暂无
  • 开本:32开
  • 页数:484
  • 出版时间:2016-10-01
  • 条形码:9787115433497 ; 978-7-115-43349-7

本书特色

本书共分17章,内容按照必知必会的OpenGL ES 3.x基础知识、基于实现基本特效以及真实大型应用、游戏案例开发的顺序进行详细地讲解。主要内容为:OpenGL ES 3.x的渲染管线介绍,OpenGL ES 3.x可编程渲染管线着色器的着色语言介绍,3D开发中投影、各种变换的原理与实现,介绍了OpenGL ES 3.x中光照的基本原理与实现、点法向量与面法向量的区别以及光照的每顶点计算与每片元计算的差别,介绍了纹理映射的基本原理与使用,介绍了使用OpenGL ES 3.0开发各种3D基本形状的实现,包括圆柱、圆锥、圆环、螺旋管、几何球以及贝塞尔曲线旋转面等内容,讲解了3D模型加载,介绍了混合和雾的基本原理与使用以及常用3D开发技巧,如标志板、天空盒、镜像绘制等,介绍了OpenGL ES 3.0中经常使用的几种剪裁与测试,包括剪裁测试、Alpha测试、模板测试以及任意剪裁平面等,讲解了传感器应用开发和Android 及iOS平台下的OpenGL ES开发。通过两大案例,如休闲类游戏3D可爱抓娃娃和3D楼盘展示系统把所学的知识应用起来,让读者尽快进入实战角色。 本书适合OpenGL ES 3D应用开发的初学者、程序员、游戏开发者,也适合作为大专院校相关专业师生的学习用书以及培训学校的教材。

内容简介

本书共分17章,内容按照必知必会的OpenGL ES 3.x基础知识、基于实现基本特效以及真实大型应用、游戏案例开发的顺序进行详细地讲解。主要内容为:OpenGL ES 3.x的渲染管线介绍,OpenGL ES 3.x可编程渲染管线着色器的着色语言介绍,3D开发中投影、各种变换的原理与实现,介绍了OpenGL ES 3.x中光照的基本原理与实现、点法向量与面法向量的区别以及光照的每顶点计算与每片元计算的差别,介绍了纹理映射的基本原理与使用,介绍了使用OpenGL ES 3.0开发各种3D基本形状的实现,包括圆柱、圆锥、圆环、螺旋管、几何球以及贝塞尔曲线旋转面等内容,讲解了3D模型加载,介绍了混合和雾的基本原理与使用以及常用3D开发技巧,如标志板、天空盒、镜像绘制等,介绍了OpenGL ES 3.0中经常使用的几种剪裁与测试,包括剪裁测试、Alpha测试、模板测试以及任意剪裁平面等,讲解了传感器应用开发和Android 及iOS平台下的OpenGL ES开发。*后,通过两大案例,如休闲类游戏3D可爱抓娃娃和3D楼盘展示系统把所学的知识应用起来,让读者尽快进入实战角色。 本书适合OpenGL ES 3D应用开发的初学者、程序员、游戏开发者,也适合作为大专院校相关专业师生的学习用书以及培训学校的教材。

目录

目录 第1章 Android概述 1 1.1 Android平台的特点及未来的趋势 1 1.1.1 全新理念带来的体验风暴 1 1.1.2 手机3D游戏和应用增长 迅速 2 1.2 搭建Android开发环境 2 1.2.1 JDK的安装及环境变量的 配置 2 1.2.2 Android SDK的下载与配置 4 1.2.3 Eclipse集成开发环境的下载与配置 5 1.2.4 创建并启动模拟器 8 1.3 Hello Android应用程序的开发 10 1.3.1 **个Android应用程序 10 1.3.2 Android应用程序的项目 结构 13 1.3.3 Android应用程序的调试 14 1.3.4 实际设备的联机调试 16 1.4 已有Android项目的导入和运行 16 1.4.1 项目的导入 16 1.4.2 应用程序的运行 17 1.5 Android应用程序运行的机制 18 1.5.1 应用程序的系统架构 18 1.5.2 应用程序框架 18 1.5.3 Android运行时 19 1.5.4 系统库 19 1.5.5 底层Linux内核 20 1.6 小结 20 第2章 游戏开发相关的 Android基础知识 21 2.1 游戏中的音效 21 2.1.1 游戏中的即时音效 21 2.1.2 即时音效的一个案例 22 2.1.3 背景音乐播放技术 24 2.1.4 简易音乐播放器的实现 26 2.2 简单数据的存储—Preferences 29 2.2.1 Preferences简介 29 2.2.2 Preferences实现访问时间的 记录 29 2.3 手机自带数据库—SQLite 30 2.3.1 初识SQLite 30 2.3.2 SQLite数据库的基本操作 31 2.3.3 SQLite数据库的简单案例 32 2.3.4 使用ContentProvider组件 共享数据 34 2.3.5 使用ContentResolver获取 分享数据 36 2.4 文件I/O 37 2.4.1 访问SD卡中的文件 38 2.4.2 访问手机中的文件夹 39 2.4.3 读取assets文件夹下的内容 41 2.5 Socket网络通信 42 2.5.1 Socket开发基本知识 42 2.5.2 服务器端 43 2.5.3 客户端 44 2.6 蓝牙通信 45 2.6.1 蓝牙通信的基本知识 45 2.6.2 聊天案例概览 46 2.6.3 聊天案例的开发过程 47 2.7 小结 57 第3章 初识OpenGL ES 3.x 58 3.1 OpenGL ES 3.x概述 58 3.1.1 OpenGL ES 3.x简介 58 3.1.2 初识OpenGL ES 3.0应用 程序 61 3.1.3 OpenGL ES 3.1新特性简介 68 3.2 着色器与渲染管线 68 3.2.1 OpenGL ES 2.0的渲染管线 68 3.2.2 OpenGL ES 3.0的渲染管线 74 3.2.3 OpenGL ES中立体物体的 构建 76 3.3 主流手机GPU大PK 77 3.3.1 手机GPU四大家族对比 77 3.3.2 主流GPU的性能参数比较 80 3.4 小结 81 第4章 着色语言Shading Language 82 4.1 着色语言概述 82 4.2 着色语言基础 82 4.2.1 数据类型概述 83 4.2.2 数据类型的基本使用 87 4.2.3 运算符 89 4.2.4 构造函数 91 4.2.5 类型转换 92 4.2.6 存储限定符 93 4.2.7 插值限定符 98 4.2.8 一致块 99 4.2.9 layout限定符 100 4.2.10 流程控制 102 4.2.11 函数的声明与使用 104 4.2.12 片元着色器中浮点变量精度的指定 105 4.2.13 程序的基本结构 106 4.3 特殊的内建变量 106 4.3.1 顶点着色器中的内建变量 106 4.3.2 片元着色器中的内建变量 107 4.3.3 内建常量 108 4.3.4 内建uniform变量 108 4.4 着色语言的内置函数 109 4.4.1 角度转换与三角函数 109 4.4.2 指数函数 110 4.4.3 常见函数 111 4.4.4 几何函数 114 4.4.5 矩阵函数 116 4.4.6 向量关系函数 116 4.4.7 纹理采样函数 117 4.4.8 微分函数 120 4.4.9 浮点数的打包与解包函数 120 4.5 用invariant修饰符避免值变问题 121 4.6 预处理器 122 4.7 小结 123 第5章 必知必会的3D开发知识— 投影及各种变换 124 5.1 摄像机的设置 124 5.2 两种投影方式 125 5.2.1 正交投影 125 5.2.2 透视投影 132 5.3 各种变换 134 5.3.1 基本变换的相关数学知识 134 5.3.2 平移变换 135 5.3.3 旋转变换 138 5.3.4 缩放变换 139 5.3.5 基本变换的实质 140 5.4 所有变换的完整流程 141 5.5 绘制方式 144 5.5.1 各种绘制方式概览 145 5.5.2 点与线段绘制方式 146 5.5.3 三角形条带与扇面绘制方式 147 5.5.4 顶点法与索引法 151 5.5.5 layout限定符的使用 155 5.6 顶点常量属性 156 5.6.1 顶点常量基本知识 156 5.6.2 一个简单的案例 156 5.7 设置合理的视角 158 5.8 设置合理的透视参数 163 5.9 多边形偏移 166 5.10 卷绕和背面剪裁 168 5.10.1 基本知识 168 5.10.2 一个简单的案例 169 5.11 小结 170 第6章 光照 171 6.1 曲面物体的构建 171 6.1.1 球体构建的基本原理 171 6.1.2 案例效果概览 172 6.1.3 开发步骤 172 6.2 基本光照效果 175 6.2.1 光照的基本模型 175 6.2.2 环境光 175 6.2.3 散射光 177 6.2.4 镜面光 181 6.2.5 三种光照通道的合成 185 6.3 定位光与定向光 187 6.4 点法向量和面法向量 189 6.5 光照的每顶点计算与每片元计算 191 6.6 小结 193 第7章 纹理映射 194 7.1 初识纹理映射 194 7.1.1 基本原理 194 7.1.2 一个简单的案例 195 7.1.3 色彩通道的灵活组合 199 7.2 纹理拉伸 201 7.2.1 三种拉伸方式概览 201 7.2.2 不同拉伸方式的案例 203 7.3 纹理采样 207 7.3.1 纹理采样概述 207 7.3.2 *近点采样 207 7.3.3 线性纹理采样 208 7.3.4 MIN与MAG采样 209 7.3.5 不同纹理采样方式的案例 210 7.4 mipmap纹理技术 214 7.5 多重纹理与过程纹理 215 7.5.1 案例概览 215 7.5.2 将2D纹理映射到球面上的 策略 216 7.5.3 案例的场景结构 217 7.5.4 开发过程 218 7.6 压缩纹理的使用 224 7.7 点精灵 226 7.7.1 基本知识 226 7.7.2 一个简单案例 227 7.8 3D纹理 229 7.9 2D纹理数组 233 7.10 采样器配置对象的使用 237 7.11 小结 239 第8章 3D基本形状的构建 240 8.1 圆柱体 240 8.1.1 顶点原始位置的生成 240 8.1.2 案例的开发 242 8.2 圆锥体 244 8.2.1 顶点原始位置的生成 244 8.2.2 案例的开发 246 8.3 圆环体 248 8.3.1 顶点原始位置的生成 248 8.3.2 案例的开发 249 8.4 螺旋管 250 8.4.1 顶点原始位置的生成 250 8.4.2 案例的开发 251 8.5 几何球 252 8.5.1 顶点原始位置的生成 252 8.5.2 案例的开发 254 8.6 足球碳分子模型的搭建 259 8.6.1 搭建的基本原理 259 8.6.2 案例的开发 261 8.7 贝塞尔曲线及旋转面 264 8.7.1 三维旋转曲面的生成 264 8.7.2 贝塞尔曲线 265 8.7.3 Bezier曲线生成工具 266 8.7.4 印度古典建筑场景的开发 268 8.8 小结 269 第9章 更逼真的游戏场景——3D模型 加载 270 9.1 obj模型文件概述 270 9.1.1 obj文件的格式 270 9.1.2 用3ds Max设计3D模型 271 9.2 加载obj文件 272 9.2.1 加载仅有顶点坐标与面数据的obj文件 272 9.2.2 加载后自动计算面法向量 275 9.2.3 加载后自动计算平均法 向量 278 9.2.4 加载纹理坐标 280 9.2.5 加载顶点法向量 283 9.3 双面光照 284 9.4 小结 286 第10章 独特的场景渲染技术—混合与雾 287 10.1 混合技术 287 10.1.1 混合基本知识 287 10.1.2 源因子和目标因子 288 10.1.3 简单混合效果案例 290 10.1.4 ETC2压缩纹理的使用 292 10.2 地月系云层效果的实现 295 10.3 雾 297 10.3.1 雾的原理与优势 297 10.3.2 雾的简单实现 298 10.4 小结 300 第11章 常用的3D开发技巧— 标志板、天空盒、镜像绘制等 301 11.1 标志板 301 11.1.1 案例效果与基本原理 301 11.1.2 开发步骤 302 11.2 灰度图地形 305 11.2.1 基本原理 306 11.2.2 普通灰度图地形 306 11.2.3 过程纹理地形 309 11.2.4 MipMap地形 311 11.2.5 顶点着色器采样纹理地形 312 11.3 用粒子沉积算法构建地形 314 11.3.1 粒子沉积法的基本原理 314 11.3.2 地形设计器的使用 316 11.3.3 粒子沉积的核心算法类 318 11.4 天空盒与天空穹 319 11.4.1 天空盒 319 11.4.2 天空穹 321 11.4.3 天空盒与天空穹的使用技巧 322 11.5 简单镜像效果 323 11.5.1 镜像基本原理 323 11.5.2 基本效果案例 323 11.5.3 升级效果案例 326 11.6 动态文本输出 327 11.6.1 案例效果与基本原理 327 11.6.2 具体开发步骤 327 11.7 非真实感绘制 329 11.7.1 基本原理与案例效果 329 11.7.2 具体开发步骤 331 11.8 描边效果的实现 333 11.8.1 沿法线挤出轮廓 333 11.8.2 在视空间中挤出 335 11.9 小结 336 第12章 渲染出更加酷炫的3D场景—几种剪裁与测试 337 12.1 剪裁测试 337 12.1.1 基本原理与核心代码 337 12.1.2 一个主次视角的简单案例 337 12.2 Alpha测试 338 12.2.1 Alpha测试基本原理 339 12.2.2 一个椭圆窗口的案例 339 12.3 模板测试 341 12.3.1 基本原理 341 12.3.2 一个简单的案例 343 12.4 任意剪裁平面 344 12.4.1 基本原理 344 12.4.2 茶壶被任意平面剪裁的案例 345 12.5 小结 346 第13章 引人入胜的游戏特性—传感器应用开发 347 13.1 基本的开发流程 347 13.2 加速度传感器 349 13.2.1 加速度传感器简介 349 13.2.2 案例的开发 350 13.3 磁场传感器 351 13.3.1 磁场传感器简介 351 13.3.2 案例的开发 351 13.4 陀螺仪传感器 352 13.4.1 陀螺仪传感器简介 352 13.4.2 案例的开发 353 13.5 光传感器 354 13.5.1 光传感器简介 354 13.5.2 案例的开发 354 13.6 温度传感器 355 13.6.1 温度传感器简介 355 13.6.2 案例的开发 355 13.7 接近传感器 356 13.7.1 接近传感器简介 357 13.7.2 案例的开发 357 13.8 姿态传感器 358 13.8.1 姿态传感器简介 358 13.8.2 案例的开发 360 13.9 加速度传感器综合案例 361 13.10 传感器的坐标轴问题 363 13.11 小结 366 第14章 Android NDK及iOS 平台下的OpenGL ES开发 367 14.1 使用Android NDK进行OpenGL ES开发 367 14.1.1 Android NDK开发环境的下载及配置 367 14.1.2 Android NDK项目在Eclipse中的配置 370 14.1.3 使用Android NDK开发简单的OpenGL ES 3.0程序 371 14.2 使用Android NDK开发山地地形场景 378 14.2.1 案例效果及山地绘制类的开发 379 14.2.2 NDK端渲染函数的开发 380 14.3 基于iOS平台开发OpenGL ES 3.0程序 382 14.3.1 案例运行效果及Xcode项目的创建 382 14.3.2 案例的开发过程 385 14.4 基于iOS平台的地月系场景案例 390 14.4.1 案例的运行效果 391 14.4.2 案例的开发过程 391 14.5 小结 394 第15章 Web端3D游戏开发——WebGL 3D应用开发 395 15.1 WebGL概览 395 15.1.1 WebGL简介 395 15.1.2 WebGL效果展示 396 15.2 初识WebGL应用 396 15.2.1 WebGL应用案例部署运行步骤简介 397 15.2.2 简单渲染3D模型案例的开发 397 15.3 加入光照效果的WebGL案例 404 15.4 带有纹理贴图的WebGL案例 407 15.4.1 一个简单的案例 408 15.4.2 WebGL版的地月系案例 411 15.5 小结 413 第16章 休闲类游戏—3D可爱抓娃娃 414 16.1 游戏的背景及功能概述 414 16.1.1 背景描述 414 16.1.2 功能介绍 414 16.2 游戏的策划及准备工作 417 16.2.1 游戏的策划 417 16.2.2 手机平台下游戏的准备工作 418 16.3 游戏的架构 420 16.3.1 各个类的简要介绍 420 16.3.2 游戏框架简介 423 16.4 界面显示类 424 16.4.1 显示界面类MySurfaceView 424 16.4.2 游戏界面类GameView 426 16.4.3 游戏主菜单界面类MainView 430 16.5 辅助工具类 431 16.5.1 辅助类 432 16.5.2 自定义管理器类 436 16.5.3 线程类 439 16.6 绘制相关类 441 16.6.1 3D模型绘制类的开发 441 16.6.2 BN2DObject绘制类的开发 442 16.7 粒子系统的开发 444 16.7.1 基本原理 444 16.7.2 开发步骤 444 16.8 本游戏中的着色器 447 16.9 游戏的优化及改进 449 16.10 小结 449 第17章 基于WebGL的3D 楼盘展示系统 450 17.1 应用背景及功能概述 450 17.1.1 背景概述 450 17.1.2 功能介绍 450 17.2 功能预览及架构 451 17.2.1 基于WebGL的3D楼盘展示系统功能预览 451 17.2.2 基于WebGL的3D楼盘展示系统目录结构 454 17.3 Web平台下应用开发前的准备工作 455 17.3.1 图片资源的搜集 455 17.3.2 模型资源的采集 456 17.4 地图设计器的开发 457 17.4.1 地图设计器的开发设计思路 457 17.4.2 地图设计器的框架介绍 458 17.4.3 地图设计器的开发步骤 458 17.5 公共函数介绍 461 17.5.1 工具函数文件GLUtil.js 461 17.5.2 obj加载文件LoadObjUtil.js 463 17.5.3 着色器加载文件LoadShaderUtil.js 464 17.5.4 3D物体绘制文件ObjObject.js 465 17.5.5 矩阵操作函数文件MatrixState.js 466 17.6 物体创建及绘制相关函数介绍 467 17.6.1 创建普通物体文件loadObject.js 467 17.6.2 地面绘制文件DrawLandMaps.js 468 17.6.3 普通按钮绘制文件DrawButton.js 470 17.7 各个功能模块的实现 470 17.7.1 主界面mainView.html的开发 470 17.7.2 楼房模型界面houseModel.html的实现 475 17.7.3 户体模型界面roomType.html的开发 477 17.7.4 小区浏览界面residentialGarden.html的实现 478 17.8 应用中运用的着色器介绍 481 17.8.1 普通物体着色器 481 17.8.2 不带光照物体着色器 483 17.8.3 天空盒着色器 483 17.9 应用的优化与改进 484 17.10 小结 484信息
展开全部

作者简介

吴亚峰,毕业于北京邮电大学,后留学澳大利亚卧龙岗大学取得硕士学位。1998年开始从事Java应用的开发,有10多年的Java开发与培训经验。主要的研究方向为OpenGL ES、手机游戏、Java EE以及搜索引擎。同时为手机游戏、Java EE独立软件开发工程师,并兼任百纳科技Java培训中心首席培训师。近十年来为数十家杰出企业培养了上千名高级软件开发人员,曾编写过《Android 3D游戏案例开发大全》、《Android平板电脑开发实战详解和典型案例》、《Android游戏开发大全》、《Android应用案例开发大全》、《Unity 3D游戏开发技术详解与典型案例》等多本畅销技术书籍。2008年年初开始关注Android平台下的应用开发,并开发出一系列杰出的Android 3D应用程序与游戏。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航