我在 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);
这段代码有什么问题?就像第二个覆盖第一个,只有一个顶点被传递到我的着色器中。