个人感觉: 1、图扑在场景的编辑器更加灵活,除了支持模型,还支持图标(通过图扑2d编辑器生成的json文件)、贴图(jpg、png)等。ThingJs的场景搭建工具导入obj模型时,不支持导入对应的mtl文件; 2、图扑的功能开发流程比较简单,只需要引入SDK即可在vscode等开发工具中进行开发。ThingJs的离线开发流程相对复杂,需要安装软件环境、安装开发程序、安装编辑器等等; 3、图扑的工作人员反馈说,thingjs 的引擎是基于 three.js 封装的,产品技术上图扑比较有优势的,这个可能在大场景以及一些特定功能开发下有所体现; 4、图扑有大量的钢铁行业案例,可以作为参考,但源码要收费。他们在掘金上发布了很多文章,里面涉及了核心功能的讲解以及代码的实现方式,这个还是比较好的; 5、在技术支持上,开发过程中遇到问题,图扑会提供相应的解决方案。ThingJs的工作人员说客户一般都是以项目的形式跟他们合作,就是除了买平台外,建模和开发都交给他们来做,不提供技术指导。
1、ThingJs的场景搭建工具导入obj模型时,不支持导入对应的mtl文件
2、ThingJs的场景搭建工具仅支持模型搭建,图扑支持图标(通过图扑2d编辑器生成的json文件)、贴图(jpg、png),使用起来更加灵活
一、开发流程与工具链
| 维度 | 图扑(HT for Web) | ThingJS |
|---|---|---|
| 场景构建 | 依赖JavaScript类库手动编程开发,需前端深度参与建模逻辑 | 提供可视化工具链:• CityBuilder(城市级GIS场景) • CampusBuilder(园区/工厂搭建) • 支持CAD图纸导入生成建筑 |
| 模型资源 | 需自行建模或集成第三方模型,无公开模型库 | ThingDepot模型库提供数万个行业模型(如机房设备、管线),支持用户上传自定义模型 |
| 开发方式 | 基于底层WebGL封装,需编写Shader和材质代码,接近Three.js开发模式 | 高层抽象API:封装渲染细节,提供“园区-楼层-设备”层级控制,支持拖拽官方示例代码块(159+案例) |
| 定位 | 工业组态与实时监控 | 物联网全尺度可视化PaaS平台 |
| 技术门槛 | 高(需WebGL知识) | 低(JavaScript基础即可) |
| 生态支持 | 组件库+渲染引擎 | 工具链+模型库+云服务一体化 |
ThingJs开发以及发布流程
ThingJs开发以及发布流程
开发工具对比
1、场景编辑器
ThingJS
图扑
生态
thingjs 的引擎是基于 three.js 封装的,产品技术上HT还是比较有优势的。
HT 是全自主引擎:
1、支持 2D 矢量面板和图表的数据绑定,2D 可与 3D 在三维空间无缝融合复用素材资源
2、支持 2D 矢量可自定义交互逻辑,可延伸到 3D 和 VR 场景,无需二次开发交互逻辑,无需关系鼠标、触屏和 VR 的异构接口
3、支持 UI 库显示矢量图片,无需为不同视网膜分辨率下载不同图片,并在 3D 内自动实现 LOD 的动态变化功能
4、支持纯 HTML5/Web 化 2D 编辑器和 3D 编辑器,支持编辑器的自定义风格、布局和菜单工具条等内容
5、可将 2D 和 3D 场景在编辑器上互相嵌套叠加、旋转和缩放,高度组件化无缝融合
6、可承载十万以上级别的 2D、3D 及 UI 的表格树通用组件图元量,满足海量物联网设备和数据场景需求
7、采用事件机制进行界面局部更新,避免 FPS 的游戏方式,过多进行无意义的界面刷新,避免桌面卡顿和手机发烫等问题
8、采用统一数据模型,可驱动 2D、3D、Chart 和 UI 全套图形库,降低学习指数曲线
9、组态工具支持大屏可视化设计,支持 UI 和图表元素进行界面自适应,支持 UI 和图表融入 3D 和 VR 交互
10、支持可缩放、可旋转、可融合画布的 UI 库,满足组态控制界面操作需求
11、数据模型 + 基础 UI 库 + 2D矢量拓扑 + 3D渲染引擎的 JS 核心库控制在 700k 范围 ,以提高网络加载速度和用户访问体验
12、不依赖任何第三方商业或开源库,确保产品不因第三方的浏览器兼容问题,或不再维护风险,导致系统长期运维的技术隐患
详细
1、HT 的产品包应该是业界最小的,数据模型 + 拓扑图 + 3D 引擎 + 通用组件不到1M,业界任何一个模块的产品都几乎比 HT 大得多
2、HT 在电信、电力、工控等领域发展了十几年,成品性能和稳定性尽可放心,例如上万个纯矢量动态刷新的分机可供评估 www.hightopo.com/demo/fan/in…
3、HT 有自己完整的矢量解决方案 www.hightopo.com/guide/guide… 并且这些矢量贯穿所有通用组件,不仅仅拓扑图可以用,例如一个表格都可以用矢量来绘制 www.hightopo.com/demo/pageta… 业界通用组件我至今未见矢量的解决方案,大家只能靠在不同视网膜分辨率下不同尺度图标来搞定
4、HT 的网络拓扑图可自定义扩展性非常强,www.hightopo.com/demo/QW/ind… 这样的拓扑图你可以各种拖拽体验下,应该业界没有这样复杂拓扑交互性的案例,你可以切换各个图元所在分组,组重叠时可自动弹开
5、HT 的拓扑不仅是 2D 的 3D 我们也可以数据统一的驱动方式 www.hightopo.com/demo/blog_3… www.hightopo.com/guide/guide… 和 3D 融合的典型案例可见 www.hightopo.com/guide/guide…
6、HT 支持很多大屏矢量的应用例如 www.hightopo.com/demo/metro/… 和 www.hightopo.com/demo/Medica… 这两个都是纯矢量的大屏应用案例
更多 demo 可参考 www.hightopo.com/demos/index…
数百个 HTML5 例子学习 HT 图形组件
掌握 HT 基础: 1、基础数据类型: hightopo.com/guide/sdked… 2、数据模型:hightopo.com/guide/sdked… 3、视图组件: hightopo.com/guide/sdked… 4、矢量手册:hightopo.com/guide/sdked… 5、序列化机制:hightopo.com/guide/sdked…
如有三维需求: 1、3D基础:hightopo.com/guide/sdked… 2、3D视图组件:hightopo.com/guide/sdked… 3、OBJ 导入:hightopo.com/guide/sdked…