Масштабировать инвариантные объекты в webgl

WebGl не поддерживает толщину линий. Поэтому, когда мне нужно выделить какую-то линию, я просто рисую вокруг нее прямоугольник. Но когда я масштабирую сцену, это выглядит довольно страшно.

Есть два способа, которые я вижу сейчас:

1) Пересчитайте ширину прямоугольника в соответствии с canvas.width в координаты модели.

2) Поместите все объекты, инвариантные к масштабированию, в отдельную матрицу (я использую scenejs) и пересчитайте их позиции после каждого колеса мыши

Мне не нравятся оба этих решения. Поэтому я задаюсь вопросом: есть ли хороший обходной путь, чтобы сделать масштабирование объектов инвариантным?

1 ответ

Другим способом (хотя и не самым эффективным) может быть использование шейдеров. В нашем приложении WebGL мы рендерим подсвеченные примитивы в текстуру, а затем размываем их на экране, чтобы добавить "эффект свечения выделения".

Другие вопросы по тегам