在上一篇博客 iOS — OpenGLES之着色器(shader)语法介绍 中,简要介绍了OpenGLES的着色器shader的基本语法,以及Vertex Shader和Fragment Shader的差异。本文中,将简要介绍着色器(shader)的编译、链接及使用。
Vertex Shader和Fragment Shader
Vertex Shader如下:
// variable pass into
attribute vec4 Position; // position of vertex
attribute vec4 SourceColor; // color of vertex
// variable pass out into fragment shader
// varying means that calculate the color of every pixel between two vertex linearly(smoothly) according to the 2 vertex's color
varying vec4 DestinationColor;
void main(void) {
DestinationColor = SourceColor;
// gl_Position is built-in pass-out variable. Must config for in vertex shader
gl_Position = Position;
}
Fragment Shader如下:
varying lowp vec4 DestinationColor;
void main(void) {