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);

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

4

1 回答 1

1

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

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

你不为顶点(x,y,z)传递3个浮点数吗

于 2013-10-23T06:48:24.913 回答