新書推薦:
《
孤独传:一种现代情感的历史
》
售價:NT$
390.0
《
家、金钱和孩子
》
售價:NT$
295.0
《
量价关系——透视股票涨跌脉络
》
售價:NT$
340.0
《
二十四节气生活美学
》
售價:NT$
340.0
《
西班牙内战:秩序崩溃与激荡的世界格局:1936-1939
》
售價:NT$
990.0
《
基于鲲鹏的分布式图分析算法实战
》
售價:NT$
495.0
《
夺回大脑 如何靠自己走出强迫
》
售價:NT$
299.0
《
图解机械工程入门
》
售價:NT$
440.0
內容簡介:
本书针对最新的Cocos2d-x 3.x版本,介绍了Cocos2d-x游戏引擎的基本架构、渲染机制,以及各个子模块的功能和原理,并结合OpenGL ES图形渲染管线,深入探讨了游戏开发中涉及的图形学知识,内容包括Cocos2d-x的基本架构及渲染机制、纹理的相关知识、OpenGL ES 2.0渲染管线、计算机字体的绘制、多分辨率支持、事件分发、碰撞与物理引擎、游戏对象模型架构、Genius-x开源框架、脚本在游戏引擎中的架构等。本书偏重讲解每个知识模块的概念及原理,使读者能够透过现象看到其背后的工作机制,所以,本书并不是围绕Cocos2d-x接口的使用组织内容,而是按照通用游戏引擎架构及图形学的知识组织内容。
目錄 :
第1章 全新的Cocos2d-x 3.01
1.1 Cocos2d-x 3.0的历史意义1
1.1.1 回归C++风格2
1.1.2 更灵活的渲染架构2
1.1.3 更自由的发展2
1.2 Cocos2d-x 3.0的新特性3
1.2.1 使用C++风格3
1.2.2 跨平台的Label6
1.2.3 新的渲染系统6
1.2.4 统一的消息分发8
1.2.5 物理引擎集成9
1.2.6 新的数据结构10
1.2.7 其他14
1.3 Cocos2d-x引擎展望15
1.3.1 3D16
1.3.2 Cocos Code IDE16
1.4 本章小结17
第2章 Cocos2d-x架构一瞥19
2.1 Cocos2d-x引擎系统总览19
2.2 Cocos2d-x内存管理机制21
2.2.1 C++显式堆内存管理21
2.2.2 C++ 11中的智能指针22
2.2.3 为什么不使用智能指针23
2.2.4 垃圾回收机制23
2.2.5 Cocos2d-x内存管理机制24
2.2.6 Cocos2d-x中的智能指针29
2.2.7 怎样进行内存管理35
2.3 UI树及运行时游戏对象35
2.3.1 位置与变换35
2.3.2 坐标系36
2.3.3 UI树39
2.3.4 UI元素与内存管理45
2.4 应用程序架构46
2.4.1 游戏生命周期46
2.4.2 窗口尺寸48
2.4.3 场景管理48
2.4.4 游戏循环49
2.5 实时更新游戏对象52
2.5.1 帧率52
2.5.2 Scheduler53
2.5.3 时间线54
2.5.4 逻辑更新优先级55
2.5.5 性能问题56
2.6 Cocos2d-x的主线程56
2.6.1 在主线程中执行异步处理57
2.6.2 纹理的异步加载58
2.6.3 异步处理的单元测试60
2.7 本章小结60
第3章 OpenGL ES 2.0概览62
3.1 图形处理器简介62
3.2 什么是OpenGL ES63
3.3 OpenGL ES 2.0渲染管线64
3.3.1 顶点数组65
3.3.2 顶点着色器66
3.3.3 图元装配66
3.3.4 光栅化69
3.3.5 片段着色器70
3.3.6 片段测试70
3.4 渲染管线中的并行计算71
3.5 构建高性能的渲染引擎72
3.6 帧缓冲73
3.7 本章小结74
第4章 全新的绘制系统76
4.1 新绘制系统的特点76
4.2 绘制系统概览77
4.3 RenderCommand79
4.4 RenderQueue80
4.5 GroupCommand81
4.6 Render84
4.6.1 RenderCommand的排序84
4.6.2 QuadCommand85
4.7 元素的可见性87
4.8 绘制的时机89
4.9 示例:自定义RenderCommand91
4.10 本章小结95
第5章 纹理96
5.1 光栅化96
5.1.1 多重采样97
5.1.2 纹理坐标98
5.2 像素矩形99
5.2.1 像素存储模式99
5.2.2 纹理数据的传输99
5.2.3 解包100
5.3 客户端图像格式103
5.3.1 纹理格式的对应关系104
5.3.2 图像数据格式转换105
5.4 纹理对象和加载纹理107
5.5 纹理单元与多重纹理109
5.6 纹理缩放110
5.6.1 纹理缩小110
5.6.2 纹理放大111
5.6.3 在Cocos2d-x中设置过滤模式112
5.7 多级纹理113
5.7.1 多级纹理过滤模式113
5.7.2 多级纹理的上传114
5.7.3 多级纹理的生成115
5.8 纹理压缩116
5.8.1 压缩纹理的特点116
5.8.2 压缩纹理的实现117
5.8.3 在Cocos2d-x中使用压缩纹理118
5.8.4 PVRTC和PVRTC2120
5.8.5 ETC122
5.8.6 针对不同设备使用不同的压缩纹理123
5.9 纹理缓存管理123
5.9.1 纹理的生命周期124
5.9.2 用TextureCache来管理纹理125
5.9.3 场景过渡中的资源管理127
5.9.4 Android下的纹理恢复处理130
5.10 纹理所占内存的计算131
5.11 使用纹理最佳实践133
5.11.1 硬件层面133
5.11.2 程序层面133
5.11.3 资源层面134
5.12 本章小结135
第6章 精灵137
6.1 用Sprite绘制一个矩形区域137
6.1.1 V3F_C4B_T2F_Quad结构体138
6.1.2 使用QuadCommand进行绘制139
6.1.3 将Sprite作为子元素140
6.2 Sprite的绘制属性140
6.2.1 颜色混合141
6.2.2 颜色叠加144
6.3 Alpha预乘148
6.4 精灵表150
6.5 精灵动画152
6.6 批绘制还是自动批绘制154
6.6.1 SpriteBatchNode154
6.6.2 TextureAtlas156
6.6.3 SpriteBatchNode的特点和限制157
6.7 部分拉伸:九宫格157
6.8 本章小结158
第7章 OpenGL ES着色语言161
7.1 概览161
7.2 基础类型162
7.2.1 空类型163
7.2.2 布尔类型163
7.2.3 整型163
7.2.4 浮点型163
7.2.5 矢量164
7.2.6 矩阵164
7.2.7 采样器164
7.2.8 结构体165
7.2.9 数组165
7.3 存储限定符166
7.3.1 默认限定符167
7.3.2 常量限定符167
7.3.3 属性限定符167
7.3.4 全局限定符168
7.3.5 易变量限定符169
7.4 构造器170
7.4.1 标量的转换构造170
7.4.2 矢量和矩阵构造器171
7.4.3 结构体构造器172
7.5 矢量的分量173
7.6 矩阵的分量174
7.7 结构体和成员174
7.8 矢量和矩阵操作符175
7.9 本章小结176
第8章 OpenGL ES着色程序177
8.1 顶点和顶点数组177
8.1.1 图元与顶点178
8.1.2 顶点属性状态178
8.1.3 顶点数组180
8.2 顶点缓冲对象185
8.2.1 顶点数组缓冲对象187
8.2.2 索引数组缓冲对象188
8.2.3 使用VAO缓存顶点数组状态190
8.3 着色器程序192
8.3.1 着色器程序字符串192
8.3.2 着色器的加载和编译193
8.3.3 着色器程序对象195
8.4 Cocos2d-x着色器子系统196
8.4.1 GLProgram与Node之间的关系197
8.4.2 GLProgramState199
8.4.3 着色器程序的使用过程202
8.4.4 GLProgramState的管理204
8.4.5 GLProgramState的限制205
8.5 顶点着色器206
8.5.1 输入参数206
8.5.2 顶点坐标输出参数207
8.5.3 易变量输出参数208
8.6 片段着色器209
8.6.1 输入参数210
8.6.2 纹理采样210
8.6.3 输出参数211
8.7 着色器编辑工具211
8.8 示例213
8.8.1 使用ETC压缩纹理214
8.8.2 动态设置着色器参数217
8.9 着色器程序最佳实践220
8.10 本章小结220
第9章 帧缓冲223
9.1 GroupCommand223
9.1.1 使用GroupCommand的流程224
9.1.2 GroupCommand的限制225
9.2 帧缓冲226
9.2.1 绑定和管理帧缓冲227
9.2.2 将图像附加到帧缓冲228
9.2.3 渲染缓冲对象228
9.2.4 将Renderbuffer附加到帧缓冲230
9.2.5 将Texture附加到帧缓冲230
9.2.6 帧缓冲完成状态231
9.3 RenderTexture234
9.3.1 RenderTexture的初始化235
9.3.2 RenderTexture的绘制238
9.3.3 ReadPixels239
9.3.4 RenderTexture的限制及用途240
9.4 本章小结240
第10章 片段操作242
10.1 片段操作简述242
10.2 逻辑缓冲区243
10.2.1 位平面244
10.2.2 按位计算245
10.3 片段测试248
10.3.1 模板测试248
10.3.2 深度测试250
10.3.3 模板测试的步骤251
10.3.4 片段测试的用途252
10.4 全缓