跳到主要内容

场景

场景(Scene)是渲染树的根结点,几乎所有与渲染相关的物体都要添加到场景中才会生效。

示例

使用

// 创建场景
const scene = new Scene();

// 配置化创建场景
const scene = new Scene({ usePhysics: true, // 开启物理引擎 });

常用能力

相机管理

你可以通过scene上的cameraManager完成相机的增删和激活。

scene.cameraManager.addCameras(camera);
scene.cameraManager.activeCamera = camera;
scene.cameraManager.removeCamera(camera);

灯光管理

你可以通过scene上的lightManager完成灯光的增删。

scene.lightManager.addLights(light1, light2);
scene.lightManager.removeLights(light1, light2);

场景构建

Scene是 3D 场景的根节点,待渲染的物体需要添加到场景内才能在后续流程中完成渲染

// 添加
scene.addChildren(mesh1, mesh2);
// 删除
scene.removeChildren(mesh1);
// 查找
scene.getChildByName(name1);

迷雾

Tinoe 的场景提供迷雾效果的设置,使用也非常简单:

scene.fog.color = new Color();

需要注意的是,迷雾有两种模式:

  • 指数型迷雾:更接近真实场景,通过密度计算
  • 线性迷雾:根据制定的 near/far 线性插值

默认为线性迷雾,可通过以下方式开启指数型模式

scene.fog.isExp = true;

背景

Tinoe 提供三种背景模式,分别是纯色、背景板以及天空盒,如下所示。

通过scene.background访问背景设置,默认关闭,设置背景值时会自动开启。

// 开启纯白色背景
scene.background.setValue('#fff');
// 开启图片背景
scene.background.setValue(texture2D);
// 开启天空盒背景
scene.background.setValue(textureCube);

也可以手动开启/关闭背景渲染。

scene.background.enable = false; // 关闭背景,true表示开启

API

Scene