第1章 WebGL简介
1.1 WebGL——一个技术定义
1.2 3D图形学——入门
1.2.1 3D坐标系
1.2.2 网格、多边形和顶点
1.2.3 材质、纹理和光源
1.2.4 变换与矩阵
1.2.5 相机、透视、视口和投影
1.2.6 着色器
1.3 WebGL原生API
1.3.1 WebGL应用结构剖析
1.3.2 画布元素与绘制上下文
1.3.3 视口
1.3.4 Buffer、ArrayBuffer和类型化数组
1.3.5 矩阵
1.3.6 着色器
1.3.7 绘制图元
1.4 本章小结
第2章 你的第一个WebGL程序
2.1 Three.js——一个JavaScript 3D引擎
2.2 建立Three.js运行环境
2.3 一个简单的Three.js网页
2.4 一个真实的3D示例
2.4.1 为场景着色
2.4.2 添加纹理映射
2.4.3 旋转物体
2.4.4 循环重绘和requestAnimationFrame
2.4.5 让页面贴近生活
2.5 本章小结
第3章 图形
3.1 Sim.js——一个轻量级的WebGL模拟框架
3.2 创建网格
3.3 使用材质、纹理和光源
3.3.1 光源的种类
3.3.2 使用多重纹理创建更具真实感的场景
3.3.3 纹理与透明
3.4 构建变换层级
3.5 创建自定义几何体
3.6 点和线的渲染
3.6.1 使用粒子系统绘制点
3.6.2 线的绘制
3.7 编写着色器
3.7.1 WebGL着色器基础
3.7.2 Three.js中的着色器
3.8 本章小结
第4章 动画
4.1 动画基础
4.1.1 帧动画
4.1.2 时间动画
4.1.3 插值与补间动画
4.1.4 关键帧
4.1.5 关节动画
4.1.6 蒙皮动画
4.1.7 目标变形动画
4.2 使用Tween.js库来创建补间动画
4.2.1 创建一个基本的补间动画
4.2.2 带缓动效果的补间动画
4.3 为带关节的模型制作关键帧动画
4.3.1 载入模型
4.3.2 为模型制作动画
4.4 材质和光源动画
4.5 纹理动画
4.6 蒙皮动画和变形动画
4.7 本章小结
第5章 交互
5.1 点击检测、拾取和投影Three.js中的点击检测
5.2 处理鼠标移入和点击
5.3 处理拖曳在拖曳中使用补间动画
5.4 使用点击点和法线信息
5.5 基于相机的交互
5.5.1 利用镜头控制制作一个模型浏览器
5.5.2 场景漫游
5.6 本章小结
第6章 2D与3D的整合
6.1 整合动态HTML和WebGL
6.1.1 创建DIV元素弹出层
6.1.2 利用2D屏幕坐标为3D物体添加注释
6.1.3 为3D场景添加背景图片
6.2 在2D页面上插入3D浮层
6.3 利用2D Canvas创建动态纹理
6.4 使用视频作为纹理
6.5 渲染动态3D文字
6.6 WebGL中的终极整合
6.7 本章小结
第7章 实战WebGL
7.1 如何选择运行库和框架
7.2 载入3D内容
7.2.1 COLLADA:数字资产交换格式
7.2.2 Three.js中的JSON模型文件格式
7.2.3 Three.js二进制模型文件格式
7.2.4 压缩3D模型
7.2.5 Three.js中的JSON场景文件格式
7.3 创建3D内容
7.3.1 从Blender中导出3D内容
7.3.2 把OBJ文件转换为Three.js JSON文件
7.3.3 把OBJ文件转换为Three.js二进制文件
7.3.4 其他软件或格式的转换
7.4 浏览器支持度
7.4.1 检测浏览器的WebGL支持
7.4.2 在Safari中开启WebGL支持
7.5 处理丢失上下文事件
7.6 WebGL的安全性
7.7 本章小结
第8章 你的第一个WebGL游戏
8.1 构建游戏的各个部分
8.1.1 相机、角色和控制
8.1.2 美术设计
8.1.3 模型预览器
8.1.4 创建粒子系统
8.1.5 添加声音
8.2 万物归一
8.3 本章小结
后记
附录A WebGL在线资源