Спасибо за быстрый ответ, но проблема в том, что одна вершина в сетке может соответствовать нескольким (например, 3) координатам текстуры. Оставляя текстуры вне уравнения, мы действительно можем использовать индексированное рисование, но если вершина A встречается в 2 гранях, то есть в нашей текстурной схеме, соответствующей 2 (s, t) парам, кажется, что нет никакого способа использовать индексированное рисование для достижения этой цели. так как мы не сможем указать несколько требуемых пар (s, t).
аюсь использовать массивы вершин, чтобы нарисовать достаточно большую сетку, содержащую большое количество вершин. Текстуры были определены на основе этих данных, и их достаточно легко рисовать в непосредственном режиме по линиям:
glBegin(GL_TRIANGLES) {
for ( int faceIdx = 0; faceIdx < nFaces; ++faceIdx )
glVertex3fv(&vertexArray[vIdx]);
glTexCoord2fv(&texCoord[vIdx++]);
glVertex3fv(&vertexArray[vIdx]);
glTexCoord2fv(&texCoord[vIdx++]);
glVertex3fv(&vertexArray[vIdx]);
glTexCoord2fv(&texCoord[vIdx++]);
}
}
glEnd();
Однако для удобства чтения, скорости и всего остального я хочу использовать массивы вершин (с целью перехода к VBO). Есть ли способ обойти одну вершину в массиве несколько раз?
Насколько я понимаю, на данный момент необходимо указывать каждую вершину сетки столько раз, сколько она появляется на грани сетки, так как каждая вершина идентифицируется по нескольким координатам текстуры (текстуры захватываются из реального изображения объект, который аппроксимирует сетка), то есть мой массив координат вершины / текс читает так, как будто я заполнил его в немедленном режиме
Есть ли способ использовать массивы вершин, указав координаты текстуры, без использования избыточных (под которыми я подразумеваю повторяющиеся) вершин?