GLSL兼容性问题

时间:2012-11-17 14:31:03

标签: opengl glsl shader lwjgl

我一直在使用带有GLSL 1.3的lwjgl在我的笔记本电脑上开展项目。我的着色器在我的笔记本电脑上编译正常但是,当我在我的桌面上编译相同的着色器时有一个更新的图形卡我得到一个错误,说明着色器无法编译,因为着色器中有错误。但是,着色器日志不会输出任何错误。我认为GLSL向后兼容自己。

GL11.glGetString(GL20.GL_SHADING_LANGUAGE_VERSION);

返回

3.30 NVIDIA via Cg compiler

我假设与标准GLSL 3.30相同。这是一个示例的vert和frag着色器,可以在我的笔记本电脑上工作,而不是我的桌面。

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;   
}

1 个答案:

答案 0 :(得分:0)

尝试#version 330 compatibility#version 330或使用vary和gl_FragColor,gl_Position而不是\ out