我在第10行遇到语法错误。
ERROR: 0:10: 'void' : syntax error syntax error
这是着色器:
#version 330
in vec3 position;
in vec2 textureCoordinates;
out vec2 pass_textureCoordinates;
uniform mat4 transformationMatrix
void main(void) {
gl_Position = transformationMatrix * vec4(position, 1);
pass_textureCoordinates = textureCoordinates;
}
我搜索了一会儿,语法似乎正确
答案 0 :(得分:1)
问题不在于void
本身,但在 void
之前缺少分号:
uniform mat4 transformationMatrix; // <--- add the missing ;
注意,在GLSL中,任何声明都必须以分号(;
)完成。
见OpenGL ES Shading Language 3.20 Specification; Chapter 10 Shading Language Grammar; page 167; declaration rule
或GLSL - The OpenGL Shading Language 4.6; Chapter 9 Shading Language Grammar; page 202; declaration rule。