Реализация текстурного атласа с triangle_strip или треугольниками. iPhone открыты - PullRequest
1 голос
/ 27 марта 2009

Несколько мест рекомендуют использовать атлас текстуры для производительности. Apple предложит функцию gltexcoordpointer. В моем примере у меня есть ряд квадратов, каждый из которых имеет случайную текстуру. Я поместил все случайные текстуры в супер-текстуру. Теперь проблема в том, что я не могу создать texcoordarray. Я не могу найти никакой информации о том, как gltexcoordpointer связывает выбранную суб-текстуру с координатами вершины. Вершины в идеале должны быть нарисованы с использованием triangle_strip, но треугольники также будут работать.

Ответы [ 2 ]

1 голос
/ 09 ноября 2009

Вам нужно использовать glTexCoordPointer, если вы хотите визуализировать текстуры вообще, я думаю, сжатые или иным образом. Но если вы хотите перемещаться по своей текстуре в ее UV-системе координат, вы можете в любое время свободно управлять отдельными записями в массиве координат текстуры. Я использую такие функции:

- (void) shiftTextureUVY:(float)shift {

  textureVertices[1] += shift;
  textureVertices[3] += shift;
  textureVertices[5] += shift;
  textureVertices[7] += shift;

}
- (void) shiftTextureUVX:(float)shift {

  textureVertices[0] += shift;
  textureVertices[2] += shift;
  textureVertices[4] += shift;
  textureVertices[6] += shift;

}

для создания базового TextureAtlas класса, используя GL_TRIANGLE_STRIP. Полагаю, вы могли бы получить от этого удовольствие и делать отражения и искажения похожими методами.

0 голосов
/ 28 марта 2009

gltexcoorpointer присваивает координату текстуры 1-1. Поэтому мне пришлось рисовать треугольниками и повторять много вершин. Причина, по которой я не смог разделить вершину, заключается в том, что совместно используемая вершина имеет одинаковые координаты текстуры.

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