本文使用原生三件套的方式去学习 Three.js
。是一篇面向小白的笔记~
下载 Three.js
通过上面的地址,可以下载 Three.js
这是下载下来解压后的文件
创建项目
我习惯使用 vs code
编写前端代码,如果是用原生三件套学习,我还会使用 Live Server
插件辅助开发。
创建 Three-study-demo
目录,用来存放本例代码。
目录如下所示
1 |
|
把刚刚从 Three.js 下载下来的包解压后,找到 src/Three.js
,并将其复制到 Three-study-demo/js
里
项目到此就算创建好了。
引入 Three.js
在 vs code
里打开 index.html
,然后引入 Three.js
1 |
|
注意,上面的 script
标签中使用了 type="module"
,在写本文时 Chrome
已经支持这种写法,这种写法允许我们使用 import
的方式引入第三方包。
右键,选择 Open with Live Server
运行该页面。
Live Server
这个插件每当你保存时,页面都会自动刷新。减少很多手动操作。
基础概念
在学习 Three.js
前,需要了解几个概念,毕竟是 3D 库。
属性名称 | 描述 |
---|---|
场景(Scene) | 是物体、光源等元素的容器,可以配合 chrome 插件使用,抛出 window.scene 即可实时调整 obj 的信息和材质信息。 |
相机(Camera) | 场景中的相机,代替人眼去观察,场景中只能添加一个,一般常用的是透视相机(PerspectiveCamera )。 |
物体对象(Mesh) | 包括二维物体(点、线、面)、三维物体、模型等等。 |
光源(Light) | 场景中的光照,如果不添加光照场景将会是一片漆黑,包括全局光、平行光、点光源等。 |
渲染器(Renderer) | 场景的渲染方式,如 WebGL 、canvas2D 、css3D 。 |
控制器(Control) | 可通过键盘、鼠标控制相机的移动。 |
除了上面这些属性,还有 材质 、音频 、动画 等其他知识点。这些后面会讲到。
对于刚起步的同学来讲,先让浏览器有点东西显示出来才是最重要的。
所以只需大概理解以下几个属性就能在浏览器渲染出东西:
- 场景:用来放物体、光源等元素的容器。
- 相机:相当于你的眼睛,相机拍摄到的东西就是你看到的东西。
- 物体对象:就是物体,对应真实世界的苹果香蕉之类的东西。
- 渲染器:将相机拍摄下来的图片,放到浏览器中去显示。
起步
了解上面所说的 基础概念 后,我们根据 官方文档 上面的案例创建出第一个场景。
本文的第一个场景会比 Three.js
官网上的更加简单,步骤如下:
- 创建
HTML
容器,用来绑定画布的。 - 创建一个场景,用来放物体。
- 创建一个相机,代表我们的眼睛去看东西。
- 创建一个物体,不然没东西看了。
- 创建一个渲染器,并把场景和相机放到渲染器里渲染,最后将渲染器添加到页面中。
- 让物体动起来。
代码将根据上面 6个步骤 进行
1 |
|
第一次敲代码,先别管那些 api
的详细用法。先理解上面说到的 6个步骤 。
如果你不想显示动画,也可以把 animate
函数删掉,直接写 renderer.render( scene, camera )
即可。
有场景,有相机,有物体,有渲染器。存在这4个,页面就会有东西显示。
跟着敲两遍,之后再看看 官方示例 ,深入理解下每个 api
的用法。你就算是入门了 Three.js
。