Соединение вершин с линиями в шейдере webGL - PullRequest
0 голосов
/ 30 апреля 2019

Я рендерил систему флокированных частиц, используя webGL.У меня есть текстура для позиций и текстура для скоростей - каждая обновляется с использованием фрагментных шейдеров.Затем у меня есть вершинный шейдер, чтобы нарисовать точку для каждой позиции в текстуре позиции.

Это рендерит ниже.

enter image description here

То, что я хочу сделать, это нарисовать линию между любыми двумя точками, расстояние которых меньше N.Что бы я делал вне шейдера, это вычисление n ^ 2 и определение соседних точек, а затем нарисуйте линию между ними.Однако, конечно, в фрагментном шейдере я могу смотреть только на один пиксель за раз.

Моя идея состоит в том, что для каждого пикселя / времени запускается фрагментный шейдер, чтобы идентифицировать набор позиций, которые находятся в радиусе N, затем определите, какие из них связаны, и рассчитайте все линии между ними.Если текущий пиксель пересекает одну из этих линий, сделайте черный цвет.Если ни один не пересекается, тогда оставьте прозрачным.

Это хороший способ сделать это?Есть ли лучший способ?

...