2010-01-23 10 views
6

Antes que nada, ¿cuál es el propósito de este código?OpenGL: GL_LINE_SMOOTH no es compatible con todas las tarjetas; ni siquiera dibujará las líneas, a menos que

glHint(GL_LINE_SMOOTH_HINT, GL_NICEST); 

pude poner allí GL_DONT_CARE pero, duerma hacer mis líneas dibujadas, menos yo uso glDisable(GL_LINE_SMOOTH)

Así im preguntando si tener algunas de ellas construidas en el mecanismo para que sea dibujar las líneas, incluso si las líneas suaves no son compatibles (por lo que los dibujaría sin antialising ...)

¿O tengo que hacer funciones propias para ello y comprobar si las líneas suaves son compatibles, etc ... y cada vez que quiero dibujar líneas suaves, yo necesita llamar a esta función que verifica si es o no upported? argh.

Edit: Las líneas son lisas en mi otra tarjeta, en la otra tarjeta que ni siquiera aparecen, a menos que desactive las líneas suaves. Así que ese es el problema, no glEnable (GL_BLEND)

+0

suena como un error en el controlador para mí. – ypnos

+0

@ypnos: si no habilitó la fusión, entonces no está –

+0

, la fusión está habilitada, mira mis ediciones ahora –

Respuesta

5

glHint como su nombre lo indica es pista para el controlador. No es necesario lograr nada. El funcionamiento real de glHint depende del controlador de gráficos.

Además, para habilitar LINE_SMOOTH ing, debe tener habilitada la fusión. ¿Habilitó GL_BLEND? ¡Y mientras lo haces, elige tu función glBlend también!

Ejemplo:

glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 
glEnable(GL_BLEND); 
+0

edité mi primera publicación ahora, las líneas se procesan bien en otra tarjeta, pero con la tarjeta que no admite líneas suaves, no las renderizará en absoluto, a menos que desactive gl_line_smooth –

+0

@Newbie: ¿Cuál es la otra tarjeta? –

Cuestiones relacionadas