WebGL和OpenGL之间的区别

58

3
编程语义学,API继承,API扩展。 - User
4个回答

56

WebGL是"OpenGL ES 2",而不是普通的OpenGL(ES代表嵌入式系统)。这就是第一个区别。OpenGL ES本质上是OpenGL的子集。此外,WebGL几乎与OpenGL ES 2相同,但存在一些细微差异,这在您提供的链接中有所解释。关于OpenGL ES 2和Webgl之间的区别,那个链接已经非常清晰了,没有太多需要补充的内容。


43
OpenGL是一种以桌面电脑为中心的API(类似于Direct3D)。WebGL源自OpenGL ES 2.0(旨在用于移动设备),具有较少的功能并且更易于使用。
WebGL还设计用于在浏览器中运行,因此比OpenGL ES 2.0有更多限制。
与OpenGL不同,WebGL不需要本地驱动程序支持。称为ANGLE的包装器可以将WebGL调用和GLSL翻译为OpenGL / GLSL或Direct3D / HLSL,Safari、Chrome和Firefox都在使用。
请参阅Khronos wiki以获取详细答案:http://www.khronos.org/webgl/wiki/WebGL_and_OpenGL_Differences

11

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

WebGL是一个软件库,扩展了JavaScript编程语言的功能,使其能够在任何兼容的Web浏览器中生成交互式3D图形。

它使用HTML5 canvas元素,并通过文档对象模型接口进行访问。自动内存管理是JavaScript语言的一部分。


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


4
以下是贵公司 consoritum(https://www.khronos.org/webgl/)的定义:
WebGL 是一个跨平台、免费的 Web 标准,提供了基于 OpenGL ES 2.0 的低级 3D 图形 API,通过 HTML5 Canvas 元素作为文档对象模型接口进行公开。熟悉 OpenGL ES 2.0 的开发人员将会认识到 WebGL 是一个使用 GLSL 的基于着色器的 API,其构造与底层的 OpenGL ES 2.0 API 在语义上非常相似。它非常接近于 OpenGL ES 2.0 规范,但也做了一些让开发者期望的内存管理语言(如 JavaScript)所需的让步。
OpenGL 和 WebGL 具有类似的语义,但使用不同的编程语言编写。从基本层面上看,你会发现大部分差异在于 C/C++ 与 JavaScript 的编程语言结构。 WebGL and OpenGL 展示了两者之间的相似之处,OpenGL 使用 C/C++,WebGL 使用 JavaScript。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接