Я использую язык Rust и библиотеку Glium. Я хочу вывести на экран большое количество кружков, но не могу решить, как мне лучше это сделать.
Существует возможность создавать круги из треугольников, или я могу нарисовать их с помощью фрагментного шейдера, то есть взять расстояние от центра каждого круга до каждой точки на экране и, если оно меньше радиуса, затем покрасьте его в нужный цвет. Для наглядности вот пример того, как я рисую один круг:
vec2 point = vec2(200.0f, 200.0f);
float dist = distance(point, gl_FragCoord.xy);
if (dist < 200)
gl_FragColor = vec4(0.0f, 1.0f, 0.0f, 1.0f);
Какой метод будет работать быстрее? Есть варианты сделать это лучше? Размер и цвет каждого круга будут меняться во время выполнения.