Sto provando a compilare un programma shader in OpenGL 3.2, ma sto ottenendo uno strano errore di collegamento.OpenGL Compiled Shader era corrotto
Dopo aver creato la compilazione vertex e fragment shader e le collega, cerco di collegarli in un programma ma ottengo il seguente errore infolog:
ERROR: Compiled vertex shader was corrupt.
ERROR: Compiled fragment shader was corrupt.
Non ho assolutamente idea di cosa significhi e l'unico la cosa che ho trovato su google è stata ignorarla. Tuttavia, quando glUseProgram() si ottiene un'operazione non valida, quindi non posso semplicemente ignorare questo errore.
Inoltre, ho appena aggiornato a XCode 5 e la stessa sorgente codice/shader funzionava. Non so come possa essere correlato però ..
Edit: sorgente dello shader
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;
}
Frammento:
#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);
}
Ti log errori di compilazione troppo, e possono mostrare il codice dello shader? – Appleshell
Ho completamente dimenticato di inserire il codice dello shader. È nella modifica. Non sono stati segnalati errori di compilazione. – zync
Hai 'out outPos' in vertex shader, ma nessun parametro' in' corrispondente nello shader di frammenti. Dall'aspetto del codice shader è possibile rimuovere completamente questa variabile - non la si usa comunque. – keltar