WebGL和OpenGL之间的差异

时间:2011-12-11 06:49:57

标签: opengl webgl

有人能给我一个关于OpenGL和WebGL之间确切区别的简单答案吗?我需要更具体的以下内容: 编程语义,API的继承,API的扩展等。

我查看了以下网站,但对我来说不是很清楚: http://www.khronos.org/webgl/wiki/WebGL_and_OpenGL_Differences

4 个答案:

答案 0 :(得分:40)

WebGL是“OpenGL ES 2”,不是普通的OpenGL(ES代表'嵌入式系统')。所以有第一个区别。 OpenGL ES本质上是OpenGL的一个子集。此外,WebGL 几乎与OpenGL ES 2相同,但有一些细微差别,在您提供的链接中有解释。没有太多要添加到该链接,它是一个非常清楚的解释OpenGL ES 2和Webgl之间的不同。

答案 1 :(得分:27)

OpenGL是一种以桌面计算机为中心的API(如Direct3D)。 WebGL源自OpenGL ES 2.0(适用于移动设备),其功能较少且使用起来更简单。

WebGL也设计为在浏览器中运行,因此比OpenGL ES 2.0有一些限制。

与OpenGL不同,WebGL不需要本机驱动程序支持。一个名为ANGLE的包装器,Safari,Chrome和Firefox使用它可以将WebGL调用和GLSL转换为OpenGL / GLSL或Direct3D / HLSL

请参阅Khronos wiki获取详细答案:http://www.khronos.org/webgl/wiki/WebGL_and_OpenGL_Differences

答案 2 :(得分:8)

WebGL旨在在浏览器(Web应用程序)中运行。

  

WebGL是一个软件库,它扩展了JavaScript编程语言的功能,允许它在任何兼容的Web浏览器中生成交互式3D图形。
  ...
  它使用HTML5 canvas元素,并使用Document Object Model接口进行访问。自动内存管理作为JavaScript语言的一部分提供。


OpenGL通常用于桌面应用程序。它是一种跨语言的跨平台规范,其中WebGL或多或少是一个子集。

答案 3 :(得分:2)

联盟(https://www.khronos.org/webgl/)定义引用如下。

  

WebGL是一个跨平台,免版税的Web标准,用于基于OpenGL ES 2.0的低级3D图形API,通过HTML5 Canvas元素作为文档对象模型接口公开。熟悉OpenGL ES 2.0的开发人员将使用GLSL将WebGL识别为基于Shader的API,其构造语义与底层OpenGL ES 2.0 API的语义相似。它与OpenGL ES 2.0规范非常接近,并且对开发人员期望的内存管理语言(例如JavaScript)做出了一些让步。

OpenGL和WebGL具有相似的语义,但是用不同的语言编码。您将在基本级别上看到,大多数差异都存在于C / C ++与JavaScript

的编程语言结构中

WebGL and OpenGL显示了两者之间的相似之处,即C / C ++中的OpenGL和JavaScript中的WebGL。