我正在尝试在 OpenGL 3.2 中编译着色器程序,但遇到奇怪的链接错误。
创建顶点和片段着色器并编译并附加它们后,我尝试将它们链接到程序中,但收到以下信息日志错误:
ERROR: Compiled vertex shader was corrupt.
ERROR: Compiled fragment shader was corrupt.
我完全不知道这意味着什么,我在谷歌上唯一能找到的就是忽略它。但是,当我 glUseProgram() 时,我得到一个无效的操作,所以我不能忽略这个错误。
此外,我刚刚更新到 XCode 5,并且相同的代码/着色器源正在运行。虽然不知道它是如何关联的..
编辑:着色器源
Vertex:
#version 150
in vec3 position;
uniform mat4 worldMatrix;
uniform float time;
out vec3 outPos;
void main(){
gl_Position = worldMatrix*vec4(position, 1.0);
outPos = position;
}
分段:
#version 150
out vec4 outColor;
uniform float time;
uniform float red;
uniform float green;
uniform float blue;
void main(){
outColor=vec4(red, green, blue,1.0);
}
让它工作。
起初,我用另一个编辑器(文本伙伴)重写了着色器,然后有时它可以工作。然后我确保它正确地以 null 终止并且每次都有效。
也许不知何故存在像安登·M·科尔曼(Andon M. Coleman)建议的非印刷字符。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)