译者序
前言
第1章 使用Threejs创建你的第一个三维场景1
11 准备工作3
12 获取源码5
121 通过Git获取代码仓库5
122 下载并解压缩档案文件5
123 测试示例6
13 搭建HTML框架9
14 渲染并查看三维对象10
15 添加材质、光源和阴影效果14
16 让你的场景动起来16
161 引入requestAnimationFrame()方法16
162 旋转立方体18
163 弹跳球19
17 使用datGUI简化试验流程20
18 场景对浏览器的自适应22
19 总结23
第2章 构建Threejs应用的基本组件24
21 创建场景24
211 场景的基本功能25
212 给场景添加雾化效果29
213 使用overrideMaterial属性30
22 几何体和网格32
221 几何体的属性和方法32
222 网格对象的属性和方法36
23 选择合适的摄像机40
231 正交投影摄像机和透视投影摄像机41
232 将摄像机聚焦在指定点上45
24 总结46
第3章 学习使用Threejs中的光源47
31 Threejs中不同种类的光源47
32 基础光源48
321 THREEAmbientLight48
322 THREESpotLight53
323 THREEPointLight58
324 THREEDirectionalLight62
33 特殊光源63
331 THREEHemisphereLight64
332 THREEAreaLight65
333 镜头光晕67
34 总结69
第4章 使用Threejs的材质70
41 理解材质的共有属性71
411 基础属性71
412 融合属性73
413 高级属性73
42 从简单的网格材质开始74
421 THREEMeshBasicMaterial75
422 THREEMeshDepthMaterial77
423 联合材质79
424 THREEMeshNormalMaterial80
425 在单几何体上使用多种材质82
43 高级材质84
431 THREEMeshLambertMaterial85
432 THREEMeshPhongMaterial86
433 THREEMeshStandardMaterial88
434 THREEMeshPhysicalMaterial89
435 用THREEShaderMaterial创建自己的着色器89
44 线性几何体的材质95
441 THREELineBasicMaterial95
442 THREELineDashedMaterial97
45 总结97
第5章 学习使用几何体99
51 Threejs提供的基础几何体101
511 二维几何体101
512 三维几何体109
52 总结120
第6章 高级几何体和二元操作122
61 THREEConvexGeometry122
62 THREELatheGeometry124
63 通过拉伸创建几何体125
631 THREEExtrudeGeometry126
632 THREETubeGeometry127
633 从SVG拉伸129
64 THREEParametricGeometry131
65 创建三维文本133
651 渲染文本133
652 添加自定义字体136
66 使用二元操作组合网格137
661 subtract函数139
662 intersect函数142
663 union函数143
67 总结143
第7章 粒子和精灵145
71 理解粒子145
72 THREEPoints和THREEPointsMaterial148
73 使用HTML5画布样式化粒子151
731 在THREECanvasRenderer中使用HTML5画布151
732 在WebGLRenderer中使用HTML5画布152
74 使用纹理样式化粒子155
75 使用精灵贴图160
76 从高级几何体创建THREEPoints163
77 总结165
第8章 创建、加载高级网格和几何体166
81 几何体组合与合并166
811 对象组合166
812 将多个网格合并成一个网格168
82 从外部资源加载几何体170
821 以Threejs的JSON格式保存和加载171
822 使用Blender177
83 导入三维格式文件181
831 OBJ和MTL格式181
832 加载Collada模型185
833 从其他格式的文件中加载模型186
834 展示蛋白质数据银行中的蛋白质190
835 从PLY模型中创建粒子系统192
84 总结194
第9章 创建动画和移动摄像机195
91 基础动画195
911 简单动画196
912 选择对象197
913 使用Tweenjs实现动画198
92 使用摄像机201
921 轨迹球控制器202
922 飞行控制器204
923 第一视角控制器205
924 轨道控制器207
93 变形动画和骨骼动画208
931 用变形目标创建动画209
932 用骨骼和蒙皮创建动画217
94 使用外部模型创建动画220
941 使用Blender创建骨骼动画220
942 从Collada模型加载动画223
943 从雷神之锤模型中加载动画225
944 使用gltfLoader225
945 利用fbxLoader显示动作捕捉模型动画227
946 通过xLoader加载古老的DirectX模型228
947 利用BVHLoader显示骨骼动画230
948 如何重用SEA3D模型231
95 总结232
第10章 加载和使用纹理233
101 将纹理应用于材质233
1011 加载纹理并应用到网格233
1012 使用凹凸贴图创建褶皱238
1013 使用法向贴图创建更加细致的凹凸和褶皱239
1014 使用移位贴图来改变顶点位置240
1015 用环境光遮挡贴图实现细节阴影241
1016 用光照贴图产生假阴影243
1017 金属光泽度贴图和粗糙度贴图244
1018 Alpha贴图246
1019 自发光贴图247
10110 高光贴图248
10111 使用环境贴图创建伪镜面反射效果250
102 纹理的高级用途255
1021 自定义UV映射255
1022