大小:15.01M
更新时间:23-08-28
系统:Pc
OpenGL ES 3.x 游戏开发(下卷)是一本基于OpenGL ES 3.x软件而编写的游戏开发设计指导书籍,由吴亚峰编著。全书组织上本着“起点低、终点高”的原则,内容涵盖了从学习OpenGL ES 3.x必知必会的基础知识到OpenGL ES 3.x实现各种高级特效,并配合每个需要讲解的知识点给出了丰富的插图与完整的案例,使有初学者可以更轻松的上手,也便于有一定基础的读者深入学习,适用于游戏开发者使用,欢迎免费下载阅读。
《OpenGL ES 3.x 游戏开发(下卷)》全书共分14章,内容涵盖了从OpenGL ES 3.x着色器的使用技巧到高级光影效果以及物理模拟问题的解决。介绍了OpenGL ES 3.x中的各种缓冲区对象和顶点着色器与片元着色器的使用技巧,以及高级光影效果的实现,如凹凸映射、环境反射、阴影、倒影、镜头光晕等。介绍了杰出的3D物理引擎Bullet(Java和C++版本),详细介绍了骨骼动画的开发,包括加载ms3d骨骼动画以及开发自定义格式的骨骼动画。系统地讨论了OpenGL ES 3.x开发中的性能优化问题,最后还介绍了OpenGL ES 3.1新增的计算着色器功能。给出了基于NDK的大型游戏案例——火力篮球和iOS下的3D游戏案例——方块翻转,方便读者快速上手应用。
第1章 缓冲区对象 1 1.1 顶点缓冲区 1 1.1.1 基本知识 1 1.1.2 一个简单的案例 4 1.2 顶点数组对象 6 1.2.1 基本知识与案例效果 6 1.2.2 案例开发步骤 7 1.3 一致缓冲区对象 8 1.3.1 基本知识与案例效果 9 1.3.2 案例开发步骤 10 1.4 映射缓冲区对象 13 1.4.1 基本知识与案例效果 13 1.4.2 案例开发步骤 15 1.5 其他缓冲区对象操作 18 1.5.1 复制缓冲区对象 18 1.5.2 从颜色缓冲区复制纹理数据 18 1.6 帧缓冲与渲染缓冲 20 1.6.1 帧缓冲与渲染缓冲对象 20 1.6.2 案例开发步骤 23 1.7 多重渲染目标 26 1.7.1 基本知识 26 1.7.2 一个简单的案例 26 1.8 小结 29 第2章 顶点着色器的妙用 30 2.1 飘扬的旗帜 30 2.1.1 基本原理 30 2.1.2 开发步骤 31 2.2 扭动的软糖 33 2.2.1 基本原理 33 2.2.2 开发步骤 34 2.3 风吹椰林场景的开发 35 2.3.1 椰子树随风摇摆的基本原理 35 2.3.2 开发步骤 36 2.4 展翅飞翔的雄鹰 39 2.4.1 基本原理 39 2.4.2 开发步骤 40 2.5 二维扭曲 42 2.5.1 基本原理 42 2.5.2 开发步骤 43 2.6 吹气膨胀特效 45 2.6.1 特效基本原理 46 2.6.2 特效开发步骤 46 2.7 固定渲染管线与可编程渲染管线实现方案的对比 48 2.8 小结 49 第3章 片元着色器的妙用 50 3.1 程序纹理技术 50 3.1.1 砖块着色器 50 3.1.2 沙滩球着色器 52 3.2 数字图像处理 53 3.2.1 卷积的基本知识 53 3.2.2 平滑过滤 54 3.2.3 边缘检测 55 3.2.4 锐化处理 56 3.2.5 浮雕效果 56 3.2.6 图像渐变 58 3.2.7 卡通渲染特效 59 3.3 分形着色器 60 3.3.1 曼德布罗集简介 61 3.3.2 曼德布罗集着色器的实现 61 3.3.3 将曼德布罗集纹理应用到实际物体上 63 3.3.4 茱莉亚集着色器的实现 63 3.4 3D纹理的妙用 65 3.4.1 噪声函数的基础知识 65 3.4.2 柏林噪声函数生成工具 68 3.4.3 3D噪声纹理木头茶壶的 开发 69 3.5 体积雾 72 3.5.1 基本原理 72 3.5.2 开发步骤 73 3.6 粒子系统火焰的开发 75 3.6.1 火焰的基本原理 75 3.6.2 普通版火焰 77 3.6.3 点精灵版火焰 82 3.6.4 变换反馈版火焰 85 3.7 小结 89 第4章 真实光学环境的模拟 90 4.1 反射环境模拟 90 4.1.1 案例效果与基本原理 90 4.1.2 反射环境开发步骤 91 4.2 折射环境模拟 93 4.2.1 案例效果与基本原理 93 4.2.2 开发步骤 95 4.3 色散效果的模拟 96 4.3.1 案例效果与基本原理 96 4.3.2 开发步骤 97 4.4 菲涅尔效果的模拟 97 4.4.1 案例效果与基本原理 97 4.4.2 菲涅尔效果开发步骤 98 4.5 凹凸映射 99 4.5.1 案例效果与基本原理 99 4.5.2 法向量纹理图的生成 100 4.5.3 切向量的计算 103 4.5.4 案例的开发 105 4.5.5 使用3ds Max制作法向量 纹理图 109 4.6 高真实感地形 111 4.6.1 基本思路 111 4.6.2 一个简单的案例 112 4.7 镜头光晕 115 4.7.1 基本原理 115 4.7.2 一个简单的案例 116 4.8 小结 119 第5章 阴影及高级光照 120 5.1 投影贴图 120 5.1.1 案例效果与基本原理 120 5.1.2 开发步骤 121 5.2 阴影的重要性 123 5.3 平面阴影 125 5.3.1 案例效果与基本原理 125 5.3.2 开发步骤 126 5.4 阴影映射 129 5.4.1 阴影映射案例效果与基本 原理 129 5.4.2 距离纹理图的生成 130 5.4.3 阴影场景的绘制 135 5.5 阴影贴图 138 5.5.1 案例效果与基本原理 138 5.5.2 开发步骤 139 5.6 静态光照贴图 140 5.6.1 案例效果与基本原理 140 5.6.2 使用3ds Max制作静态光照 贴图 141 5.6.3 案例的开发 142 5.7 聚光灯高级光源 144 5.7.1 案例效果与基本原理 144 5.7.2 案例的开发 145 5.8 半球光照 146 5.8.1 案例效果与基本原理 146 5.8.2 案例的开发 148 5.9 光线跟踪 149 5.9.1 光线跟踪案例效果与基本 原理 149 5.9.2 光线跟踪开发步骤 153 5.10 高级镜像技术 162 5.10.1 案例效果与基本原理 162 5.10.2 开发步骤 163 5.11 高真实感水面倒影 168 5.11.1 案例效果与基本原理 168 5.11.2 开发步骤 170 5.12 运动模糊 175 5.12.1 普通运动模糊 176 5.12.2 高级运动模糊 179 5.13 小结 183 第6章 游戏开发中的物理学 184 6.1 碰撞检测基本技术 184 6.1.1 AABB包围盒的基本原理 184 6.1.2 AABB包围盒的计算 185 6.1.3 AABB包围盒的碰撞检测 186 6.1.4 一个AABB包围盒的案例 188 6.1.5 旋转后的AABB包围盒 189 6.1.6 AABB包围盒的使用要点 193 6.1.7 OBB包围盒 193 6.2 穿透效应 194 6.2.1 案例的运行效果与基本 原理 194 6.2.2 具体开发步骤 195 6.3 粒子系统 195 6.3.1 案例运行效果与基本原理 195 6.3.2 CPU版案例的开发 196 6.3.3 GPU版案例开发步骤 197 6.4 弹簧质点模型模拟旗帜 199 6.4.1 弹簧质点模型基本原理 199 6.4.2 弹簧质点模型案例的运行效果及开发步骤 200 6.5 弹簧质点模型模拟球网 208 6.5.1 弹簧质点模型的基本原理 209 6.5.2 弹簧质点模型的案例的运行效果及开发步骤 209 6.6 小结 211 第7章 3D物理引擎一——JBullet 212 7.1 物理引擎很重要 212 7.1.1 什么是物理引擎 212 7.1.2 常见的物理引擎 212 7.2 JBullet物理引擎概览 214 7.2.1 基本的物理学概念 215 7.2.2 JBullet中常用类的介绍 216 7.3 箱子相互碰撞的案例 223 7.3.1 案例运行效果及准备工作 223 7.3.2 案例的基本框架结构 224 7.3.3 常量类——Constant 225 7.3.4 3D场景渲染类——MySurfaceView 225 7.3.5 水平地面——TexFloor类 227 7.3.6 箱子——TexCube类 228 7.4 复合碰撞形状的使用 229 7.4.1 案例运行效果 229 7.4.2 立方体圆柱复合形状——CubeCylinder类 229 7.5 凹凸地形的案例 231 7.5.1 案例运行效果 231 7.5.2 地形类——LandForm 232 7.6 任意形状物体的碰撞 233 7.6.1 案例运行效果 233 7.6.2 加载物体类——LoadedObject VertexNormal 233 7.6.3 加载物体刚体类——LoadRigidBody 234 7.7 铰链关节 235 7.7.1 铰链关节的基本知识 235 7.7.2 铰链关节案例的运行效果 236 7.7.3 铰链关节旋转角速度的计算 237 7.7.4 3D界面渲染类——MySurfaceView 238 7.8 滑动关节 240 7.8.1 滑动关节的基本知识 240 7.8.2 案例效果图 241 7.8.3 3D界面渲染类——MySurfaceView 241 7.9 六自由度关节 244 7.9.1 六自由度关节的基本知识 244 7.9.2 六自由度关节案例的运行 效果 245 7.9.3 人偶类——Doll 246 7.9.4 拾取时采用的点对点关节 247 7.10 交通工具 250 7.10.1 交通工具开发要点 250 7.10.2 交通工具案例的运行 效果 251 7.10.3 3D场景渲染类—— MySurfaceView 251 7.10.4 汽车类——Car 253 7.10.5 汽车绘制类—— VehicleDraw 257 7.11 小结 258 第8章 3D物理引擎二——Bullet 259 8.1 Bullet中的常用类和结构体 259 8.1.1 btScalar类——被封装的 浮点类 259 8.1.2 btVector3类——三维向量类 259 8.1.3 btTransform类——变换类 261 8.1.4 btRigidBody类——刚体类 262 8.1.5 btDynamicsWorld类——物理世界类 263 8.1.6 btDiscreteDynamicsWorld类—— 离散物理世界类 264 8.1.7 btSoftRigidDynamicsWorld类——支持模拟软体的物理 世界类 264 8.1.8 btCollisionShape类——碰撞形状类 265 8.1.9 btStaticPlaneShape类——静态平面形状 265 8.1.10 btSphereShape类——球体形 状类 266 8.1.11 btBoxShape类——长方体盒 碰撞形状类 266 8.1.12 btCylinderShape类——圆柱 形状类 266 8.1.13 btCapsuleShape类——胶囊 形状类 266 8.1.14 btConeShape类——圆锥形 状类 267 8.1.15 btCompoundShape类——复 合碰撞形状类 267 8.2 简单的物理场景 267 8.2.1 案例运行效果 267 8.2.2 案例的基本框架结构 268 8.2.3 3D场景渲染类——GL2JNIView类 269 8.2.4 主控制类——HelloBulletActivity类 271 8.2.5 本地方法声明及动态库加载类——JNIPort类 272 8.2.6 封装的物体类——TexBody 类 273 8.2.7 矩形绘制类——TextrueRect 类 273 8.2.8 长方体物体类——TexCuboid 类 276 8.2.9 水平地面类——TexPlane类 278 8.2.10 初始化及渲染函数文件—— main.cpp 279 8.3 各式各样的物体下落 281 8.3.1 案例运行效果 281 8.3.2 圆锥物体类——TexCone类 282 8.3.3 球物体类——TexBall类 284 8.3.4 胶囊物体类—— TexCapsule类 285 8.3.5 圆柱物体类——TexCylinderShape类 287 8.3.6 初始化及渲染函数文件——main.cpp 289 8.4 旋转的陀螺 290 8.4.1 案例运行效果 290 8.4.2 陀螺物体类——MyCompoundShape类 290 8.4.3 初始化及渲染函数文件——main.cpp 292 8.5 消失的木块 292 8.5.1 案例运行效果 292 8.5.2 初始化及渲染函数文件——main.cpp 293 8.6 物体碰撞下落 295 8.6.1 案例运行效果 295 8.6.2 初始化及渲染函数文件——main.cpp 296 8.7 关节 297 8.7.1 关节的父类——btTypedConstraint类 297 8.7.2 铰链关节——btHingeConstraint类 297 8.7.3 铰链关节的案例——球落 门开 299 8.7.4 齿轮关节——btGearConstraint类 300 8.7.5 齿轮关节的案例——转动的齿轮 301 8.7.6 点对点关节——btPoint2Point Constraint类 302 8.7.7 点对点关节的案例——悬挂的物体 303 8.7.8 滑动关节——btSliderConstraint类 304 8.7.9 滑动关节的案例——六个方向的物体滑动 305 8.7.10 六自由度关节——btGeneric6 DofConstraint类 308 8.7.11 六自由度关节的案例——掉 落的蜘蛛 309 8.8 三角形网格形状类 311 8.8.1 三角形索引数组类——btTriangle IndexVertexArray类 311 8.8.2 层次包围结构三角形网格形状类——btBvhTriangleMesh Shape类 312 8.8.3 层次包围结构三角形网格形状类的案例——波动的水纹 313 8.9 交通工具类 316 8.9.1 交通工具类——btRaycastVehicle类 317 8.9.2 交通工具的案例——移动的小车 318 8.10 固定三角形网格形状类 324 8.10.1 固定三角形网格形状类—— btGImpactMeshShape类 324 8.10.2 固定形状物体案例 325 8.11 软体 327 8.11.1 软体帮助类——btSoftBody Helps类 327 8.11.2 软布案例 328 8.11.3 三角形网格软体案例 331 8.11.4 绳索软体案例 334 8.12 光线投射回调结构体 336 8.12.1 光线投射回调结构体 ClosestRayResultCallback 336 8.12.2 光线投射的案例——旋转 光线 337 8.13 小结 339 第9章 骨骼动画 340 9.1 自己开发骨骼动画 340 9.1.1 骨骼动画的基本原理 340 9.1.2 开发步骤 343 9.1.3 机器人模型在地面上运动时的问题 348 9.2 ms3d文件的加载 351 9.2.1 ms3d文件的格式 351 9.2.2 将3ds Max动画文件转换为ms3d文件 355 9.2.3 Java语言加载ms3d文件案例的开发 359 9.2.4 C++语言加载ms3d文件案例的开发 372 9.3 自定义格式骨骼动画的加载 373 9.3.1 bnggdh文件的格式 373 9.3.2 Bnggdh类 376 9.3.3 加载bnggdh文件的案例 377 9.4 小结 379 第10章 必知必会的开发技术—— 游戏开发小贴士 380 10.1 3D拾取技术 380 10.1.1 3D拾取案例效果与基本 原理 380 10.1.2 开发步骤 382 10.2 多点触控 386 10.2.1 多点触控案例效果与基本 原理 386 10.2.2 开发步骤 387 10.3 多键监听 389 10.3.1 案例效果与基本原理 389 10.3.2 开发步骤 390 10.4 小结 392 第11章 让应用运行更流畅—— 性能优化 393 11.1 着色器的优化 393 11.1.1 计算量与计算频率相关的 问题 393 11.1.2 其他需要注意的问题 394 11.2 纹理图的优化 395 11.3 3D图形绘制的优化 396 11.3.1 CPU阶段的优化 396 11.3.2 几何阶段的优化 397 11.3.3 光栅化阶段的优化 398 11.3.4 使用帧缓冲区对象时的性能 问题 398 11.3.5 尽量减少状态的变化 399 11.4 图元重启 399 11.4.1 基本原理 399 11.4.2 一个简单的案例 400 11.5 几何体实例渲染 401 11.5.1 基本原理 401 11.5.2 一个简单的案例 402 11.5.3 基于实例渲染的海量草地 403 11.6 着色器程序的外部加载 406 11.7 计算着色器的使用 409 11.7.1 基本知识 409 11.7.2 动态法向量光照水面 案例 413 11.8 小结 418 第12章 杂项 419 12.1 遮挡查询 419 12.1.1 相关方法 419 12.1.2 案例开发步骤 420 12.2 增强现实基础 422 12.2.1 基本知识与案例效果 422 12.2.2 一个简单的案例 423 12.3 保存屏幕图像 426 12.4 读取Android系统的GPU参数 428 12.5 多重采样抗锯齿 429 12.5.1 基本知识与案例效果 429 12.5.2 一个简单的案例 430 12.6 小结 431 第13章 Android NDK体育竞技 游戏——火力篮球 432 13.1 游戏背景及功能简述 432 13.1.1 背景概述 432 13.1.2 功能介绍 432 13.2 游戏的策划及准备工作 434 13.2.1 游戏的策划 434 13.2.2 Android平台下游戏开发的 准备工作 435 13.3 游戏的架构 436 13.3.1 各个类简要介绍 436 13.3.2 游戏的框架简介 438 13.4 游戏公共类 439 13.4.1 游戏入口类——BasketBullet Activity 439 13.4.2 场景渲染类—— GL2JNIView 440 13.4.3 本地方法声明及动态库加载 类——JNIPort 442 13.4.4 现实本地方法的相关文件 ——jni_code.c 443 13.4.5 现实本地方法的相关文件 ——main.cpp 443 13.5 辅助界面相关类 446 13.5.1 着色器管理类——ShaderManager 446 13.5.2 着色器脚本的开发 448 13.5.3 数据库工具类—— SQLiteUtil 452 13.5.4 纹理矩形类—— TextureRect 454 13.5.5 游戏资源加载界面类——LoadingView 456 13.5.6 菜单界面类——MenuView 458 13.5.7 记录界面类—— RecordView 460 13.6 游戏界面相关类 462 13.6.1 游戏界面类—— GameView 462 13.6.2 墙面刚体封装类—— TexCuboid 467 13.6.3 篮球刚体封装类—— TexBall 468 13.6.4 任何形状类—— AnyShapeByVectices 470 13.6.5 任何形状刚体封装类—— TexTriangleMesh 473 13.6.6 任何形状软体封装类—— SoftObj 474 13.7 游戏的优化及改进 476 第14章 iOS休闲类游戏——方块翻转 477 14.1 游戏背景及功能概述 477 14.1.1 游戏背景概述 477 14.1.2 游戏功能介绍 477 14.2 游戏的策划及准备工作 480 14.2.1 游戏的策划 480 14.2.2 手机平台下游戏的准备 工作 480 14.3 游戏的架构 482 14.3.1 各个类简要介绍 482 14.3.2 游戏框架简介 484 14.4 界面显示类 485 14.4.1 GLView类 485 14.4.2 显示界面类RenderingEngine2 486 14.4.3 游戏界面类GameView 488 14.4.4 帮助界面类HelpView 491 14.5 辅助工具类 493 14.5.1 常量类Constant 493 14.5.2 计算交点坐标辅助类 IntersectantUtil 494 14.6 绘制相关类 495 14.6.1 3D模型绘制类的开发 495 14.6.2 2D物体绘制类的开发 500 14.7 游戏的优化及改进 501 14.8 小结 502
1、下载并解压,得出pdf文件
2、如果打不开本文件,请务必下载pdf阅读器
3、安装后,在打开解压得出的pdf文件
4、双击进行阅读
同类热门
类似软件
opengl超级宝典第五版111.39M495人在用opengl超级宝典第五版是由Richard.Wright,Jr.Nicholas Haemel和Graham Sellers Benjamin Lipchak所编著的一本OpenGL及3D图形编程最好的入门指南书籍,涵盖了使用最新版本的OpenGL进行
查看opengl编程指南第8版17.23M335人在用opengl编程指南第8版是一本一站式服务的opengl书籍,包含了最前沿的接口标准和新特性的内容,以及对于应用在各行各业的现代OpenGL技术的脚踏实地的讲解。由(美)施莱尔(Shreiner, D.)等著;王锐等译,机械工业出版社发行。opengl编
查看opengl es 2.0编程指南1.96M389人在用opengl es 2.0编程指南是一本pdf中文版的电子图书,已经附带了pdf阅读器在软件包中,用户即下即用。OpenGL ES 2.0是本书中要讲的API,目标是讲述完整的细节(核心和扩展),给出怎么使用的例子,讨论各种优化技术,读完本书希望能你能懂
查看热门标签
网友评论0人参与,0条评论
最新排行
全唐诗检索工具官方版8.94Mv1.0 全唐诗检索工具官方版是由网友采用Python开发的一款唐诗查询工具,绿色小巧,安全无毒。该软件导入了《全唐诗》书籍中的全部诗词内容,非常丰富,同时支持用户输入诗人名、诗名、部分诗句等内容来进行快速查找唐诗,这样就能为研究者猛提供了莫大的方便。不过需
查看c# winform实践开发教程42.53M钱哨高清扫描版c# winform实践开发教程是一本基于.NET FrameWork2.0平台进行的C# Windows程序设计开发教材,由钱哨,李挥剑,李继哲 三人共同编著。全书内容衔接合理,采用了项目驱动方式,且完全按项目运作所需的知识体系设置结构来编写。以实际工
查看Asp.NET网络编程技术91.3M杨天奇pdf扫描版 Asp.NET网络编程技术是一本asp.net网络编程开发书籍,由杨天奇编著。本书采用基础知识与实际应用相结合的方法来编写,内容主要包括以下几个部分:asp.net介绍、asp.net集成开发技术、asp.net控件技术、asp.net内置对像的使
查看R和Ruby数据分析之旅22.83M郑兆雄pdf扫描版R和Ruby数据分析之旅是一本特别的、充满趣味和奇思妙想的编程书,由新加坡程序员郑兆雄Sau Sheong Chang编著。全书内容丰富翔实,将带你从头开始学习Ruby和R语言的基本知识和特性。开篇分别对ruby和r语言做了从零开始、简明扼要的介绍,包括
查看iPad应用开发实战28.1M李晨pdf扫描版 iPad应用开发实战是目前最全面、最系统地讲解iPad应用开发的图书之一,由资深ios开发工程师李晨编著。本书详尽地讲解了iPad开发所必备的理论知识,而且包含大量极具实战性的案例,既便于大家系统地学习,又便于大家进行实际的操练。无论你是经验丰富的
查看新手学ASP动态网页开发:贯通HTML和JavaScript103.34M孔鹏pdf扫描版新手学ASP动态网页开发:贯通HTML和JavaScript是一本HTML和JavaScript的技术指导书籍,由孔鹏等人编著。本书系统全面地介绍了基于ASP的动态网页编程技术,并且强调“实用性”为主,从最基本的网络基础知识到ASP动态网页开发,再到We
查看计算机主板故障维修全程指导69.44M韩雪涛pdf全彩版计算机主板故障维修全程指导是一本计算机主板维修实战指导教材,由韩雪涛编著。本书首先将主板的结构特点、故障特性和故障分析做出一一的介绍,再结合实际检修经验,给出检修思路;然后再将主板划分成单元结构,并依据实际案例,通过对实际主板的拆解、检测等一系列操作演示
查看数据挖掘实用机器学习工具与技术(原书第3版)131.09M威滕高清扫描版数据挖掘实用机器学习工具与技术(原书第3版)是一本数据挖掘方面的技术书籍,由新西兰程序员威滕(Witten,I.H)编著。本书对上一版内容进行了全面更新,其内容包括数据转换、集成学习、大规模数据集、多实例学习等,以及新版的Weka机器学习软件。作者重点在
查看新手学黑客攻防入门篇42.44M梵绅科技pdf扫描版新手学黑客攻防入门篇是一本黑客攻防入门书籍,由梵绅科技编著。本书内容丰富翔实,开本小,内容可不少。实例多,效果不打折。操作细,做事不含糊。知识全,覆盖多领域。全书以坚实基础为核心的知识体系,让你对掌握黑客的攻防模式充满信心;以实用功能为核心的实例组成,在
查看delphi程序开发范例宝典第3版159.18Mpdf高清扫描版delphi程序开发范例宝典第3版是目前学习delphi开发最好的图书,由明日科技李慧、刘欣编著,目前已经由小编扫描成了pdf格式文件,可用于电脑、手机上阅读。本书知识点全面,涵盖delphi程序开发中用到的各种技术,包括了524个典型范例,覆盖热点和关
查看