OpenGL: увеличение количества строк меняет сглаживание? - PullRequest
2 голосов
/ 24 июля 2010

Я пишу программу рисования в Delphi.Пользователь нажимает 2 точки на экране, и между ними рисуется линия.Я хочу, чтобы строки были сглажены.Я поместил этот код в процедуру create () класса OpenGL (который вызывается только 1 раз в начале):

 glEnable(GL_LINE_SMOOTH);
 glEnable(GL_BLEND);
 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
 glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);

Когда я начинаю рисовать, рисуются первая, вторая и, возможно, третья строкихорошо.Но что интересно, когда количество строк увеличивается (скажем, 7, 8 строк), сглаживание начинает давать сбой!Добавляя каждую строку на экране, это только ухудшается, и края линий начинают становиться как пилообразные !!

Я также помещаю тот же код в начало моей процедуры draw (), которая рисует линии (изапускается при каждом щелчке мыши), но ничего не меняется.

Я что-то здесь не так делаю?У кого-нибудь есть предложения?

Ответы [ 2 ]

6 голосов
/ 27 июля 2010

Вы уверены, что не рисуете ни один отрезок линии более одного раза?Вы звоните glClear, прежде чем делать какой-либо рисунок?

2 голосов
/ 25 июля 2010

Проверьте значение GL_SMOOTH_LINE_WIDTH_RANGE и сравните его с glLineWidth() s, которые вы пытаетесь использовать.

...