Опять сглаживание OpenGL ES - PullRequest
       36

Опять сглаживание OpenGL ES

2 голосов
/ 20 ноября 2010

Я рисую 3d-сцену с такими примитивами:

glLoadIdentity();

glColor4f(model[i][8], model[i][9], model[i][10], 1.0);
glTranslatef(current_x, current_y, current_z);


glVertexPointer(3, GL_FLOAT, 0, &squareVertices[0]);
glEnableClientState(GL_VERTEX_ARRAY);
glShadeModel(GL_FLAT);

glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);

и, конечно, нет сглаживания.Я прочитал и попробовал много советов (в том числе stackoverflow).Например:

glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_BLEND);
glEnable(GL_LINE_SMOOTH);

, но все еще не может реализовать aa-технику.Кто-нибудь может сказать мне, это возможно без изменения большого количества существующего кода?

1 Ответ

1 голос
/ 22 ноября 2010

Вы используете GL_LINE_SMOOTH для GL_TRIANGLE_STRIP.iOS не поддерживает сглаживание линий и, что более важно, может использоваться только на линиях.Вы включаете смешивание ДО того, как начнете рисовать?

Этот - хороший вопрос об этой же проблеме.

Лучший способ - использовать текстуру с размытым краем (альфа) и примените его к своим треугольникам.Это создаст эффект сглаживания линии.

Это можно увидеть здесь .

...