2010-01-07 9 views
5

У меня есть следующий код:glPolygonOffset() ошибки с линиями

glEnable(GL_POLYGON_OFFSET_LINE); 
glPolygonOffset(1,1); // or 40,40 etc... doesnt help at all 

Но все еще является г-спасательными, это общая ошибка или что-то ...? Мои линии имеют толщину 1,0 ф, и я рисую линии в последней сцене.

Также у меня есть отключить GL_ALPHA_TEST и GL_LINE_SMOOTH и включен GL_BLEND и GL_COLOR_LOGIC_OP

Edit: я уже пытался GL_POLYGON_OFFSET_FILL, это не помогает.

ответ

12

GL_POLYGON_OFFSET_LINE работает только для полигональной рендеринга с glPolygonMode(GL_FRONT_AND_BACK, GL_LINE). Если вы рисуете примитивы с GL_LINES, это не сработает. В этом случае вам придется вручную смещать вершины.

+0

А, так что мне нужно рисовать линии с полигональным режимом, тогда – 2010-01-07 13:15:40

+0

@Newbie 'GL_TRIANGLES' и' GL_QUADS' отлично работают. –

+0

Линии рисования как бесконечно тонкие полигоны не будут работать хорошо; GL вычисляет нормаль и использует это для смещения вершин. В этом случае нормалью к полигону, который вы рисуете, будет вектор длины 0. – Tarydon

4

Попробуйте включить GL_POLYGON_OFFSET_FILL. (Я полагаю, что линии являются глубинными боями с ранее выполненными полигонами?)

+0

Возможно, вы не решили свою проблему, но вы решили мою, 2 года спустя. Благодаря! –

Смежные вопросы