Differences between WebGL and OpenGL

Can anyone give me a simple answer about the exact difference between OpenGL and WebGL? I need more specific on the following: programming semantics, API's inheritence, API's extensions etc.

I've looked at the following site but it is not very clear to me: http://www.khronos.org/webgl/wiki/WebGL_and_OpenGL_Differences


WebGL is "OpenGL ES 2", not plain OpenGL (the ES stands for 'for Embedded Systems'). So there's the first difference. OpenGL ES is essentially a subset of OpenGL. In addition, WebGL is almost the same as OpenGL ES 2, but has some subtle differences, explained in the link you provide. There's not much to add to that link, it's a pretty clear explanation of what is different between OpenGL ES 2 and Webgl.


OpenGL is a desktopcomputer-centric API (like Direct3D). WebGL is derived from OpenGL ES 2.0 (intended for mobile devices) which has less capabilities and is simpler to use.

WebGL is also designed to run in a browser, and has therefore a few limitations more then OpenGL ES 2.0.

Unlike OpenGL, WebGL does not require native driver support. A wrapper called ANGLE, which Safari, Chrome and Firefox use can translate WebGL calls and GLSL to either OpenGL/GLSL or Direct3D/HLSL

Please see the Khronos wiki for a detailed answer: http://www.khronos.org/webgl/wiki/WebGL_and_OpenGL_Differences