Я рисую нечто похожее на светодиодный VU-метр в OpenGL.Результат должен быть таким, как на вертикальной панели:
К сожалению, мое пространство для рисования ограничено, и я должен разместить на нем ровно 18 столбцов.Это дает интервал между полосами в 3,6 пикселя.
При рисовании это вызывает видимые различия в промежутках между линиями, поскольку промежутки имеют ширину 2 или 1 пиксель.Я ищу решение использовать субпиксельный рендеринг, а затем «подделывать» строки с помощью какого-либо сглаживания, чтобы все пробелы выглядели одинаковой ширины.
Это мой код до сих пор
glEnable(GL_LINE_SMOOTH);
glHint(GL_LINE_SMOOTH, GL_NICEST);
for (int i = 0; i < 18; ++i) {
float bBottom = barBottom + i*3.6f;
glBegin(GL_LINES);
glLineWidth(2);
glVertex2f(bRight,bBottom);
glVertex2f(bLeft,bBottom);
glEnd();
}
glDisable(GL_LINE_SMOOTH);
К сожалению, включение сглаживания линий не показало видимого эффекта.Есть предложения?