OpenGL ES2:在顶点着色器 (iOS) 中使用 "layout" 关键字时出现语法错误
OpenGL ES2: syntax error when using "layout" keyword in vertex shader(iOS)
我是 iPhone OpenGL ES 开发的新手。当我尝试使用 'layout' 关键字指定顶点属性的位置时,编译器抱怨存在语法错误。我用错了吗?或者编译器不支持关键字?我知道还有其他方法可以指定位置,但我想知道为什么这个方法对我不起作用。
顺便说一句,我正在使用 OpenGLES2.0 API.
顶点着色器是:
layout(location = 0) in vec3 position;
void main() {
gl_Position = vec4(position, 1.0);
}
顶点着色器编译日志:
2019-12-25 10:47:48.518110+0800 OpenGLESTest[14556:1063881] compile vertex shader error!
2019-12-25 10:47:48.518284+0800 OpenGLESTest[14556:1063881] compile stage info log
ERROR: 0:1: 'layout' : syntax error: syntax error
在 OpenGL ES 2.0 和 OpenGL ES Shading Language 1.00 neither Layout Qualifiers
中不支持关键字 in
。
如果你想使用布局限定符,你必须切换到 OpenGL ES 3.00 和 OpenGL ES Shading Language 3.00. See Khronos OpenGL ES Registry.
修正GLSL ES 1.00顶点着色器(对应OpenGL ES 2.00):
#version 100
attribute vec3 position;
void main() {
gl_Position = vec4(position, 1.0);
}
我是 iPhone OpenGL ES 开发的新手。当我尝试使用 'layout' 关键字指定顶点属性的位置时,编译器抱怨存在语法错误。我用错了吗?或者编译器不支持关键字?我知道还有其他方法可以指定位置,但我想知道为什么这个方法对我不起作用。
顺便说一句,我正在使用 OpenGLES2.0 API.
顶点着色器是:
layout(location = 0) in vec3 position;
void main() {
gl_Position = vec4(position, 1.0);
}
顶点着色器编译日志:
2019-12-25 10:47:48.518110+0800 OpenGLESTest[14556:1063881] compile vertex shader error! 2019-12-25 10:47:48.518284+0800 OpenGLESTest[14556:1063881] compile stage info log ERROR: 0:1: 'layout' : syntax error: syntax error
在 OpenGL ES 2.0 和 OpenGL ES Shading Language 1.00 neither Layout Qualifiers
中不支持关键字 in
。
如果你想使用布局限定符,你必须切换到 OpenGL ES 3.00 和 OpenGL ES Shading Language 3.00. See Khronos OpenGL ES Registry.
修正GLSL ES 1.00顶点着色器(对应OpenGL ES 2.00):
#version 100
attribute vec3 position;
void main() {
gl_Position = vec4(position, 1.0);
}