着色器简介:
//顶点处理器的内置属性变量:
gl_Color; gl_Normal; gl_Vertex;
//顶点处理器的输出变量:
gl_Position; gl_PointSize; gl_ClipVertex;
//片元处理器的内置属性变量:
gl_Color;
//片元处理器的输出变量:
gl_FragColor; gl_FragDepth;
着色语言简介:
- 对C的增加:
//增加矢量类型,通过点运算符可以访问矢量单一分量或多个分量:
vec2 vec3 vec4 mat2 mat4
myVec4.r/g/b/a/x/y/z/w
myVec2 = myVec4.xy
//增加构造函数,支持函数重载:
gl_Color = vec4(myVec4.xyz, 1.0);
gl_Color = vec4(vec3(myVec4), 1.0);
//增加samplerND类型,用于访问N维纹理贴图
//增加Attribute Uniform Varying 关键字
- 对C的缩减:
//不支持数据类型提升
float f = 0; //error
//不支持字符 指针 字节 长整形等数据类型
//取消联合 枚举 按位运算
//GLSL不是基于文件的语言,不会出现#include等指令
Attribute Uniform Varying 关键字
属性变量经常变化,通常和具体的顶点有关,可从应用程序传递至顶点着色器;
一致变量用来将不经常变化的值从应用程序传递至任何着色器(OSG中-设计了Uniform Callback,用于从应用程序中修改uniform的值);
易变变量负责从顶点着色器向片元着色器传递数据。