指南
介绍
它是什么
VT
是一套WEB端面向行业、易开发、易集成、易部署的轻量级Javascript三维渲染引擎,旨在支持各种项目,并在Web平台上发布。
基于开源WebGL引擎Three.js深度定制,两者完全兼容,尤其适用于不同行业、不同场景下的三维可视化需求,开发者可快速开发三维应用。
我们在过去实施了数以千计的项目,积累了大量可视化应用开发经验,基于业务功能和图形可视化需求,提炼出一套面向行业、易开发、易集成、易部署的轻量级三维渲染引擎,以满足业务功能、兼顾可视化效果为技术出发点,可满足不同行业、不同业务场景下的轻量级三维应用开发需求。
版本
本文档适用于V1
版本,基于Three.jsR160
版本。
特性
- 基于WebGL技术开发,自研三维图形引擎;
- 无需安装浏览器插件,跨平台、跨终端运行,支持鼠标与触摸式交互;
- 提供应用开发工具包SDK,支持应用开发与项目集成;
- 提供三维场景编辑功能定制开发;
- 支持本地静态部署
设计理念
VT
的设计理念是易开发、易集成、易部署,将应用最终用户和程序开发人员作为应用开发过程的的核心。通过组件实体系统的架构与数据驱动开发的设计思想,VT
被设计成一款集对象和可视化的开发工具,通过这种方式,三维应用程序开发效率得到了很大的提升。
它是如何工作的
一个三维可视化应用本质上是一个由三维渲染引擎、模型资源、数据、业务逻辑共同驱动的应用,您可以视之为一个单页面应用(SPA)。
它和我们常见的游戏类应用类似,加载资源和数据、通过交互实现应用功能,不同的是,游戏类应用有固定的用户群体、大量的地图场景、特制的关卡和脚本逻辑,而一个三维可视化应用面向的是不同的、非固定的用户群体,需要融合不同的数据和资源,集成到特定的业务系统中。
在开发过程中,预先需要根据配置初始化三维应用必须的要素(容器、相机、场景、渲染器、光源等),并实例化一个Viewer对象,Viewer对象作为页面下的三维应用视图入口,Viewer对象是一个常规的Javascript对象,可非常方便的集成到html、vue、react等框架中,如果您有过编写Javascript功能的经验,您在使用时会感受到非常熟悉的开发体验。
在部署和集成过程中,依赖包、资源文件输出为一个独立的离线文件夹(如3d),压缩并解压到/webroot/任意目录下,然后通过/webroot/3d/访问三维应用程序或资源,此文件夹下的所有文件无一例外均可通过web访问,进而在业务系统中以独立程序iframe或代码形式集成。
和其它WebGL渲染引擎区别
目前已知的WebGL三维渲染引擎非常多,常见开源的主要有Three.js、Babylon.js、PlayCanvas、Egret Engine,这些三维渲染引擎主要面向游戏领域,在功能上更偏向于游戏开发。
其它非游戏应用领域的三维渲染引擎面向的场景不同,其功能特性和架构不尽相同。
VT
的定位非常清晰,它是一套Web端、面向行业、易开发、易集成、易部署的轻量级三维渲染引擎,基本覆盖所有轻量级应用场景,如三维园区、三维建筑、三维室内、三维设备、三维物联网等应用。
与three.js关系
Three.js是JavaScript编写的WebGL第三方库,提供了常见的3D基础功能,可以用它创建各种三维场景,包括了摄影机、光影、材质等各种对象,使用three.js
编写三维程序时需要了解非常多的三维概念和对象,即使创建一个空场景,也要实例化不同的对象,如果要进行交互,还需要引入不同的插件、添加更多的组件,这种方式对开发者并不友好。
VT
基于Three.js深度定制,遵循配置式开发原则,开发者创建对象只需要查询配置手册。
两者完全兼容,意味着开发者如果熟悉Three.js
,那么使用VT
基于没有障碍。
浏览器环境
WebGL技术已被大部分最新浏览器支持,caniuse.com/webgl网站维护着最新桌面和移动浏览器对WebGL支持情况。 通过get.webgl.org可检测访问的浏览器是否支持WebGL。
目前Chrome、Firefox、Safari的桌面也移动终端版本都已经支持WebGL标准,采用iOS系统需要iOS8及以上版本,采用IE浏览器须IE11及以上版本才支持WebGL,不管选择哪种类型浏览器,我们建议尽量采用最新版本。
由于Chromium浏览器内核是目前已知性能最高的浏览器内核,相同硬件环境下,运行三维程序效率更高,建议使用Chrome浏览器或Chromium内核浏览器。