OpenGL 3.2でシェーダプログラムをコンパイルしようとしていますが、奇妙なリンクエラーが発生しています。私は絶対にそれが何を意味するのか全く分からのみを持っていないOpenGLコンパイル済みシェーダが破損しました
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);
}
あなたもコンパイルエラーをログに記録してください、あなたはシェーダコードを表示することができますか? – Appleshell
私は完全にシェイダーコードを入れるのを忘れてしまった。編集中ですコンパイルエラーは報告されていません。 – zync
あなたは頂点シェーダで 'outPos'を持っていますが、フラグメントシェーダの対応する' in'パラメータはありません。シェイダーコードの外観から、この変数を完全に削除することができます。 – keltar