我一直在使用带有GLSL 1.3的lwjgl在我的笔记本电脑上工作。我的着色器在我的笔记本电脑上编译得很好,但是,当我试图在我的桌面上编译具有较新图形卡的相同着色器时,出现错误,指出着色器无法编译,因为着色器出现错误。但是,着色器日志不会输出任何错误。我认为GLSL向后兼容自己。GLSL兼容性问题
GL11.glGetString(GL20.GL_SHADING_LANGUAGE_VERSION);
回报
3.30 NVIDIA via Cg compiler
这我假设是一样的标准GLSL 3.30。这是一个示例垂直和碎片着色器,适用于我的笔记本电脑而不是我的桌面。
basic_color.vert
#version 130
uniform mat4 projection_matrix;
uniform mat4 modelview_matrix;
in vec3 a_Vertex;
in vec4 a_Color;
out vec4 color;
void main(void)
{
vec4 pos = modelview_matrix * vec4(a_Vertex, 1.0);
gl_Position = projection_matrix * pos;
color = a_Color;
}
basic_color.frag
#version 130
in vec4 color;
out vec4 outColor;
void main(void)
{
outColor = color;
}
“*不过,着色器日志不会输出任何错误。*“您是否正在检查*所有*着色器日志?着色器编译日志*和*程序链接日志? –
我只是使用glGetShaderInfoLog()输出:无法编译着色器,它们是无效的。无法编译着色器:5 –