我想在OpenGL 3.2中编译一个着色器程序,但我得到一个奇怪的链接错误。OpenGL编译着色器被破坏
创建顶点和片段着色器编译和连接它们之后,我尝试将它们连接成一个程序,但我得到以下信息日志错误:
ERROR: Compiled vertex shader was corrupt.
ERROR: Compiled fragment shader was corrupt.
我完全不知道这意味着什么,只我可以在谷歌上找到的东西就是忽略它。但是,当我glUseProgram()它得到一个无效的操作,所以我不能忽略这个错误。
此外,我刚刚更新到XCode 5和非常相同的代码/着色器源工作。不知道怎么可以,虽然有关..
编辑:着色器源
顶点:
#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);
}
你登录编译错误太多了,你可以显示着色器的代码? – Appleshell
我完全忘了放置着色器代码。它正在编辑中。没有编译错误报告。 – zync
您在顶点着色器中有out outP,但在片段着色器中没有对应的in参数。从着色器代码的外观你可以完全删除这个变量 - 无论如何你都不会使用它。 – keltar