Three.js开发指南:基于WebGL和HTML5在网页上渲染3D图形和动画(原书第3版)pdf下载

Three.js开发指南:基于WebGL和HTML5在网页上渲染3D图形和动画(原书第3版)百度网盘pdf下载

作者:
简介:Three.js开发指南:基于WebGL和HTML5在网页上渲染3D图形和动画(原书第3版)
出版社:
出版时间:2019-06
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

编辑推荐

现代浏览器都支持WebGL,这样不必使用Flash、Java等插件就能在浏览器中创建三维图形。然而,直接使用WebGL在浏览器中创建三维图形和动画也非常繁琐,它所提供的各种接口尽管非常丰富且强大,但对于用户来说未免过于复杂了。
  Three.js的出现则完美地帮助人们解决了这个矛盾。Three.js将WebGL的强大功能融汇其中,同时又非常易于使用,即便用户对其中的原理不甚了解,也能借助Three.js创建出绚丽多姿的三维场景和动画。
  本书先从基本概念和Three.js的基本模块讲起,然后伴随着大量的示例和代码,逐步扩展到更多的主题,循序渐进地讲解Three.js的各种功能,帮助你充分利用WebGL和现代浏览器的潜能,直接在浏览器中创建动态的华丽场景。

通过阅读本书,你将学会:
使用Three.js提供的各种材质并了解它们如何与3D模型和场景相互作用
通过Three.js提供的各种摄像机控制功能,在三维场景中轻松导航
通过直接操作顶点实现雨、雪以及宇宙星系效果
导入OBJ、STL、COLLADA等外部格式的模型和创建动画效果
创建和运行基于形态和框架的动画
在材质上应用高级纹理(凹凸贴图、法向贴图、高光贴图和光照贴图),创建逼真的三维图形
使用Physijs这个JavaScript库,实现三维物体的物理效果
创建自定义顶点和片段着色器,实现与WebGL的直接交互

内容简介

  《Three.js开发指南:基于WebGL和HTML5在网页上渲染3D图形和动画(原书第3版)》通过大量的示例和代码,以丰富的互动的方式向读者展示Three.js的各种功能。
  《Three.js开发指南:基于WebGL和HTML5在网页上渲染3D图形和动画(原书第3版)》共12章:第1章讲述使用Three.js库的基本步骤;第2章讲解Three.js库使用过程中所需要理解的各种基础组件,包括灯光、网格、几何体、材质和相机等;第3章通过具体示例讲解场景中使用的各种灯光;第4章讨论Three.js库中可以用于网格的各种材质,并通过互动示例让你来试用这些材质;第5章讲解Three.js中几何体的创建和设置;第6章展示如何设置、使用Three.js库中的高级几何体,例如凸面体和旋转体;第7章讲解如何使用Three.js库中的粒子系统;第8章展示如何从外部导入网格和几何体;第9章探索各种动画效果,使场景活动起来;第10章深入讲解材质的细节,包括如何控制材质,以及如何将HTML5视频的输出和HTML5画布中的元素作为纹理;第11章探索如何使用Three.js库来对已经渲染过的场景进行后期处理;第12章讲解如何在Three.js场景中添加物理效果。

作者简介

  Jos Dirksen,软件工程师和架构师,现为荷兰一家大型金融机构的咨询顾问,在后台技术(如Java和Scala)和前端开发(如HTML5、CSS和JavaScript)等技术领域有丰富的从业经验。除了对前端的JavaScript和HTML5等技术充满兴趣,Jos也喜欢研究使用REST和传统的网络服务技术开发后台服务。

内页插图

目录

译者序
前言
第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 

前言/序言

在最近的几年中,浏览器的功能变得愈发强大,并且成为展现复杂的应用和图形的平台。然而其中大部分都是标准的二维图形。大多数现代浏览器已经支持WebGL,不仅可以在浏览器端创建二维应用和图形,而且可以通过GPU的功能创建好看并且运行良好的三维应用。
然而,直接使用WebGL编程还是很复杂的。编程者需要知道WebGL的底层细节,并且学习复杂的着色语言来获得WebGL的大部分功能。Threejs提供了一个很简单的关于WebGL特性的JavaScript API,所以用户不需要详细地学习WebGL,就能创作出好看的三维图形。
Threejs为直接在浏览器中创建三维场景提供了大量的特性和API。阅读这本书,读者将通过许多交互示例和示例代码学习Threejs提供的各种API。
本书内容
第1章介绍使用Threejs的基本步骤。阅读完本章就能立刻创建你的第一个Threejs场景,也能直接在浏览器中创建你的第一个三维场景并让它动起来。
第2章解释使用Threejs时需要了解的基本组件。将介绍灯光、网格、几何形状、材质和摄像机。阅读本章,读者也将对Threejs提供的不同灯光和在场景中使用的摄像机有一个大概的印象。
第3章深入介绍可以在场景中使用的不同灯光。本章会通过示例讲解如何使用聚光灯、平行光、环境光、点光源、半球光和区域光。此外,本章还会展示如何使用镜头光晕来影响光源。
第4章讲述Threejs中可在网格中使用的材质。本章展示可以设置的所有属性,并且提供不同的交互示例来阐述Threejs中可用的材质。
第5章讲述Threejs中的几何体。本章将介绍如何在Threejs中创建和配置几何体,并且提供了几何体的交互示例,包括平面、圆形、任意图形、长方体、球体、圆柱体、圆环、环状扭结和多面体。
第6章接着第5章讲解如何使用几何体。本章介绍如何配置和使用Threejs提供的更高级的几何体,如凸面体和旋转体。在本章,你还能学到如何从二维形状拉伸出三维几何体,并且学会通过二元操作来组合几何体,从而创建出一个新的几何体。
第7章解释如何使用Threejs中的精灵和粒子,介绍从头开始或者通过现有的几何体来创建一个粒子系统。这一章还介绍如何使用精灵或点云材质来改变单个点的外观。
第8章介绍如何通过外部资源导入网格和几何体,以及如何使用Threejs内置的JSON格式来保存几何体和场景。本章还会解释如何加载不同格式的模型,如OBJ、DAE、STL、CTM、PLY等。
第9章展示可以让场景动起来的各种动画,包括如何组合使用Tweenjs库和Threejs,以及如何使用基于变形和骨骼的动画模型。
第10章延续第4章的内容—使用Threejs材质。在第4章已经初步介绍了材质,本章着重介绍现有的各种材质以及如何把材质应用到网格中。另外,本章还介绍如何直接使用HTML5中的视频元素和画布元素作为材质来源。
第11章展示如何使用Threejs对已经渲染过的场景进行后期处理。通过后期处理,你可以将模糊、倾斜移位和着色等效果添加到已经渲染过的场景中。除此之外,本章还介绍如何创建自己的后期处理效果、自定义的顶点和片段着色器。
第12章解释如何将物理效果添加到Threejs场景中。通过物理效果,你能检测物体之间的碰撞,使物体对重力有响应,以及应用摩擦力。本章会展示如何用Physijs JavaScript库实现这些效果。此外,本章还会展示如何在Threejs场景中添加声音。
本书的使用要求
使用本书只需稍微了解JavaScript,并按照第1章的指导搭建一个本地的网络服务器和获取书中使用的示例。
面向的读者
这本书对于每一个知道JavaScript并且想要在浏览器中创建运行的三维图形的人来说都是很棒的。你不需要知道任何高级的数学知识或WebGL,所需的只是对JavaScript和HTML有大致的了解。书中所需要的材料和示例都可以免费下载,所用的工具都是开源的。所以,如果你想创建可以在任何现代浏览器中运行的交互的三维图形,这本书就适合你。
下载示例代码及彩图
本书的示例代码及彩图,可从http://wwwpacktpubcom通过个人账号下载,也可以访问华章公司官网http://wwwhzbookcom,通过注册并登录个人账号下载。