1.ThingJS1.0诞生降低3D门槛2018年,ThingJSAPI1.0大大降低了3D可视化应用开发门槛!通过高度的功能封装,其他引擎需要上千行代码实现的功能,在ThingJS中只需要一行代码就可以搞定!不仅如此,通过简化场景加载、自定义对象创建、自定义图层切换等一系列逻辑设计,即使没有3D开发经验的人也能快速开发出自己想要的IoT3D可视化应用。随着数字化转型的浪潮,我们希望ThingJS能够提供更加多样化的垂直行业场景管理能力,成为更加开放的数字孪生引擎。因此,2020年底将进行ThingJS2.0的研发升级,从“性能、架构、功能”三个方面全面提升ThingJS2.0的灵活性,使其成为更适合的引擎用于数字孪生应用。2、ThingJS2.0的全面进化,更适合数字孪生应用。①API2.0接口开放量再创新高。之前1.0接口量700+,而2.0接口打开量超过1000+,新增功能45%,并在此基础上简化了开发逻辑,大大提高了开发效率,后续会持续添加。②采用模块化架构,组件级灵活扩展API2.0对模块化架构进行了升级。当API功能不满足需求时,可以通过组件、插件、预制件等方式轻松灵活地进行扩展。之前ThingJS1.0的开发者只能自己想办法扩展复用功能,并没有提供推荐的方法。现在,ThingJS2.0提供了组件方法,可以为对象进行扩展,自由控制组件的生命周期;还提供了插件化的方式,可以复用一个独立的功能模块,比如电梯、停车场等;它还提供了prefabs,可以预先准备一个功能对象模板,在你使用的时候使用。③支持UE/Unity/WebGL渲染引擎的切换底层实现了逻辑与渲染的分离,支持UE/Unity等渲染引擎的实时切换,切换后可以更好的发挥各个引擎的独特能力。渲染时可实现UE/Unity/WebGL一键动态切换。UE/Unity使用云渲染来实现,但开发者使用的逻辑代码仍然是ThingJSAPI,无需调整。3、渲染引擎T3D:WebGL端数字孪生应用的最优方案。Web平台有很多开源引擎,比如:three.js、BabylonJS、PlayCanvas、ClayGL、Oasis等,CS端也有很多,比如:Unity、UE、CryEngine、Ogre等引擎,我们对其中的一些引擎做了深入的研究和项目实践,但发现这些引擎并不能完全满足我们所面临的数字孪生可视化领域的需求。特别是因为现实世界在不断变化,物联网设备每个月都在增加。快速建模、快速管理设备和连接实时数据非常困难。本案例中,我们结合使用C++开发引擎的经验、WebGL的开发经验、上述引擎的使用经验,以及在项目中的实践经验,开发出WebGL版本的T3D引擎,以更好的服务于Web平台3D渲染。在T3D引擎的框架设计中,主要分为四层:标准封装层、渲染逻辑层、场景资源层和扩展层。其中,标准封装层、渲染逻辑层、场景资源层构成核心库t3d.js。核心库是一个网络优先的、最低限度可运行的通用图形渲染库。Web优先是指t3d.js主要以WebGL和WebGPU为底层绘图标准。通用图形渲染库是指t3d.js不限制图形渲染以外的其他逻辑,具有较好的适用性和扩展性。此外,官方还提供了针对常见需求的扩展作为二方库供开发者使用。针对定制化需求,支持开发者基于T3D开发第三方库。渲染引擎封装的功能主要分为:场景树、几何体、材质、渲染管线。T3D还在快速迭代中,未来我们会做:①更强大的基于TransformFeedback特性的粒子系统;②基于节点的材质系统;将于2022年Q1发布。以下是本次完成的升级:此外,ThingJSAPI2.0将在明年继续增加以下功能:①支持物理系统,提供更多模拟应用所需的能力;②支持WebXR,让每个人都可以轻松构建自己的网页端VR、AR应用;③支持基于节点的材质编辑器,方便大家自定义自己想要的材质效果。未来,我们将使用升级后的架构,快速支持最新技术WebGPU。ThingJS开发者无需做任何修改即可体验WebGPU带来的新能力。并且在2022年底之前,T3D渲染引擎和ThingJSAPI2.0将逐步开源,让T3D和ThingJS加速发展,成为众创引擎。
