场景
场景(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表示开启