OpenGL ES 3.2 无法识别几何着色器中的 gl_in
OpenGL ES 3.2 doesn't recognize gl_in in geometry shader
我有以下着色器代码:
#version 320 es
layout(points) in;
layout(points, max_vertices=1) out;
uniform mat4 transform;
void main() {
gl_Position = gl_in[0].gl_Position * transform;
EmitVertex();
EndPrimitive();
}
但是在创建着色器程序时出现以下错误:
'gl_in' : undeclared identifier
'gl_in' : left of '[' is not of type array, matrix, or vector
'gl_Position' : field selection requires structure, vector, or matrix on left hand side
'assign' : cannot convert from 'const highp float' to 'Position 4-component vector of highp float
但在 https://www.khronos.org/registry/OpenGL/specs/es/3.2/GLSL_ES_Specification_3.20.html 中它明确说明了 gl_in 的存在(作为内置变量)。
这与不明确支持 OpenGLES 的 Intel UHD 显卡有关。当我检查请求的 GLSL 版本时,它请求的是不支持 gl_in
作为内置的 OpenGL 2.0。
我有以下着色器代码:
#version 320 es
layout(points) in;
layout(points, max_vertices=1) out;
uniform mat4 transform;
void main() {
gl_Position = gl_in[0].gl_Position * transform;
EmitVertex();
EndPrimitive();
}
但是在创建着色器程序时出现以下错误:
'gl_in' : undeclared identifier 'gl_in' : left of '[' is not of type array, matrix, or vector 'gl_Position' : field selection requires structure, vector, or matrix on left hand side 'assign' : cannot convert from 'const highp float' to 'Position 4-component vector of highp float
但在 https://www.khronos.org/registry/OpenGL/specs/es/3.2/GLSL_ES_Specification_3.20.html 中它明确说明了 gl_in 的存在(作为内置变量)。
这与不明确支持 OpenGLES 的 Intel UHD 显卡有关。当我检查请求的 GLSL 版本时,它请求的是不支持 gl_in
作为内置的 OpenGL 2.0。