场景是我们每个 Three.js 项目里面放置内容的容器,我们也可以拥有多个场景进行切换展示,你可以在场景内放置你的模型、灯光和照相机。还可以通过调整场景的位置,让场景内的所有内容都一起跟着调整位置。
场景的结构
之前在刚刚开始学 JavaScript 基础时,我们总免不了去操作 DOM 对象,而且我们都知道 DOM 的结构是树形结构的,Three.js 也遵循了这样的理念,将所有可以添加到场景内的结构梳理成了一种树形的结构,方便我们能够更好的理解Three.js。
我们可以把 Scene 想象成一个 body,body 内可以添加 DOM 对象,scene 内也可以添加它的 3D 对象,这样一层层的嵌套出来,组成了我们现在需要的项目。所以,在 Three.js 中,为了方便操作,将所有 3D 对象共同的内容抽象成了一个基类,就是 THREE.Object3D
。
THREE.Object3D
为了方便操作,Three.js 将每个能够直接添加到场景内的对象都继承自一个基类——THREE.Object3D
,以后我们将继承自这个基类的对象称为 3D 对象,判断一个对象是否是继承自 THREE.Object3D
,我们可以这么做:
obj instanceof THREE.Object3D
//继承至返回 true 否则返回false
这个基类上封装了我们常用的一些方法,下面我们分别介绍下。
向场景内添加一个 3D 对象