GLSL ES 中的存储变量修饰符(const/attribute/uniform/varying/in/centroid in/out/centroid out)

GLSL ES 3.00 中支持的存储变量修饰符

变量名称 作用 示例
const 编译过程常量,或者函数的只读参数 const vec3 zAxis = vec3 (0.0, 0.0, 1.0);
in
centroid in
用于连接 shader 的上一阶段;
centroid 为质心采样关键字,用于避免伪像,不可用于顶点着色器;
顶点着色器中的 out 和片段着色器中的 in 名称相同时构成接口,必须具有相同的类型和精度;
in vec4 position;
centroid in vec2 TexCoord;
flat in vec3 myColor;
out
centroid out
用于连接 shader 的下一阶段;
centroid 为质心采样关键字,用于避免伪像 ,不可用于顶点着色器;
顶点着色器中的 out 和片段着色器中的 in 名称相同时构成接口,必须具有相同的类型和精度;
out vec3 normal;
centroid out vec2 TexCoord;
invariant centroid out vec4 Color;
flat out vec3 myColor;
uniform 统一变量,在 shader,OpenGL ES 和应用程序中保持一致,链接在一起的顶点着色器和片段着色器共享同一个统一变量空间 uniform vec4 lightPosition;

GLSL ES 1.00 中支持的存储变量修饰符

变量名称 作用 示例
const 编译过程常量,或者函数的只读参数 const vec3 zAxis = vec3 (0.0, 0.0, 1.0);
attribute 用于连接顶点着色器和 OpenGL ES,存储逐顶点数据,仅用于顶点着色器中 attribute vec4 position;
varying 用于连接顶点着色器和片段着色器,从顶点着色器向片段着色器传递变量 varying vec3 normal;
uniform 统一变量,在 shader,OpenGL ES 和应用程序中保持一致,链接在一起的顶点着色器和片段着色器共享同一个统一变量空间 uniform vec4 lightPosition;

猜你喜欢

转载自www.cnblogs.com/flypopo/p/10182850.html