我想在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