WebGL和图形引擎
应用 WebGL 渲染图形的时候,需要提供两段渲染程序分别称为 vertex shader 和 fragment shader,很多资料里把他们称为管线。 基本上 vertex shader 用于计算点坐标,fragment shader 用于计算颜色。 基本上 WebGL 的 API 都是在设定各种状态,然后让 GPU 运行这两渲染程序完成渲染。
管线接收数据的四种方法:
- 属性(Attributes),缓冲区(Buffers)和顶点数组(Vertex Arrays): Buffers 就是搬运到 GPU 中的一些二进制数据,想放什么就放什么。Attributes 具体描述 Buffers 中的数据格式。 Buffer 中的数据不能随机访问,由 vertex shader 根据 Attributes 逐个的搬运出来。
- Uniforms: 管线程序中需要用到的一些全局变量,在运行之前配置。
- Textures: 在管线程序中可以随机访问的数据。最常用的功能就是贴图纹理。
- Varyings: vertex shader 向 fragment shader 传递数据的方式。
例程: