在此个人资料中无法访问gl_Position? [关闭]

问题描述 投票:-1回答:1

当尝试使用GLFW / GLEW在C / C ++中编译GLSL着色器时,我收到以下错误:

0(12) : error C5052: gl_Position is not accessible in this profile

我按照learnopengl.com的教程。代码运行并显示空的正方形,并将上述错误消息打印到命令行。任何想法发生了什么以及我如何解决它?

片段着色器是:

#version 410 

layout (location = 0) in vec3 aPos;
layout (location = 1) in vec3 aColor;
layout (location = 2) in vec2 aTexCoord;

out vec3 ourColor;
out vec2 TexCoord;

void main()
{
    gl_Position = vec4(aPos, 1.0);
    ourColor = aColor;
    TexCoord = aTexCoord;
}

顶点着色器是:

#version 410 

out vec4 FragColor;

in vec3 ourColor;
in vec2 TexCoord;

uniform sampler2D ourTexture;

void main()
{
    FragColor = texture(ourTexture, TexCoord);
}

如果您想查看其余代码,请参阅上面的教程链接。

c opengl glsl glfw glew
1个回答
2
投票

看起来您尝试将片段着色器加载为顶点着色器,反之亦然。 gl_Position只能在顶点着色器中设置,因为它是每顶点属性。以正确的顺序加载着色器应该可以解决这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.