На моей видеокарте точки рисуются кружками, если установить параметр GL_POINT_SMOOTH.
Но на компьютере работодателя они рисуются квадратами. Что еще нужно сделать, чтобы этот способ гарантированно сработал?
Если же нет гарантий, то какие ещё есть способы быстро выводить около миллиона точек с возможностью масштаба изображения?
Знаю про возможность запилить простым шейдером на 2 строчки, но ввиду озвученного выше ограничения, думается мне, что это будет тормозно.
рисуй квадратики с текстурой кружка.
nes
ну увеличенный кружок будет фигово смотреться
vater
> ну увеличенный кружок будет фигово смотреться
Текстура должна быть максимального размера, чтобы только уменьшать ее
vater
> Знаю про возможность запилить простым шейдером на 2 строчки, но ввиду
> озвученного выше ограничения, думается мне, что это будет тормозно.
Какого ограничения? Считаешь квадрат расстояния от (0.5, 0.5) до текстурной координаты текущей точки. Если он меньше 0.25, то это внутри круга, иначе снаружи. Чтобы края были гладкими, можно сделать smoothstep для альфа канала.
Простой шейдер в несколько строчек. Тормозить нечему.
nes
> ну увеличенный кружок будет фигово смотреться
Делай discard во фрагментном шейдере при не попадании в круг. Попадание в круг можно проверять аналитически.
Плюсую дискард
Дискард там будет плохо работать - он слишком много оптимизаций убьет, и слишком мало пикселей срежет.
Инстансинг и 5-6-8-угольники обеспечат область определения, далее рисуем кружочек на пиксельном шейдере.
Тема в архиве.