第1章
WebGL简介
1
1.1
WebGL基础
1
1.2
浏览器3D图形吸引人的原因
2
1.3
设计一个图形API
3
1.3.1
即时模式API
3
1.3.2
保留模式API
3
1.4
图形硬件简介
4
1.4.1 GPU 4
1.4.2
帧缓存
5
1.4.3
纹理存储器
6
1.4.4
视频控制器
6
1.5
WebGL图形流水线
6
1.5.1
顶点着色器
8
1.5.2
图元装配
11
1.5.3
光栅化
12
1.5.4
片段着色器
12
1.5.5
逐片段操作
15
1.6
WebGL与其他图形技术的
比较
16
1.6.1 OpenGL
16
1.6.2 OpenGL ES 2.0 18
1.6.3 Direct3D
19
1.6.4
HTML5画布
21
1.6.5
可缩放矢量图形
25
1.6.6
VRML与X3D
26
1.7
线性代数简介
27
1.7.1
坐标系
27
1.7.2
点与顶点
27
1.7.3
矢量
28
1.7.4
矢量的点积或标积
29
1.7.5
叉积
30
1.7.6
齐次坐标
31
1.7.7
矩阵
31
1.7.8
仿射变换
34
1.8
小结
39
第2章
创建基本的WebGL示例
41
2.1
绘制三角形
41
2.1.1
创建WebGL上下文
45
2.1.2
创建顶点着色器和片段
着色器
47
2.1.3
编译着色器
48
2.1.4
创建程序对象和链接
着色器
48
2.1.5
建立缓冲
50
2.1.6
绘制场景
51
2.2
了解WebGL编码风格
52
2.3
调试WebGL应用程序
53
2.3.1
使用Chrome开发人员
工具
53
2.3.2
Firebug的使用
59
2.3.3
WebGL的错误处理与
错误代码
61
2.3.4 WebGL Inspector
64
2.3.5
WebGL的故障排除
70
2.4
用DOM API载入着色器
71
2.5
更高级的综合示例
73
2.6
小结
77
第3章
绘制
79
3.1
使用WebGL绘制图元和
绘图方法
79
3.1.1
图元
80
3.1.2
顶点组绕顺序的重要性
84
3.1.3
WebGL的绘图方法
85
3.2
类型化数组
91
3.2.1
缓冲与视图
91
3.2.2
WebGL支持的视图类型
92
3.3
探讨不同的绘图方法
93
3.3.1
gl.drawArrays()和
gl.TRIANGLES
94
3.3.2
gl.drawArrays()方法和
gl.TRIANGLE_STRIP
图元
96
3.3.3
gl.drawElements()方法和
gl.TRIANGLES图元
98
3.3.4
gl.drawElements()方法和
gl.TRIANLE_STRIP图元
100
3.3.5
总结比较
102
3.3.6
前期变换顶点缓存和
后期变换顶点缓存
102
3.4
为提高性能交叉存放顶点
数据
104
3.5
使用顶点数组或常量顶点
数据
113
3.6
总结本章的最后一个示例
114
3.7
小结
124
第4章
小型JavaScript库与变换
127
4.1
JavaScript中矩阵和向量的
操作