2

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

1 に答える 1

0

in\out の代わりに、さまざまな gl_FragColor、gl_Position を試し#version 330 compatibilityたり、使用したりしてください#version 330

于 2012-11-17T14:42:25.670 に答える