Почему вы не можете использовать примитив GL_LINES, чтобы делать то, что вы собираетесь делать? Вы можете указать ширину, фильтрацию, гладкость, текстуру что угодно. Вы можете визуализировать все вершины, используя glDrawArrays (). Я знаю, что это не то, что вы имеете в виду, но, поскольку вы сосредоточены на двухмерном рисовании, это может быть проще. (поиск текстурных линий и т. д.)

я есть путь, составленный из списка 2D точек. Я хочу превратить их в полосу треугольников, чтобы визуализировать текстурированную линию определенной толщины (и другие подобные вещи). Таким образом, по существу, список двухмерных точек должен стать списком вершин, определяющих контур многоугольника, который при рендеринге будет отображать линию. Проблема заключается в обработке угловых соединений, рукавов, колпачков и т. Д. Полученный полигон должен быть «идеальным» в смысле отсутствия перерисовок, чистых соединений и т. Д., Чтобы его можно было экструдировать или иным образом поиграть.

Есть липросто ресурсы, которые могут обеспечить понимание алгоритма, код или любую другую информацию об эффективном выполнении этого?

Я абсолютно НЕ хочу полноценной 2D векторной библиотеки (cairo, antigrain, OpenVG и т. Д.) С кривыми, дугами, тире и всеми прибамбасами. Я копался в множестве исходных деревьев для реализаций OpenVG и других вещей, чтобы найти некоторое понимание, но все это ужасно запутано.

Я определенно хочу написать это сам, но есть много вырожденных случаев (маленькие сегменты + толстая ширина + острые углы), которые создают всевозможные проблемы соединения. Даже небольшая помощь спасла бы меня от попыток разобраться со всеми ними.

РЕДАКТИРОВАТЬ: Вот пример одного из тех вырожденных случаев, которые вызывают уродство, если вы просто перейти от вершины к вершине. Красный - это оригинальный путь. Оранжевые блоки - это прямоугольники, нарисованные на указанной ширине, выровненные и центрированные на каждом сегменте.

Ответы на вопрос(9)

Ваш ответ на вопрос