Opengl es 使用OpenGL ES的glTexCoordPointer问题

Opengl es 使用OpenGL ES的glTexCoordPointer问题,opengl-es,textures,Opengl Es,Textures,我在将纹理映射到三角形条带时遇到一些问题。我想我还是不能完全理解纹理坐标 我有一个512x512纹理,我正试图将它的320x64部分映射到一个三角形条带上 这是我的密码: static const Vertex3D bg_vertex [] = { { 0, 0, 0}, { 0, 64, 0}, { 64, 0, 0}, { 64, 64, 0}, {128, 0, 0}, {128, 64,

我在将纹理映射到三角形条带时遇到一些问题。我想我还是不能完全理解纹理坐标

我有一个512x512纹理,我正试图将它的320x64部分映射到一个三角形条带上

这是我的密码:

static const Vertex3D bg_vertex [] = 
{
    {  0,    0,     0}, {  0,   64,     0}, { 64,    0,     0},
    { 64,   64,     0}, {128,    0,     0}, {128,   64,     0},
    {192,    0,     0}, {192,   64,     0}, {256,    0,     0},
    {256,   64,     0}, {320,    0,     0}, {320,   64,     0}
};

static const GLfloat bg_texcoords [] =
{
    {1.000, 0.000}, {1.000, 0.125}, {0.875, 0.000}, {0.875, 0.125}, {0.750, 0.000}, {0.750, 0.125},
    {0.625, 0.000}, {0.625, 0.125}, {0.500, 0.000}, {0.500, 0.125}, {0.375, 0.000}, {0.375, 0.125}
};

glBindTexture (GL_TEXTURE_2D, bg1Texture);
glEnable(GL_TEXTURE_2D);

glColor4f (1.0, 1.0, 1.0, 1.0);
glTexCoordPointer(2, GL_FLOAT, 0, bg_texcoords);
glVertexPointer(3, GL_FLOAT, 0, &bg_vertex);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 12);
当我运行代码时,它会在三角形条带上显示原始纹理的扭曲图像

有人能告诉我我做错了什么吗


谢谢

好的,当我从纹理坐标中移除额外的大括号时,它现在可以工作了:

static const GLfloat bg_texcoords [] =
{
    1.000, 0.000, 1.000, 0.125, 0.875, 0.000, 0.875, 0.125, 0.750, 0.000, 0.750, 0.125,
    0.625, 0.000, 0.625, 0.125, 0.500, 0.000, 0.500, 0.125, 0.375, 0.000, 0.375, 0.125
};

现在它将纹理完美地映射到三角形上

您能添加一张结果失真的图片吗?这是原始的512x512图像:结果:。坐标系位于屏幕左上角的(0,0)-(320,480)。