Область выбора OpenGL - PullRequest
0 голосов
/ 08 мая 2018

enter image description here

В настоящее время я использую LWJGL, но если у вас есть решение для OpenGL, я тоже могу его использовать.

Теперь я пытаюсь применить область выделения к плоскости, которую я могу перемещать с помощью мыши (как мой ужасный рисунок выше). Я пытаюсь выровнять его по плоскости, чтобы он мог преодолевать любые препятствия. Я рассмотрел текстуру проекции, но я не знаю, как ее реализовать. Это хороший способ решения проблемы или есть лучшая альтернатива?

  1. Как лучше всего реализовать область выбора?
  2. Альтернативные варианты, плюсы и минусы.

Edit: это будет перемещаться по другой текстуре, если это имеет значение.

1 Ответ

0 голосов
/ 08 мая 2018

Когда вы уже знаете точку пересечения в мировом пространстве, существует относительно простое решение, которое не требует проецируемых текстур:

В фрагментном шейдере рассчитайте расстояние в мировом пространстве между точкой пересечения и текущим фрагментом. Когда расстояние между ними меньше, чем желаемый радиус круга, тогда цвет выделения должен быть нарисован. В противном случае рисуется только нормальная плоскость.

float dist = length(current_ws - intersection_ws);

if (dist < circle_radius)
    //Draw overlay
else
    //Draw plane normal
...