2010-01-07 5 views
5

tengo el siguiente código:glPolygonOffset() errores con líneas

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

Pero las líneas siguen siendo z de incendios, este error es común o algo ...? Mis líneas tienen 1.0f de grosor y dibujo las líneas al final de la escena.

También he desactivar GL_ALPHA_TEST y GL_LINE_SMOOTH y habilitado GL_BLEND y GL_COLOR_LOGIC_OP

Editar: ya he intentado GL_POLYGON_OFFSET_FILL, que no ayuda.

Respuesta

12

GL_POLYGON_OFFSET_LINE solo funciona para la representación de polígonos con glPolygonMode(GL_FRONT_AND_BACK, GL_LINE). Si está dibujando primitivas con GL_LINES, no funciona. En este caso, tendrás que desplazar manualmente los vértices.

+0

Ah, entonces tengo que dibujar las líneas con modo polígono, entonces –

+0

@Newbie 'GL_TRIANGLES' y' GL_QUADS' funcionan bien también. –

+0

Dibujar líneas como polígonos infinitamente delgados no funcionará bien; GL calcula la normalidad y la utiliza para compensar los vértices. En este caso, la normal al polígono que está dibujando será un vector de longitud 0. – Tarydon

4

Intente habilitar GL_POLYGON_OFFSET_FILL en su lugar. (Supongo que las líneas están luchando en profundidad con los polígonos que ha renderizado anteriormente?)

+0

Puede que no haya resuelto su problema, pero lo resolvió el mío, 2 años después. ¡Gracias! –