WebGL是Web上的3D图形规范,有了WebGL,开发者仅通过JavaScript、Web浏览器和标准的Web技术的堆叠就可以充分驾驭计算机图形硬件的渲染能力。也许WebGL原生的低等级API会让人望而生畏,但实际上有很多开源的JavaScript工具集可以大大简化开发工作。
本节博客将学习WebGL的底层工作原理,在后面学习中, 我们将使用高级别的3D工具集Three.js,它掩盖了很多麻烦的细节。
1、WebGL技术定义
WebGL标准是由科纳斯组织(Khronos Group)开发和维护,该组织还管理着OpenGL、COLLADA等。WebGL的官方描述:
WebGL是免授权费的,跨平台的应用程序接口API。它将OpenGL ES 2.0作为在HTML网页内的3D绘图环境,作为低级别文档对象模型接口开放。它使用OpenGL渲染语言GLSL ES,并可整洁地与其他3D内容上层或下层的网页内容捆绑。它是使用JavaScript编程开发语法开发,适合动态3D网页应用的理想工具,并已被主流互联网浏览器集成。
- WebGL是一套API。
- WebGL是基于OpenGL ES2.0的。为小型计算机设备量身定制的,例如:智能手机和平板电脑。
- WebGL和其他网络内容可以整合在一起。3D画布元素可以作为页面的一部分,可以充满整个页面,也可以放置于<div>标签中。
- WebGL是用于搭建动态Web应用的。
- WebGL是跨平台的。运行于任何操作系统,以及从手机、平板到桌面电脑的任何设备。
- WebGL是完全免费的。
2、3D图形学-入门
3D图形编程通常很难,而且需要大量的数学知识,所以通常情况下,会使用各种框架来代替我们去做其中大部分的复杂工作。
2.1 3D坐标系
2D坐标可以用于定义页面中<div>标签的位置,或者指定在canvas元素上进行