Проблемы с glTexCoordPointer при использовании OpenGL ES - PullRequest
2 голосов
/ 22 июля 2009

У меня есть некоторые проблемы с отображением текстуры в треугольную полосу. Я думаю, что я все еще не полностью понимаю координаты текстуры.

У меня есть текстура 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);

Когда я запускаю код, он отображает искаженное изображение исходной текстуры на полосах треугольника.

Может кто-нибудь сказать, что я делаю не так?

Спасибо

1 Ответ

3 голосов
/ 22 июля 2009

ОК, теперь это работает, когда я удалил лишние скобки из координат текстуры:

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

Теперь он идеально отображает текстуру на треугольниках

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...