Как рисовать плавные линии без использования GLSL, FSAA или GL_LINE_SMOOTH? - PullRequest
1 голос
/ 21 июля 2011

Так что мне нужен метод, чтобы сделать плавные линии без использования:

  • полноэкранное сглаживание (медленно)
  • Шейдеры (поддерживается не на всех картах)
  • GL_LINE_SMOOTH (вызывает сбой на некоторых картах)

Единственный способ, которым я мог думать об этом, - это использовать текстурированный прямоугольник, который всегда обращен в направлении камеры, но проблемы заключаются в следующем:
1. как я всегда смотрю на прямоугольник на камеру (эффективно)?
2. как мне сохранить его размер всегда одинаковым, независимо от того, как далеко на него смотрит моя камера?

Есть еще идеи?

Ответы [ 2 ]

2 голосов
/ 21 июля 2011

Билбординг - простая концепция, но ее сложно реализовать. Рекламный щит - это плоский объект, обычно квадрат (квадрат), обращенный к камере. Это направление обычно постоянно меняется во время выполнения, когда объект и камера движутся, и объект должен поворачиваться каждый кадр, чтобы указывать в этом направлении. Существует два типа билбординга: точка и ось. Точечные спрайты или точечные рекламные щиты - это четырехугольник, центрированный в точке, и рекламный щит вращается вокруг этой центральной точки, лицом к пользователю. Рекламные щиты Axis бывают двух типов: выровненные по оси и произвольные. Выровненные по оси (АА) рекламные щиты всегда имеют одну локальную ось, которая выровнена по глобальной оси, и они вращаются вокруг этой оси, чтобы повернуться лицом к пользователю. Рекламные щиты с произвольной осью вращаются вокруг любой оси, чтобы повернуться лицом к пользователю.

http://nehe.gamedev.net/data/articles/article.asp?article=19

0 голосов
/ 22 июля 2011

Вы можете использовать точечные спрайты, они всегда одинакового размера и всегда обращены к камере.http://www.opengl.org/registry/specs/ARB/point_sprite.txt

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...