opengl:右手坐标系,矩阵列优先
1,创建着色器对象
glCreateShader
2,着色器对象关联着色器代码
glShaderSource
3,把着色器源代码编译成目标代码
glCompileShader
4,验证着色器是否已经编译通过
glGetShaderiv
glGetShaderInfoLog
5,创建一个着色器程序
glCreateProgram
6,把着色器链接到着色器着色器程序中
glAttachShader
7,链接着色器程序
glLinkProgram
8,验证着色器程序是否链接成功
glGetProgramiv
glGetProgramInfoLog
9,使用着色器程序进行定点或片段处理
glUseProgram
缩放
Cocos2dx中,GLProgramCache类负责初始化并且保存Shader程序,并且为需要渲染的元素提供需要的Shader程序
uniform类型
sampler2D
vec2
vec3
vec4
mat4
uniform vec2 u_XXX[25];
中间输入的变量有v_texCoord
v_fragmentColor
最终显示为gl_FragColor
采用texture2D(sampler2D, vec2)获取坐标元素值
操作:
dot()
OpenGL ES 2.0 Shader
1)加载shader
2)获取指向顶点着色器相应数据的Index
3)根据Index向顶点着色器中传递数据
着色语言是类C语言,支持类型有限
支持的类型有:
float bool int
vec2 vec3 vec4
ivec2 ivec3 ivec4
bvec2 bvec3 bvec4
mat2 mat3 mat4
采样器sampler1D sampler2D sampler3D
OpenGL渲染管线
OpenGL是个状态机
编写Shader的语言为GLSL语言
GLSL着色器代码分为两个部分:vertex shader fragment shader
有时还会有geometry shader
gl_Color
http://blog.csdn.net/racehorse/article/details/6638455