Ломаная линия при включениях в opengl на iphone - PullRequest
4 голосов
/ 20 августа 2011

Я использую cocos2d для рисования пользовательских фигур для игры.У меня есть массив точек многоугольника, который я использую для построения границы многоугольника, используя приведенный ниже код opengl.

glEnable(GL_LINE_SMOOTH);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glLineWidth(4);
glVertexPointer(2, GL_FLOAT, 0, polyVertices);
glDrawArrays(GL_LINE_LOOP, 0, polyVertexCount);

Тем не менее, я получаю этот результат ( LINK ) на симуляторе.

Кажется, что проблема в том, что сегменты линиидолжен присоединитьсяКак мне это решить?Какие есть варианты для создания разных типов соединений в opengl?Есть ли какая-нибудь библиотека для рисования, которую я мог бы использовать?

1 Ответ

3 голосов
/ 21 августа 2011

Ширина линии в OpenGL не допускает соединения митры между смежными линиями. Таким образом, если у вас есть линия, которая идет вверх, которая связана с линией, которая идет влево, будет очень очевидный разрыв, если ширина линии> 1.

Если вы серьезно относитесь к рисованию линий с шириной линии, и вам нужны митры для соединения, то вам не нужно использовать рисование линий OpenGL. Вам нужно создать полигональную сетку, которая представляет то, что вы пытаетесь нарисовать, и выполнить вычисления митры самостоятельно.

...