一、前言
自从入坑了CesiumJS,一直对一些特效感兴趣。奈何三维方面基础太薄弱,每次看别人写的glsl特效都有点力不从心。更不要说实现自己想要的特效。终于最近抽空入手了一本《WebGL编程指南》,强烈推荐像我一样的小白去看。这本书的原版是日文,后来被翻译为中文和英文。非常感谢本书的翻译者,用平实的语言让我读懂了WebGL的特性,并让我非常自然的接受了后面比较难以理解的矩阵变换。
我写WebGL编程指南系列,也是跟着这本书的脉络,整理一下我的学习心得,并分享出来。
二、WebGL概述
WebGL是一项用来在网页上绘制和渲染复杂三维图形,并允许用户与之进行交互的技术。传统的三维渲染,需要C或C++语言开发,并利用OpenGL(开源)或Direct3D(微软提供)这些三维图形库开开发独立应用程序。WebGL的出现,改变了桌面端应用程序垄断三维技术的情况。WebGL内嵌在浏览器中,不需要安装软件和3D环境,直接打开网页即可浏览。
WebGL技术规范继承自免费和开源的OpenGL标准,因此WebGL就是Web版的OpenGL(实际上,WebGL继承自OpenGL的一个特殊版本---OpenGL ES 2.0)。OpenGL 2.0版本开始,支持了可编程着色器方法(programmable shader functions),这个特性被OpenGL ES 2.0继承,并成为了WebGL 1.0标准的核心部分。
因此也可以说,OpenGL ES 着色器语言(