Я рендерил систему флокированных частиц, используя webGL.У меня есть текстура для позиций и текстура для скоростей - каждая обновляется с использованием фрагментных шейдеров.Затем у меня есть вершинный шейдер, чтобы нарисовать точку для каждой позиции в текстуре позиции.
Это рендерит ниже.
То, что я хочу сделать, это нарисовать линию между любыми двумя точками, расстояние которых меньше N.Что бы я делал вне шейдера, это вычисление n ^ 2 и определение соседних точек, а затем нарисуйте линию между ними.Однако, конечно, в фрагментном шейдере я могу смотреть только на один пиксель за раз.
Моя идея состоит в том, что для каждого пикселя / времени запускается фрагментный шейдер, чтобы идентифицировать набор позиций, которые находятся в радиусе N, затем определите, какие из них связаны, и рассчитайте все линии между ними.Если текущий пиксель пересекает одну из этих линий, сделайте черный цвет.Если ни один не пересекается, тогда оставьте прозрачным.
Это хороший способ сделать это?Есть ли лучший способ?