天天看点

WebGL和OpenGL的联系和区别

WebGL和OpenGL的区别为:性质不同、插件支持不同、用途不同。

WebGL

WebGL的缩写为Web图形库。它主要用于渲染二维图形和交互式三维图形。它是可以与HTML5一起使用的Javascript API。它支持跨平台,并且仅以英语提供。WebGL程序由用JavaScript编写的控制代码组成

1.WebGL 是基于 OpenGL ES 2.0 的 Javascript API,而不是纯OpenGL(ES代表“嵌入式系统”)。

2.WebGL通过 HTML5 的 Canvas 来和 DOM 打交道。因此也和 OpenGL ES 2.0 一样,使用 GLSL 作为 Shading Language (一种 C-Like 顶点计算和着色的语言,缓存编译到 GPU,由 GPU 来执行)。

3.WebGL 2.0基于OpenGL ES 3.0,确保了提供许多选择性的WebGL 1.0扩展,并引入新的API。

OpenGL

OpenGL被称为开放图形库。它被称为跨语言和平台应用程序编程接口,用于呈现二维和三维矢量图形。

OpenGL提供了许多功能,例如扩展。

1.OpenGL ES本质上是OpenGL的一个子集。

2.OpenGL_ES是khronos协会从OpenGL裁剪定制而来的,专为手机,游戏机等嵌入式设备而设计。它的接口其实和 Open GL很类似。

3.OpenGL ES相对OpenGL删减了一切低效能的操作方式,有高性能的决不留低效能的,即只求效能不求兼容性。

主要区别:

  1. WebGL基于OpenGL ES,它缺少常规OpenGL具有的许多功能,例如仅支持顶点和片段着色器。OpenGL具有WebGL所不具备的功能,例如几何体着色器,镶嵌细分着色器和计算着色器。
  2. WebGL主要用于浏览器。OpenGL确实需要本机驱动程序,并且主要用于安装软件。
  3. WebGL用于Web应用程序,而OpenGL用于许多视频游戏。
  4. WebGL更易于学习和开发应用程序。如果您熟悉WebGL,则可以轻松学习OpenGL。
  5. 在WebGL中,它可以使用2D纹理来伪造3D纹理。在OpenGL中,不需要这样做,因为它具有很多功能,例如几何和着色器。
  6. 在WebGL中,从一开始就必须学习使用着色器和缓冲区。在OpenGL中,并非如此。
  7. WebGL具有较少的功能,因此学习曲线较少。OpenGL具有更大的学习曲线,因为它具有包括WebGL在内的许多功能。
  8. WebGL基于OpenGL ES 2,而不是纯OpenGL。OpenGL ES是OpenGL的子集。OpenGL ES具有较少的功能,并且对用户来说非常简单。OpenGL具有很多功能并且难以使用。