当前位置:主页 > 书籍配套资源 > Three.js配套资源
《Three.js开发指南》源码CODE

《Three.js开发指南》源码CODE

  • 更新:2022-04-06
  • 大小:4.8 MB
  • 类别:Three.js
  • 作者:Jos、Dirksen
  • 出版:机械工业出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

封面图

目录

  • 前言
  • 致谢
  • 第1章用Three.js创建你的第一个三维场景1
  • 1.1使用Three.js的前提条件3
  • 1.2获取源代码4
  • 1.2.1用Git克隆代码仓库4
  • 1.2.2下载并解压压缩包5
  • 1.2.3测试示例6
  • 1.3创建HTML页面框架7
  • 1.4渲染并展示三维对象9
  • 1.5添加材质、灯光和阴影13
  • 1.6用动画扩展你的首个场景15
  • 1.6.1引入requestAnimation-Frame()方法15
  • 1.6.2转动方块17
  • 1.6.3弹跳球17
  • 1.7使用dat.GUI库简化试验18
  • 1.8使用ASCII效果19
  • 1.9总结20
  • 第2章使用构建Three.js场景的基本组件22
  • 2.1创建场景22
  • 2.1.1场景的基本功能23
  • 2.1.2在场景中添加雾化效果27
  • 2.1.3使用材质覆盖属性28
  • 2.2使用几何和网格对象29
  • 2.2.1几何对象的属性和函数29
  • 2.2.2网格对象的函数和属性33
  • 2.3选择合适的相机37
  • 2.3.1正投影相机和透视相机37
  • 2.3.2让相机在指定点上聚焦41
  • 2.4总结41
  • 第3章使用Three.js里的各种光源43
  • 3.1探索Three.js库提供的光源43
  • 3.2学习基础光源44
  • 3.2.1AmbientLight—影响整个场景的光源44
  • 3.2.2PointLight—照射所有方向的光源47
  • 3.2.3SpotLight—具有锥形效果的光源49
  • 3.2.4DirectinalLight—模拟远处类似太阳的光源53
  • 3.2.5使用特殊光源生成高级光照效果54
  • 3.3总结61
  • 第4章使用Three.js的材质62
  • 4.1理解共有属性63
  • 4.1.1基础属性63
  • 4.1.2融合属性64
  • 4.1.3高级属性64
  • 4.2从简单的网格材质(基础、深度和面)开始65
  • 4.2.1简单表面的MeshBasic-Material65
  • 4.2.2基于深度着色的MeshDepthMaterial67
  • 4.2.3联合材质68
  • 4.2.4计算法向颜色的MeshNormalMaterial70
  • 4.2.5为每个面指定材质的MeshFaceMaterial72
  • 4.3学习高级材质73
  • 4.3.1用于暗淡、不光亮表面的MeshLambertMaterial74
  • 4.3.2用于光亮表面的MeshPhongMaterial75
  • 4.3.3用ShaderMaterial创建自己的着色器76
  • 4.4线段几何体的材质81
  • 4.4.1LineBasicMaterial81
  • 4.4.2LineDashedMaterial83
  • 4.5总结84
  • 第5章学习使用几何体85
  • 5.1Three.js提供的基础几何体86
  • 5.1.1二维几何体86
  • 5.1.2三维几何体92
  • 5.2总结100
  • 第6章使用高级几何体和二元操作102
  • 6.1ConvexGeometry102
  • 6.2LatheGeometry104
  • 6.3通过拉伸创建几何体105
  • 6.3.1ExtrudeGeometry106
  • 6.3.2TubeGeometry107
  • 6.3.3从SVG拉伸109
  • 6.3.4ParametricGeometry110
  • 6.4创建三维文本112
  • 6.4.1渲染文本113
  • 6.4.2添加自定义字体114
  • 6.5使用二元操作组合网格115
  • 6.5.1subtract函数117
  • 6.5.2intersect函数120
  • 6.5.3union函数121
  • 6.6总结121
  • 第7章粒子和粒子系统123
  • 7.1理解粒子123
  • 7.2粒子、粒子系统和BasicParticleMaterial125
  • 7.3使用HTML5画布格式化粒子128
  • 7.3.1在CanvasRenderer类里使用HTML5画布128
  • 7.3.2在WebGLRenderer中使用HTML5画布129
  • 7.4使用纹理格式化粒子131
  • 7.5从高级几何体中创建粒子系统139
  • 7.6总结141
  • 第8章创建、加载高级网格和几何体143
  • 8.1几何体组合和合并143
  • 8.1.1对象组合143
  • 8.1.2将多个网格合并成一个网格145
  • 8.2从外部资源中加载几何体147
  • 8.3以Three.js的JSON格式保存和加载147
  • 8.3.1保存和加载几何体147
  • 8.3.2保存和加载场景149
  • 8.4使用Blender151
  • 8.4.1在Blender中安装Three.js导出器152
  • 8.4.2在Blender里加载和导出模型153
  • 8.5导入三维格式文件155
  • 8.5.1OBJ和MTL格式156
  • 8.5.2加载Collada模型159
  • 8.5.3加载STL、CTM和VTK模型160
  • 8.5.4展示蛋白质数据银行中的蛋白质161
  • 8.5.5从PLY模型中创建粒子系统163
  • 8.6总结164
  • 第9章创建动画和移动相机166
  • 9.1基础动画166
  • 9.1.1简单动画167
  • 9.1.2选择对象168
  • 9.1.3用Tween.js做动画170
  • 9.2使用相机172
  • 9.2.1轨迹球控件172
  • 9.2.2飞行控件174
  • 9.2.3翻滚控件175
  • 9.2.4第一人称控件175
  • 9.2.5轨道控件177
  • 9.2.6路径控件178
  • 9.3变形动画和骨骼动画180
  • 9.3.1用变形目标制作动画181
  • 9.3.2用骨骼和蒙皮制作动画184
  • 9.4使用外部模型创建动画186
  • 9.4.1用Blender创建骨骼动画186
  • 9.4.2从Collada模型中加载动画190
  • 9.4.3从雷神之锤模型中加载动画191
  • 9.5总结192
  • 第10章加载和使用纹理194
  • 10.1在材质中使用纹理194
  • 10.1.1加载纹理并应用到网格194
  • 10.1.2使用凹凸贴图创建皱纹197
  • 10.1.3使用法向贴图创建更加细致的凹凸和皱纹198
  • 10.1.4使用光照贴图创建假阴影199
  • 10.1.5用环境贴图创建虚假的反光效果201
  • 10.1.6高光贴图204
  • 10.2纹理的高级用途205
  • 10.2.1定制UV映射205
  • 10.2.2重复映射207
  • 10.2.3在画布上绘制图案并作为纹理209
  • 10.3总结213
  • 第11章定制着色器和渲染后期处理215
  • 11.1设置后期处理215
  • 11.1.1创建EffectComposer对象216
  • 11.2后期处理通道218
  • 11.2.1简单后期处理通道218
  • 11.2.2使用掩膜的高级效果组合器223
  • 11.2.3用ShaderPass定制效果226
  • 11.3创建自定义的后期处理着色器231
  • 11.3.1定制灰度图着色器232
  • 11.3.2定制位着色器235
  • 11.4总结237
  • 第12章用Physijs在场景中添加物理效果238
  • 12.1创建可用Physijs的基本Three.js场景238
  • 12.2材质属性243
  • 12.3基础图形244
  • 12.4使用约束限制对象移动248
  • 12.4.1用PointConstraint限制两点间的移动249
  • 12.4.2用HingeConstraint创建类似门的约束250
  • 12.4.3用SliderConstraint将移动限制到一个轴252
  • 12.4.4用ConeTwistConstraint创建类似球销的约束254
  • 12.4.5用DOFConstraint实现细节的控制255
  • 12.5总结259

资源下载

资源下载地址1:https://pan.baidu.com/s/14gpahXMTZpzlVPdh7crCmA

相关资源

网友留言