新書推薦:
《
粤行丛录(岭南史料笔记丛刊)
》
售價:HK$
80.2
《
岁月待人归:徐悲鸿自述人生艺术
》
售價:HK$
61.4
《
女人的中国医疗史:汉唐之间的健康照顾与性别
》
售價:HK$
103.8
《
资治通鉴熊逸版:第四辑
》
售價:HK$
470.8
《
中国近现代名家精品——项维仁:工笔侍女作品精选
》
售價:HK$
66.1
《
宋瑞驻村日记(2012-2022)
》
售價:HK$
115.6
《
汗青堂丛书138·帝国的切口:近代中国口岸的冲突与交流(1832-1914)
》
售價:HK$
127.4
《
人世事,几完缺 —— 啊,晚明
》
售價:HK$
115.6
|
編輯推薦: |
探索HML5 API及创建3D Web图形的相关技术,包括WebGL、Canvas和CSS
使用流行的JavaScript 3D渲染和动画库Three.js及Tween.js
研究3D内容创作流程,创建杀手级3D内容的建模和动画工具
介绍构建3D应用的游戏引擎和框架,包括作者的Vizi框架
使用示例及支持代码,创建有多个物体和复杂交互的3D场景
分析移动浏览器中的WebGL 3D应用会遇到的问题
|
內容簡介: |
本书全面讲解了使用HTML5和WebGL开发3D应用的Web技术,理论与实践相结合,涵盖桌面和移动两端。全书分两部分:基础知识和应用开发。在详细介绍开发相关理论、工具、框架和库的基础上,作者通过3D产品浏览器、游戏和交互培训系统等案例,生动讲解了3D应用开发的全过程。
本书适合中高级Web及页游开发人员阅读。
|
關於作者: |
Tony Parisi
Web 3D标准的先驱、企业家、CTO、架构师。VRML和X3D语言的联合作者,这两者已经成为Web 3D图形的ISO标准。另著有《WebGL入门指南》。
|
目錄:
|
前言xi
第一部分 基础知识
第1章 绪论2
1.1 HTML5:新型的视觉媒介4
1.1.1 浏览器平台4
1.1.2 浏览器支持情况6
1.2 3D图形的基础知识6
1.2.1 什么是3D6
1.2.2 3D坐标系7
1.2.3 网格、多边形与顶点8
1.2.4 材质、纹理与光源9
1.2.5 变换与矩阵9
1.2.6 相机、透视、视口与投影10
1.2.7 着色器11
第2章 WebGL:实时3D渲染13
2.1 WebGL基础14
2.2 WebGL API15
2.3 WebGL应用剖析16
2.4 一个简单的WebGL 示例16
2.4.1 Canvas元素和WebGL绘图上下文17
2.4.2 视口18
2.4.3 缓冲、缓冲数组和类型化数组18
2.4.4 矩阵19
2.4.5 着色器20
2.4.6 绘制图元22
2.5 创建3D 几何体23
2.6 添加动画27
2.7 使用纹理映射28
2.8 小结34
第3章 Three.js一款JavaScript 3D引擎35
3.1 使用Three.js创建的代表性项目35
3.2 Three.js概览38
3.2.1 初始化Three.js40
3.2.2 Three.js工程结构40
3.3 一个简单的Three.js程序41
3.3.1 创建渲染器43
3.3.2 创建场景43
3.3.3 运行循环的实现45
3.3.4 为场景添加光照46
3.4 小结48
第4章 Three.js中的图形和渲染49
4.1 几何图形和网格49
4.1.1 预置的几何形状类型49
4.1.2 路径、形状和挤出50
4.1.3 几何形状基础类52
4.1.4 用于优化网格渲染的BufferGeometry55
4.1.5 从建模软件包中导入网格数据56
4.2 场景图和空间变换的层级结构57
4.2.1 利用场景图来管理复杂场景57
4.2.2 Three.js中的场景图57
4.2.3 平移、旋转和缩放的表示61
4.3 材质61
4.3.1 标准网格材质61
4.3.2 使用多重纹理增添逼真效果63
4.4 光源67
4.5 阴影69
4.6 着色器73
4.6.1 ShaderMaterial类:编写你自己的着色器代码74
4.6.2 在Three.js中使用GLSL着色器代码75
4.7 渲染78
4.7.1 后处理和多道渲染79
4.7.2 延迟渲染80
4.8 小结80
第5章 3D动画81
5.1 使用requestAnimationFrame来驱动动画82
5.1.1 在你的应用中使用requestAnimationFrame83
5.1.2 requestAnimationFrame和性能84
5.1.3 基于帧的动画和基于时间的动画85
5.2 使用程序更新属性的方式来构建动画85
5.3 使用补间来进行动画过渡87
5.3.1 插值87
5.3.2 Tween.js库88
5.3.3 缓动90
5.4 使用关键帧来实现复杂动画91
5.4.1 Keyframe.js一个简单的帧动画通用库92
5.4.2 使用关键帧创建关节动画94
5.5 使用曲线和路径创建平滑自然的运动96
5.6 使用变形目标来创建人物和面部动画99
5.7 使用蒙皮来构建角色动画100
5.8 使用着色器来进行动画104
5.9 小结109
第6章 CSS3:高级页面效果110
6.1 CSS变换112
6.1.1 使用3D变换113
6.1.2 添加透视115
6.1.3 创建变换层级117
6.1.4 控制背面渲染119
6.1.5 CSS变换属性汇总122
6.2 CSS过渡122
6.3 CSS动画127
6.4 挑战CSS的极限130
6.4.1 渲染3D物体130
6.4.2 渲染3D环境132
6.4.3 使用CSS自定义滤镜来实现高级着色器效果134
6.4.4 用Three.js来渲染CSS 3D135
6.5 小结135
第7章 Canvas:通用2D绘图137
7.1 Canvas基础137
7.1.1 Canvas元素和2D绘图上下文138
7.1.2 Canvas API的功能139
7.2 使用Canvas API来渲染3D144
7.3 基于Canvas渲染的3D 库147
7.3.1 K3D147
7.3.2 Three.js的Canvas渲染148
7.4 小结153
第二部分 应用开发技术
第8章 3D内容制作流程156
8.1 3D内容创建过程156
8.1.1 建模157
8.1.2 纹理映射157
8.1.3 动画158
8.1.4 技术美工159
8.2 3D建模和动画工具160
8.2.1 传统3D软件160
8.2.2 基于浏览器的集成环境164
8.2.3 3D内容仓库和现成素材167
8.3 3D文件格式168
8.3.1 模型格式168
8.3.2 动画格式170
8.3.3 全功能的场景格式171
8.4 加载3D内容到WebGL应用中178
8.4.1 Three.js JSON格式179
8.4.2 Three.js的二进制格式184
8.4.3 使用Three.js来加载COLLADA场景185
8.4.4 使用Three.js来加载gITF场景188
8.5 小结189
第9章 3D引擎和框架190
9.1 3D框架概念191
9.1.1 什么是框架191
9.1.2 WebGL框架需求192
9.2 WebGL框架概况194
9.2.1 游戏引擎194
9.2.2 展示框架196
9.3 Vizi:一个基于组件的用于可视化Web 应用的框架198
9.3.1 背景和设计理念199
9.3.2 Vizi架构200
9.3.3 Vizi入门201
9.3.4 一个Vizi应用示例202
9.4 小结207
第10章 开发一个简单的3D应用209
10.1 设计应用211
10.2 创建3D内容212
10.2.1 导出Maya场景到COLLADA213
10.2.2 将COLLADA文件转换glTF格式214
10.3 预览和测试3D内容214
10.3.1 基于Vizi的预览工具214
10.3.2 Vizi查看器类216
10.3.3 Vizi加载类217
10.4 将3D 集成到应用中220
10.5 开发3D行为和交互223
10.5.1 Vizi场景图API方法:findNode和map223
10.5.2 使用Vizi.FadeBehavior来动画透明度225
10.5.3 使用Vizi.RotateBehavior来自动旋转内容227
10.5.4 使用Vizi.Picker来实现鼠标悬停时显示信息227
10.5.5 使用用户界面来控制动画229
10.5.6 使用颜色选择器来改变颜色230
10.6 小结232
第11章 开发一个3D环境233
11.1 创建环境素材235
11.2 预览和测试环境236
11.2.1 以第一人称模式预览场景237
11.2.2 检查场景图237
11.2.3 检查对象属性240
11.2.4 显示边界框242
11.2.5 预览多个对象244
11.2.6 使用预览工具来查找场景中的其他问题246
11.3 使用skybox创建一个3D背景247
11.3.1 3D skybox247
11.3.2 Vizi skybox对象248
11.4 集成3D 内容到应用中250
11.4.1 加载和初始化场景250
11.4.2 加载和初始化车模型253
11.5 实现第一人称导航255
11.5.1 相机控制器256
11.5.2 第一人称控制器中的数学257
11.5.3 鼠标视角258
11.5.4 简单碰撞检测259
11.6 使用多个相机260
11.7 创建定时的动画过渡262
11.8 对象行为脚本263
11.8.1 基于Vizi.Script实现自定义组件264
11.8.2 驾驶车的控制器脚本264
11.9 给环境添加声音270
11.10 渲染动态纹理272
11.11 小结276
第12章 开发移动3D应用278
12.1 移动3D平台278
12.2 为移动浏览器开发280
12.2.1 增加触摸支持281
12.2.2 在桌面版Chrome上调试移动功能285
12.3 创建Web应用287
12.3.1 Web应用开发和测试工具287
12.3.2 打包成Web应用来发布288
12.4 开发原生HTML5混合应用289
12.4.1 CocoonJS:一种为移动设备构建HTML游戏及应用的技术290
12.4.2 使用CocoonJS组装应用292
12.4.3 WebGL混合开发:问题298
12.5 移动3D性能298
12.6 小结300
附录 资源301
作者介绍311
封面介绍311
|
|