8

OpenGL 3.2 でシェーダー プログラムをコンパイルしようとしていますが、奇妙なリンク エラーが発生します。

頂点シェーダーとフラグメント シェーダーを作成してコンパイルしてアタッチした後、それらをプログラムにリンクしようとしましたが、次の情報ログ エラーが発生しました。

ERROR: Compiled vertex shader was corrupt.
ERROR: Compiled fragment shader was corrupt.

私はそれが何を意味するのか全く分かりません.Googleで見つけた唯一のことはそれを無視することでした. ただし、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);
}
4

2 に答える 2