2009-07-21 74 views
2

我有一些問題將紋理映射到三角形條。我認爲我仍然不完全理解紋理座標。glTexCoordPointer問題使用OpenGL ES

我有一個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); 

當運行的代碼,它顯示在三角形帶原始紋理的失真圖像。

有人可以告訴我我做錯了什麼?

感謝

+0

您可以加入的圖片造成的失真? – 2009-07-21 20:50:09

回答

3

OK,現在的工作,當我刪除了額外的支撐,從紋理座標:

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

現在,它的質感完全映射在三角形