传统地,为了显示三维图形,开发者需要使用 C/C++ 语言,辅以专门的计算机图形库(如 OpenGL、Direct3D)来开发一个独立的应用程序。现在有了 WebGL,只需向熟悉的 HTML/JS 中添加一些额外的三维图形学的代码,就可以在网页上显示三维图形了

WebGL 是内嵌在浏览器中的,不必安装插件和库就可以直接使用它。而且,因为它是基于浏览器(而不是基于操作系统)的,天生跨平台,可以在多种平台上运行 WebGL 程序

WebGL 的优势

开发环境简单

  • 不用去搭建开发环境,如编译器、连接器等
  • 只需一个文本编辑器和一个浏览器

轻松发布三维图形程序

  • 不需要为特定平台编译成二进制的可执行文件,不需要额外安装插件和库
  • 只需要网站和浏览器即可

充分利用浏览器的功能

WebGL 程序实际上是网页的一部分,可以充分利用浏览器的功能,如放置按钮、弹出对话框、绘制文本、播放声音和视频、与服务器通信等等

WebGL 程序允许自由地使用这些功能,而在传统的三维图形应用程序中则需要额外编写这些代码

学习和使用 WebGL 很简单

WebGL 的技术规范继承自免费和开源的 OpenGL 标准,而后者在计算机图形学、电子游戏、计算机辅助设计等领域已被广泛使用多年。可以找到数不尽的参考书籍、材料和示例程序来帮助你加深对 WebGL 的理解

WebGL 的起源

可编程着色器(programmable shader functions):使用一种类似于 C 的编程语言实现了精美的视觉效果。编写着色器的语言又称为着色器语言(shading language),WebGL 基于 OpenGL ES 2.0,也使用 GLSL ES(OpenGL ES shading language)编写着色器

WebGL 程序结构

包含了三种语言:

  • HTML:<canvas>
  • JavaScript
  • GLSL ES:通常以字符串的形式内嵌在 JavaScript 中