Сложно сказать наверняка. Первым делом, вероятно, следует изменить подсказку с GL_DONT_CARE на GL_NICEST. Это, вероятно, не будет иметь большого значения для большинства видеокарт, но может немного помочь.
Кроме этого, сложно сказать. Вот немного кода (на C ++; извините):
void draw_line(float y_offset) {
glBegin(GL_LINES);
glColor3f(1.0f, 1.0f, 1.0f);
glVertex3f(-1.0f, 0.0f+y_offset, -1.0f);
glVertex3f(1.0f, 0.1f+y_offset, -1.0f);
glEnd();
}
void draw() {
glClearColor(0.0f, 0.0f, 0.2f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glFrustum(-1.2f, 1.2f, -0.2f, 0.2f, 0.8f, 5.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glEnable(GL_DEPTH_TEST);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glLineWidth(3.0f);
glDisable(GL_LINE_SMOOTH);
draw_line(0.0f);
glEnable(GL_LINE_SMOOTH);
glHint(GL_LINE_SMOOTH_HINT, GL_DONT_CARE);
draw_line(-0.1f);
glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);
draw_line(-0.2f);
glFlush();
}
И вот что я получаю в результате:
![alt text](https://farm4.static.flickr.com/3585/4566166677_c30c1ffac1_o.jpg)
Разница при включенном сглаживании линий кажется довольно очевидной. Разница между GL_DONT_CARE и GL_NICEST составляет (самое большее) лот меньше, поэтому