摄像机
摄像机,如同大家拍照时使用的相机,用来确定观察3D场景的视角。在 GlowJS
中,app
对象有一个专门的相机管理器对象 cameraMgr
,它是 CameraMgr 类型。摄像机包含两个重要的位置参数:镜头位置 position
和被拍摄物体的位置 target
(又叫目标点或者看点)。
自适应观察
自适应观察可以将需要观察的 实体
在相机中聚焦显示,比如层级、物体等。自适应观察需要调用 fit 方法。层级切换完成后,会自行调用 fit
方法,将当前层级显示到相机中央。
当调用 fit
方法后,会优先使用实体对象的视角数据 viewInfo 来聚焦实体。 viewInfo
需要手动设置,默认为 null
。当实体未设置视角数据时,系统将自动计算一个最佳观察视角。你可以通过 postiton
和 target
属性来获取当前相机的视角数据,也可以调用 log 方法。
typescript
app.cameraMgr.fit(entity);
飞行
飞行是指摄像机从当前视角通过动画方式切换到目标视角。飞行的方法是 flyTo , fit
内部也是调用的 flyTo
。
typescript
app.cameraMgr.flyTo([0,70,70], [0,0,0]);
自动旋转
我们经常需要实现这样一个功能,当没有用户操作一段时间后,希望场景自动旋转起来,此时就可以使用摄像机的自动旋转功能。自动旋转通过属性 autoRotate 来控制,它是 AutoRotate 类型。自动旋转默认是关闭的,需要手动开启。你还可以设置空闲等待时间 timeout
。
typescript
app.cameraMgr.autoRotate.enable = true;
app.cameraMgr.autoRotate.timeout = 120000;
切换2D/3D模式
切换到2D模式(正交模式),使用 toOrthographic 方法;切换到3D模式(透视模式),使用 toPerspective 方法。
typescript
app.cameraMgr.toOrthographic(); //切换到2D模式
app.cameraMgr.toPerspective(); //切换到3D模式