损坏的顶点和碎片着色器

时间:2014-08-30 21:12:03

标签: c++ opengl glsl sdl

我开始使用http://www.opengl-tutorial.org获取OpenGL 它使用following code来加载和编译着色器(链接因为代码对于这篇文章来说太长了,我认为它与我的着色器有关)

运行此代码时,会打印出“ERROR:Compiled Vertex Shader is corrupt”和“ERROR:Compiled Fragment Shader is corrupt”。我的着色器正在关注

顶点着色器

#version 330 core
out vec3 color;

void main(){
    color = vec3(1,0,0);
}

片段着色器

#version 330

layout (location = 0) in vec3 position;

void main()
{
    gl_Position.xyz = position;
    gl_Position.w = 1.0;
}

我正在使用XCode 5.1.1,OpenGL 3.3和GLSL 3.30。

如果你们可以帮助我超越这一点,那将是非常棒的。我被困在没有使用VAO的YouTube教程上,所以我自己去学习这些东西,所以我可以用我自己的代码编写教程。

提前致谢

1 个答案:

答案 0 :(得分:1)

这是一个常见的问题,它出现在XCode中,通常是由文本编码或不正确的以空字符结尾的字符串引起的。两者的末尾都可能有非打印字符。

您可以查看调试器中的VertexShaderCodeFragmentShaderCode字符串,找出是否存在任何错误的字符,或者它们是否未以空值终止。

我发现人们遇到了同样的错误herehere

要修复它们,请使用文本编辑,文本配合或崇高文本(一些非常基本的文本编辑器)打开您的GLSL文件,并将它们仅转换为文本并将其另存为新文件。