跳至主要內容

物体

大约 3 分钟

物体

三维场景由不同物体组成,物体也是现实世界基本构成对象,在二维地图中,物体对应为要素Feature,引擎中物体的基础类Thing,继承自THREE.jsObject3D,引擎内置物体全部基于Thing基类。

引擎内置的基础物体类型近50余种,主要包括基础几何体、线面体、基础复合物体、特效物体和光源,实际在项目开发时,不同业务场景下的对象具有各自的业务逻辑,可自定义物体属性和方法实现物体相关逻辑。

随着引擎的迭代,后续将提供更多物体类型。

基础几何体

基础几何体的外型由几何体参数和材质参数共同构成,也即参数化建模,引擎内置的基础几何体对象如下:

几何体类名几何体名称
Box方体
Capsule胶囊
Cone圆锥体
Cylinder圆柱体
Dodecahedron十二面体
Doughnut环形
Icosahedron二十面体
Lathe车削体
Octahedron八面体
Plane平面
Circle二维圆
Sphere球形
Ring环形
Tetrahedron四面体
Torus环面
TorusKnot环面纽结
CannedLiquid罐装体
// 添加一个方体到场景中
const box = new VT.Box();
viewer.scene.add(box);

线面体

线面体是由点位构成的几何体

类名名称
Line线
Line2线2
CurveLine曲线
TubeLine管线
TubeLine2管线2
RouteLine路线
ExtrudeLine挤出线
Polygon多面
ExtrudePolygon挤出多边形
Fence围栏
GradientFence渐变围栏
NavigationRoute具有方向、宽度,具有动画效果的的线
// 添加一条线到场景中
const line = new VT.Line2({
    points: [[0, 0, 0], [0, 1, 0], [0, 1, 1]]
});
viewer.scene.add(line);

基础复合物体

引擎内置了一些常用的物体,可满足绝大部分功能开发需求,对于一些不同场景下需要自定义参数的物体,则需要程序开发人员根据实际情况开发。

类名物体名称说明
Group空置Thing,可用于分组
Model模型支持gltf、fbx、obj
Billboard标注由图标和文字组成,用于POI点
ImagePlane图像平面图片对象
CanvasPlaneCanvas平面可用于HTML内容、图表、图片等
Audio音频用于播放音频
Display显示器用于显示器及视频播放
VideoPlane视频平面用于视频播放
Heatmap热力图给定不同点位和点位值,渲染出热力图
HtmlPlaneHTML平面将HTMLElement挂载到平面上
LightBox灯箱可用于广告、幻灯片等
Door可用于门、窗、窗帘等
Wall可用于建筑物、墙体等
InteriorSpace室内空间物体用于室内场景墙体、天花板、地板构建
// 添加一个模型到场景中
const model = new VT.Model({
    src: "./models/test.gltf"
});
viewer.scene.add(model);

粒子

类名物体名称说明
Particles粒子系统用于生成各种粒子效果
FlyPoints浮点用于浮动粒子效果
SmokeFire烟雾火使用粒子效果生成的烟雾和火灾效果
// 添加一个浮点物体到场景中
const flyPoints = new VT.FlyPoints();
viewer.scene.add(flyPoints);

特效

类名名称说明
ReflectorPlane镜面放置于模型或场景地面,用于镜面效果
Water水面基于几何体,由水面贴图、波动效果构成的水面效果
WaveCircle波动圈基于波形产生的圆圈动画效果
Snow雪花模拟下雪效果的对象
Rain模拟下雨效果的对象
Earth地球模拟地球效果,非三维GIS地球
GeoPolygon地图多边形生成矢量地图效果
MovingAlongRoute沿路移动的物体常用于制作车辆行驶模拟
// 添加下雪效果到场景中
const snow = new VT.Snow();
viewer.scene.add(snow);
上次编辑于:
贡献者: dashun