【WebGL月影带练 | 青训营笔记】

65 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第16天。
今天学习的内容是关于WebGL,我将课程内容总结为以下几点:
1.什么是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中 canvas 绘图中的 3D 版本。因为原生的 WebGL 很复杂,我们经常会使用一些三方的库,如 three.js 等,这些库多数用于 HTML5 游戏开发。

2.CPU vs GPU
在CPU中,数据是有秩序的进入 CPU 管道中,然后被依次输出。而在 GPU 中,数据可以被大量的读入,GPU 可以一次性处理大量的数据,然后讲其一次性的吐出来。比如说一个很形象的比喻,CPU 处理数据就像我们写字一样,只能一个一个字的写,而 GPU 处理数据就像活字印刷术一般,先将字排版好,然后可以批量的进行印刷。

3.3D标准模型的四个齐次矩阵

  • 投影矩阵
  • 模型矩阵
  • 视图矩阵
  • 法向量矩阵