我正在尝试在ES中的顶点着色器中使用结构体制结构:
struct temp{
mat4 mvp;
};
uniform temp MP;
in vec2 inPos;
void main() {
vec4 vert = MP.mvp * vec4(inPos.x,inPos.y,0,1);
gl_Position = vert;
}
glGetUniformLocation(program, "MP.mvp");
它不会在屏幕上显示任何内容,也不会显示任何内容。它是否允许在glsl es 300?
适用于OpenGL。
答案 0 :(得分:1)
从The OpenGL ES Shading Language v3.00开始,在4.3.5 Uniform Variables
部分中说明:
统一限定符可以与任何基本数据类型一起使用,或者在声明类型为结构的变量或其中任何一个的数组时使用。
如果glGetUniformLocation(program, "MP.mvp")
返回0或更高,那么您目前分享的内容看起来是合法的。您可能需要发布更多代码才能找到它的底部。
如果你的结构中只有mat4
,那么我建议你完全删除这个结构。