这是我参与「第四届青训营 」笔记创作活动的的第13天
在大二时接触到过OpenGL,而其对图形的绘制、渲染等等都令我好奇且惊喜,这次见到WebGL觉得熟悉亲切,也更为好奇它与OpenGL的区别,跟着月影老师学习后自觉受益匪浅。
初识WebGL
WebGL(Web 图形库)是一个JavaScript API,可在任何兼容的Web浏览器中渲染高性能的交互式3D和2D图形,而无需使用插件。WebGL通过引入一个与OpenGL ES 2.0非常一致的API来做到这一点,该 API 可以在HTML5元素中使用。这种一致性使API可以利用用户设备提供的硬件图形加速。
WebGL、OpenGL和OpenGL ES的用途区别
- WebGL
是"OpenGL for the web"(用于网络的OpenGL)。它使得网页可以利用系统显卡来加速3D图像生成,并被广泛应用于渲染 HTML5 Canvas元素(由Javascript动态画出)。 - OpenGL
OpenGL是业界采用最广泛的2D和3D图形API,window-system和operating-system独立的,也是网络透明的。OpenGL 使 PC、工作站和超级计算硬件软件开发人员能够在 CAD、内容创建、能源、娱乐、游戏开发、制造、医疗和虚拟现实等市场中创建高性能、视觉上引人注目的图形软件应用程序。OpenGL 公开了最新图形硬件的所有功能。 - OpenGL ES
OpenGL ES 是相应的对于嵌入式系统,尤其是对于Android,iOS设备以及网页浏览器(WebGL)的一套标准它由适用于低功耗设备的桌面OpenGL的明确定义子集组成,并在软件和图形加速硬件之间提供灵活而强大的接口。
学习WebGL
正如上一节的"OpenGL for the web",WebGL同样可以实现绘制2D图形、着色、动画、创建3D物体、纹理贴图、光照等等功能,而这些也有待进一步的深入学习才能够实现,之后在有余力的情况下会进一步去探索实现。
本文内容来源于WebGL - Web API 接口参考 | MDN (mozilla.org)、OpenGL Overview - The Khronos Group Inc、OpenGL ES Overview - The Khronos Group Inc、OpenGL, OpenGL ES, WebGL, GLSL, GLSL ES API 列表 (umich.edu)和今日课程《WebGL与动画实现》