Я использую триангуляцию для рисования толстых линий. Каждый сегмент превращается в прямоугольник, состоящий из двух треугольников.
Далее, для того чтобы добавить пунктир, я создаю текстуру из одного альфа канала, которая описывает паттерн. Чтобы паттерн не начинался заново на каждом сегменте, я рассчитываю параметр lineSoFar (длина линии от начала), который выступает по сути в качества текстурной координаты. Во фрагментном шейдере использую значение альфа-канала чтобы определить где штрих а где пропуск.
float a = texture2D(u_tex, v_normal/u_tex_len).a;
gl_FragColor = u_color*a;
Но это работает только если при триангуляции не рассчитывать митер.
При добавлении же митера, паттерн растягивается. Что логично, ведь длина внешнего края отличается о длины внутреннего.
Как добиться такого результата?