2

コンパイル エラーが発生したときに情報ログを照会した後に、これを取得しました。エラーコードが何を意味するのかを教えてくれる単一のリソースを見つけることができませんでした!

glsl 1.1 をサポートする Intel モバイル チップセットで Ubuntu 9.10 を使用する。メサのドライバー。

頂点シェーダー:

#version 110
in vec3 m2d_blendcolor;

out vec3 color;
// out vec2 texcoord0;

void main(void)
{
    gl_Position = ftransform();
    color = m2d_blendcolor;
}

フラグメント シェーダー:

#version 110

in vec3 color;

void main(void)
{
    gl_FragColor = vec4(color, 1.0);
}

シェーダー オブジェクトを初期化するときは、次を呼び出します。

shader.bindAttrib(0, "m2d_vertex");
shader.bindAttrib(1, "m2d_texcoord0");
shader.bindAttrib(2, "m2d_blend_color");

これらの呼び出し

glBindAttribLocation(m_programID/*internal GLuint*/, index, attribName.c_str());

頂点属性をバインドするのが早すぎるということですか? シェーダーがバインドされている場合、それらはバインドする必要がありますか?

4

1 に答える 1

0

修正しました。glsl 1.1 では、in および out 修飾子は無効です。

Khronos OpenGL wiki - Type Qualifier (GLSL)を参照してください。

次の修飾子は、GLSL 1.30 (OpenGL 3.0) で非推奨になり、GLSL 1.40 以降から削除されました。

attribute修飾子は、頂点シェーダーの入力修飾子と事実上同等です。他のシェーダー ステージでは使用できません。インターフェイス ブロックでは使用できません。

varying修飾子は、フラグメント シェーダーの入力または頂点シェーダーの出力に相当します。他のシェーダー ステージでは使用できません。インターフェイス ブロックでは使用できません。

于 2010-03-07T21:38:24.457 に答える