Одна возможность, которая может прийти вам в голову, - это использовать вершины с некоторыми странными значениями (например, бесконечность или aw, равные 0), но они, скорее всего, просто будут отображаться как нормальные точки на некотором безумном расстоянии (и, таким образом, вы получить странные обрезанные линии). Так что это вообще не сработает.
При рисовании треугольных полос вы можете использовать вырожденные треугольники, чтобы перезапустить полосу. Это работает путем дублирования вершины (или лучше двух последовательных), которая затем приводит к треугольнику (или лучше четыре), который вырождается в линию и, таким образом, имеет нулевую площадь (и не рисуется). Но давайте посмотрим на линейную полосу. При дублировании вершины вы получаете линию, которая вырождается в точку (и, следовательно, не рисуется), но один раз при запуске следующей линейной полосы вы должны получить новую вершину, и поскольку две разные вершины всегда образуют правильную линию, вы видите, что, дублируя вершины, вы не можете перезапустить линейную полосу.
Таким образом, нет никакого реального способа поместить несколько строк в один вызов отрисовки, используя вырожденные вершины (хотя у современного настольного GL есть другие способы сделать это). Лучше всего было бы просто использовать обычный набор строк (GL_LINES
), как предлагает Drewsmits . Хорошо, вы примерно вдвое увеличите количество вершин (если ваши полосы очень длинные), но меньшие накладные расходы драйвера из-за пакетной обработки могут перевесить дополнительную память и накладные расходы на копирование.