这是我参与「第五届青训营 」伴学笔记创作活动的第 16 天
什么是WebGL?
- 学习使用WebGL需要哪些前置知识?
首先,是关于什么是WebGL。WebGL(全写Web Graphics Library)是一种3D绘图协议,这种绘图技术标准允许把JavaScript和OpenGL ES 2.0结合在一起,通过增加OpenGL ES 2.0的一个JavaScript绑定,WebGL可以为HTML5 Canvas提供硬件3D加速渲染,这样Web开发人员就可以借助系统显卡来在浏览器里更流畅地展示3D场景和模型了,还能创建复杂的导航和数据视觉化。显然,WebGL技术标准免去了开发网页专用渲染插件的麻烦,可被用于创建具有复杂3D结构的网站页面,甚至可以用来设计3D网页游戏等等。WebGL完美地解决了现有的Web交互式三维动画的两个问题:第一,它通过HTML脚本本身实现Web交互式三维动画的制作,无需任何浏览器插件支持;第二,它利用底层的图形硬件加速功能进行的图形渲染,是通过统一的、标准的、跨平台的OpenGL接口实现的。
关于学习使用WebGL的前置知识,我认为有以下几个部分:
1、场景(scene)
场景如其名,即显示3D空间内物体的容器,就好比一个箱子是一个3D场景。
2、坐标系:
webgl使用笛卡尔坐标系(宽度、高度和深度),我们也可以指定使用其它坐标系统。WEBGL与过去我所使用的flash3D坐标系有一些区别,在flash3d中,屏幕的左上角为坐标系原点,向下为Y轴正方向,向右为X轴正方向,而在webgl中,屏幕的中心点为原点。 3、投影的概念:我们在屏幕上所看到的三维空间,并非是一个真实的3D空间,而是用数学算法将模拟的三维空间投射到屏幕上的二维图像而已。投影就是将模拟的三维空间内的物体映射到屏幕上生成一个二维图像的过程。投影分为正交投影和透视投影,这也就是摄像机的实现原理。