将属性传递给着色器

时间:2013-10-23 02:03:28

标签: opengl-es-2.0

我在Android上使用OPEN GL ES2.0。

我需要将两个属性传递给着色器,一个用于位置,一个用于纹理坐标,

//vertices for position
vertices = new float[12] { -1.0f, -1.0f, 1.0f, -1.0f, 1.0f, 1.0f, -1.0f,
        -1.0f, 1.0f, 1.0f, -1.0f, 1.0f };

//vertices for texture coordinates.
txtVertices = new float[12] { 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 1.0f, 0.0f,
        0.0f, 1.0f, 1.0f, 0.0f, 1.0f };


//Passing to shader.
    glVertexAttribPointer(texCoordHandle, 2, GL_FLOAT, GL_FALSE, 0,
        txtVertices);
glVertexAttribPointer(vPositionHandle, 2, GL_FLOAT, GL_FALSE, 0, vertices);


glEnableVertexAttribArray(vPositionHandle);
glEnableVertexAttribArray(texCoordHandle);


glDrawArrays(GL_TRIANGLES, 0, 6);

glDisableVertexAttribArray(vPositionHandle);
glDisableVertexAttribArray(texCoordHandle);

这段代码有什么问题?它就像第二个覆盖第一个,只有一个顶点传递到我的着色器。

1 个答案:

答案 0 :(得分:1)

似乎您发布的代码中没有错误。

可能在着色器或其他部分中有错误

不要为顶点位置(x,y,z)传递3个浮点数

相关问题