Используя основной профиль OpenGL 3.2, вызов glLineWidth со значением больше 1,0 выдает ошибку INVALID_VALUE (вызовите glGetError , чтобы доказать это).
Конечно, вы можетеполучить желаемый результат, определив квад, необходимый для рисования линии.
Я думаю, вы должны иметь возможность генерировать квады из точек линии: эй, большая линия - это квад!Возможно, вы могли бы использовать такие технические процедуры, как this , чтобы получить желаемый результат.
Ключ: вместо того, чтобы полагаться на LineWidth, вы задаете единицу квадрата в качестве входных данных (4 вершины, используя полосу треугольника),затем преобразуйте входящие вершины внутри шейдера, передавая ему соответствующую форму.
Возможно, другим подходом будет рендеринг с использованием геометрического шейдера: создать квад из точки.Однако я не уверен в этом.Я не знаю, будет ли геометрический шейдер (только если это возможно, конечно) лучшим подходом: стоимость рисования линейной полосы с использованием одного квадратора будет единой установкой шейдера для каждой линии, составляющей полосу.