物体
大约 3 分钟
物体
三维场景由不同物体组成,物体也是现实世界基本构成对象,在二维地图中,物体对应为要素Feature
,引擎中物体的基础类Thing
,继承自THREE.js
的Object3D
,引擎内置物体全部基于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 | 图像平面 | 图片对象 |
CanvasPlane | Canvas平面 | 可用于HTML内容、图表、图片等 |
Audio | 音频 | 用于播放音频 |
Display | 显示器 | 用于显示器及视频播放 |
VideoPlane | 视频平面 | 用于视频播放 |
Heatmap | 热力图 | 给定不同点位和点位值,渲染出热力图 |
HtmlPlane | HTML平面 | 将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);