【问题标题】:OpenGL ES 3.2 doesn't recognize gl_in in geometry shaderOpenGL ES 3.2 无法识别几何着色器中的 gl_in
【发布时间】:2021-07-07 12:29:50
【问题描述】:

我有以下着色器代码:

#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 的存在(作为内置变量)。

【问题讨论】:

  • 是的,我做了更多的实验......而且似乎(因为我使用的是英特尔 UHD 显卡)它并没有真正请求 OpenGLES,而是其他一些内置变量不可用的 OpenGL 版本.

标签: opengl-es glsl glsles


【解决方案1】:

这与 Intel UHD 显卡不明确支持 OpenGLES 有关。当我检查请求的 GLSL 版本时,它请求的是不支持 gl_in 作为内置的 OpenGL 2.0。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多