在ShaderDesigner下编Shader是最为方便的,但这里先用OpenGL下的编程来举例
转载请注明http://blog.csdn.net/boksic 如有疑问欢迎留言
这几个Shader的实际效果:
1.最简单的固定单色Shader
Vertex Shader
坐标经过投影矩阵变换:vTrans = projection * modelview * incomingVertex
void main()
{
gl_Position = gl_ProjectionMatrix * gl_ModelViewMatrix * gl_Vertex;
}
或者更简单的方式,使用ftransform函数
void main()
{
gl_Position = ftransform();
}
Fragment Shader
赋予像素一个固定值的颜色
void main()
{
gl_FragColor = vec4(0.4,0.4,0.8,1.0);
}
2.颜色Shader
在OpenGL程序当中使用 glColor函数指定颜色时,接收该颜色值的Shader
例如OpenGL程序当中画一个红色茶壶: glColor3f(1, 0, 0);
glutSolidTeapot(1);
glColor在Shader当中总共涉及四个值
attribute vec4 gl_Color;
varying vec4 gl_FrontColor; // writable on the vertex shader
varying vec4 gl_BackColor; // writable on the vertex shader
var