GLSL 1.3でlwjglを使用して、ラップトップでプロジェクトに取り組んでいます。私のシェーダーはラップトップで正常にコンパイルされますが、新しいグラフィックカードを搭載したデスクトップで同じシェーダーをコンパイルしようとすると、シェーダーにエラーがあったためにシェーダーをコンパイルできなかったというエラーが表示されます。ただし、シェーダーログはエラーを出力しません。GLSLはそれ自体と下位互換性があると思いました。
GL11.glGetString(GL20.GL_SHADING_LANGUAGE_VERSION);
戻り値
3.30 NVIDIA via Cg compiler
私が想定しているのは、標準のGLSL3.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;
}