Я пытаюсь скомпилировать программу шейдеров в OpenGL 3.2, но я получаю странную ошибку связывания.OpenGL Скомпилированный шейдер был поврежден
После создания вершин и фрагментов шейдеров компилирования и прикрепления их, я стараюсь, чтобы связать их в программу, но я получаю следующую INFOLOG ошибки:
ERROR: Compiled vertex shader was corrupt.
ERROR: Compiled fragment shader was corrupt.
Я совершенно не знаю, что это значит, и единственного вещь, которую я мог найти в Google, - это игнорировать ее. Однако, когда я glUseProgram(), я получаю недопустимую операцию, поэтому я не могу просто проигнорировать эту ошибку.
Кроме того, я просто обновился до XCode 5, и тот же самый код/шейдер работал. Не знаю, как это может быть связано, хотя ..
Edit: источник шейдер
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;
}
Фрагмент:
#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 out в вершинном шейдере, но не имеете соответствующего параметра 'in' в шейдере фрагмента. Из внешнего вида шейдерного кода вы можете полностью удалить эту переменную - вы все равно не используете ее. – keltar