我一直在使用帶有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 –