Пишу 3d-движок, модели хочу загружать из Blender.
Но почти все форматы экспорта (например, raw, obj, collada) разбивают модель на грани с увеличением числа вершин.
Например, есть обычный куб, у него 6 граней и 8 вершин. Но при экспорте каждая грань представляется четырехугольником (случай с треугольниками пока не рассматриваем, суть та же) с четырьмя вершинами. Т.о. на выходе получаем 6*4 = 24 вершины против 8 исходных. Т.е. можно, конечно, потом построить модель, используя 6 отдельных четырехугольников, но ведь OpenGL (скорее всего и DirectX (я работаю с OpenGL)) для построения поверхностей имеет связные четырехугольники и треугольники (GL_QUAD_STRIP, GL_TIANGLE_STRIP).
И если задачу с кубом можно решить вручную, то как быть со сложной моделью, состоящей из тысячи четырехугольников (или треугольников)?
Как рисует сам Blender: связными полигонами или отдельными? Какой формат экспорта (если такой существует) поддерживает вывод координат вершин таким образом, чтобы по ним рисовать связными полигонами? Т.е. какой порядок обхода вершин?
Не хочется в разы терять производительность из-за введения в программу лишних, дублирующих друг друга, вершин. Или я один заморачиваюсь, а все нормальные люди закрывают на это глаза?