损坏的顶点和片段着色器

Corrupt Vertex and Fragment Shader

本文关键字:片段 顶点 损坏      更新时间:2023-10-16

我开始使用http://www.opengl-tutorial.org.
它使用以下代码来加载和编译着色器(链接是因为代码太长了,我认为这是我的着色器的问题)

运行此代码时,它会打印出"错误:编译的顶点着色器已损坏"answers"错误:已编译的片段着色器已损坏。"。我的着色器正在跟踪

顶点着色器

#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教程卡住了,所以我自己去学习这些东西,这样我就可以用自己的代码编写教程了。

提前感谢

这是XCode中常见的问题,通常是由文本编码或不正确的null终止字符串引起的。在这两个字符的末尾可能都有非打印字符。

您可以在调试器中查看VertexShaderCodeFragmentShaderCode字符串,并找出是否有任何错误的字符,或者它们是否以null结尾。

我发现人们在这里和这里都会遇到同样的错误。

要修复它们,请使用文本编辑、文本匹配或高级文本(一些非常基本的文本编辑器)打开GLSL文件,然后将它们转换为纯文本,并将其保存为新文件。