0

私はこのチュートリアルhttp://open.gl/texturesに従いますか? これらのコードを理解できず、Visual Studio プロジェクトで実行できません。また、「in vec2」と「out vec3」とはどのような型の形式ですか??

in vec2 texcoord;

out vec3 Color;
out vec2 Texcoord;

void main()
{
    Texcoord = texcoord;

....

glVertexAttribPointer(posAttrib, 2, GL_FLOAT, GL_FALSE,
                       7*sizeof(float), 0);
glVertexAttribPointer(colAttrib, 3, GL_FLOAT, GL_FALSE,
                       7*sizeof(float), (void*)(2*sizeof(float)));

GLint texAttrib = glGetAttribLocation(shaderProgram, "texcoord");
glEnableVertexAttribArray(texAttrib);
glVertexAttribPointer(texAttrib, 2, GL_FLOAT, GL_FALSE,
                       7*sizeof(float), (void*)(5*sizeof(float)));
4

1 に答える 1

2

あなたが引用した最初の部分は頂点シェーダーであるはずです。これはGLSLで記述されており、Visual Studio (またはその他の C/C++ コンパイラ) によって理解されるのではなく、GL 実装の GLSL コンパイラによって理解されることになっています。あなたが引用した残りは、ホストCPUで実行され、汎用頂点属性配列を設定するGLクライアントコードです。

テクスチャのレッスンを試す前に、そのチュートリアルのより基本的な部分に取り組む必要があります。シェーダーと汎用属性は、前述のチュートリアルの描画レッスンで紹介されています。これは、以降のすべてのレッスンに不可欠です。

于 2013-12-15T19:54:46.573 に答える