定义

WebGL(Web Graphics Library)是一个JavaScript API,用于在任何兼容的Web浏览器中渲染高性能交互式3D和2D图形,而无需使用插件。WebGL通过引入一个非常符合OpenGL ES 2.0的API来实现这一点,该API可以在HTML 元素中使用。这种一致性使 API 可以利用用户设备提供的硬件图形加速。WebGL完全集成到浏览器的所有Web标准中,允许GPU加速使用图像处理和效果作为网页画布的一部分。WebGL元素可以与其他HTML元素嵌入,并与页面的其他部分合成。

什么是WebGL之基于WebGL的3D可视化引擎_html5

WebGL是一个跨平台的开放Web标准,用于基于OpenGL ES的低级3D图形API,通过HTML5 Canvas元素向ECMAScript公开。熟悉OpenGL ES 2.0的开发人员使用GLSL将WebGL识别为基于Shader的API,其构造在语义上与底层OpenGL es API的构造相似。它非常接近OpenGL ES规范,对开发人员对内存管理语言(如JavaScript)的期望做出了一些让步。WebGL 1.0 公开了 OpenGL ES 2.0 功能集;WebGL 2.0 公开了 OpenGL ES 3.0 API。

设计

WebGL 1.0基于OpenGL ES 2.0.为3D图形提供了API。[5] 它使用 HTML5 canvas 元素,并使用文档对象模型 (DOM) 接口进行访问。

WebGL 2.0基于OpenGL ES 3.0.保证了WebGL 1.0的许多可选扩展的可用性,并公开了新的API。

自动内存管理作为 JavaScript 语言的一部分提供。与OpenGL ES 2.0一样,WebGL没有OpenGL 1.0中引入并在OpenGL 3.0中弃用的固定函数API。此功能可以改为由用户通过在 JavaScript 中提供着色器代码和配置数据绑定来提供。

什么是WebGL之基于WebGL的3D可视化引擎_webgl_02

WebGL中的着色器直接在GLSL中表示,并作为文本字符串传递给WebGL API。WebGL 实现将这些着色器指令编译为 GPU 代码。此代码针对通过 API 发送的每个顶点以及栅格化到屏幕的每个像素执行。

历史

WebGL是从Vladimir Vukićević在Mozilla开始的Canvas 3D实验演变而来的。Vukićević在2006年首次展示了Canvas 3D原型。到2007年底,Mozilla和Opera都已经完成了自己的独立实现。

2009年初,非营利性技术联盟Khronos Group成立了WebGL工作组,最初来自Apple,Google,Mozilla,Opera等。WebGL规范的1.0版本于2011年3月发布。截至2012年3月,工作组主席是肯·罗素。

WebGL的早期应用包括Zygote Body。2012年11月,欧特克宣布将大部分应用程序移植到运行在本地WebGL客户端上的云中。这些应用程序包括Fusion 360和AutoCAD 360.WebGL 2规范的开发始于2013年,最终于2017年1月完成。本规范基于 OpenGL ES 3.0.第一个实现是在Firefox 51.Chrome 56和Opera 43中。

应用

​Sovit3D​​ 可视化开发平台采用B/S架构,基于WebGL绘图技术标准,提供基于纯 HTML5(Canvas/WebGL)的标准 Web 技术,可方便的在浏览器上进行浏览和调试,满足了工业物联网跨平台云端化部署实施的需求,从组件库到 2D、3D 组态工具,再到行业矢量图标和三维模型模板资源库,构成了一站式的数据可视化解决方案,可快速实现现代化的、智能化的、跨平台的图形展示效果及交互体验。为Web可视化提供了丰富的展现形式和视觉效果,帮助软件开发公司、解决方案提供商轻松搭建3D可视化场景。

什么是WebGL之基于WebGL的3D可视化引擎_javascript_03

什么是WebGL之基于WebGL的3D可视化引擎_sovit3d_04